廖雪峰 JavaScript教程 笔记2

2017-04-11  本文已影响110人  Marks

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]);
}```

































上一篇 下一篇

猜你喜欢

热点阅读