JavaScript 学习笔记

作用域

没有块级作用域
使用一个变量时,不加 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 是这个数组。

(未完待续)

你可能感兴趣的:(JavaScript 学习笔记)