廖雪峰 JavaScript教程 笔记2

1、闭包

function lazy_sum(arr){
            var sum=function (){
                return arr.reduce(function(x,y){
                    return x + y;
                });
            }
            return sum;
        }
        var arr=[1,2,3,4,5];

        console.log(lazy_sum(arr)());```
⑵计数器

function create_counter(initial){
var x=initial || 0;
return {
inc:function(){
x += 1;
return x;
}
}
}
var c1=create_counter();
console.log(c1.inc());
console.log(c1.inc());
console.log(c1.inc());

    var c2=create_counter(100);
    console.log(c2.inc());
    console.log(c2.inc());
    console.log(c2.inc());```

⑶x的n次方

function make_pow(n){
            return function(x){
                return Math.pow(x,n);
            }
        }
        var pow2=make_pow(2);
        var pow3=make_pow(3);

        console.log(pow2(5));//25
        console.log(pow3(7));//343```


2、[JSON](http://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/001434499490767fe5a0e31e17e44b69dcd1196f7ec6fc6000)
⑴对象序列化成JSON格式的字符串 - JSON.stringify()
①要输出得好看一些,可以加上参数,按缩进输出:
`JSON.stringify(xiaoming, null, '  ');`
第二个参数用于控制如何筛选对象的键值,如果我们只想输出指定的属性,可以传入Array:
②还可以传入一个函数,这样对象的每个键值对都会被函数先处理
③如果我们还想要精确控制如何序列化小明,可以给xiaoming定义一个toJSON()的方法,直接返回JSON应该序列化的数据
⑵拿到一个JSON格式的字符串,我们直接用JSON.parse()把它变成一个JavaScript对象:
JSON.parse()还可以接收一个函数,用来转换解析出的属性

3、插入DOM

对于一个已有的HTML结构:
Scheme
JavaScript
Python
Ruby
Haskell


<ol id="test-list">
<li class="lang">Scheme</li>
<li class="lang">JavaScript</li>
<li class="lang">Python</li>
<li class="lang">Ruby</li>
<li class="lang">Haskell</li>
</ol>```
按字符串顺序重新排序DOM节点:

var list = document.getElementById('test-list');
        var arr = Array.from(list.children);
        arr.sort((x,y) => {return x.innerText>y.innerText?true:false;});
        arr.forEach(function(x){
            list.appendChild(x);
        });```

4、删除DOM
练习
JavaScript
HTML
CSS


<ul id="test-list">
<li>JavaScript</li>
<li>Swift</li>
<li>HTML</li>
<li>ANSI C</li>
<li>CSS</li>
<li>DirectX</li>
</ul>```
把与Web开发技术不相关的节点删掉:

var list = document.getElementById('test-list');
for(var x = 1; x < list.children.length; x++){
list.removeChild(list.children[x]);
}```

































最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 本文是在学习廖雪峰先生的JavaScrip教程 后的归纳 一、标准对象 typeofJavaScript的世...
    ting723阅读 339评论 0 2
  • 这篇是作为一个有js,jq基础,主要知识来源于为w3school和日常踩坑,但是不够全面的前端学习者(已经不好意思...
    薄荷星球阅读 1,144评论 0 3
  • 2.包装对象 4.json 4.1.序列化 4.2.反序列化
    wyude阅读 279评论 0 0
  • 客户端 sqlplus,浏览器,navicat,DataGrip操作后传给 db ODBC & JDBC 与数据...
    谢小帅阅读 270评论 1 0
  • 今天是入职后的第29天,小腿的酸痛感像个小闹钟似得时不时提醒自己昨天下井的事实。但这酸痛还不至于影响我行动。 不得...
    生命的朝拜者阅读 148评论 2 1