作用域
没有块级作用域
使用一个变量时,不加 var 代表这是一个全局变量
作用域链
JavaScript 中有一个执行环境的概念,每一个环境都有一个“变量对象”,在这个环境下的变量都会保存在这个对象中。运行时,执行环境是嵌套的,最顶层的即为全局环境,这里保存着全局变量。全局环境下面一般是函数环境,这里保存着函数中的局部变量。当使用一个变量时,首先在当前环境查找这个变量,如果找不到,就在其外部的环境下寻找,依此类推……即作用域链。
Array
Sort()
Array 的重排方法,可以给一个 Array 中元素重新排序:
someArray.sort();
可以给 sort() 传入一个排序函数:
someArray.sort(function (value0, value1){
if (value0 < value1)
return -1;
else if (value0> value1)
return 1;
else
return 0;
});
这个排序函数返回一个正数或者负数或者 0,用来指定排序策略。
如果要把一个有序的数组乱序,就可以给它传入一个“乱”的“策略函数”:
someArray.sort(function(){
Math.random() > 0.5 ? -1 : 1;
});
迭代函数
JavaScript 数组内置了几个遍历函数:
every();
filter();
forEach();
map();
some();
它们的返回值不同。同时,它们都能接受一个参数,这个参数是一个处理每一个数组元素的函数 :
someArray.map(function(item, index, array){
//实现
});
其中,item 为数组的每一个元素, index 为索引,array 是这个数组。
(未完待续)
网友评论