第四章小结-作用域链

1.变量分为基本类型和引用类型。基本类型变量有数字,字符串,布尔值和undefined。引用类型就是对象和函数。

深复制:赋值基本类型。

浅复制:赋值给引用类型。

2.在函数中传参,传的基本类型和引用类型都是传值。传基本类型,在函数内部不会影响外部的值。传引用类型,在函数内部对参数改变会影响到外面的值。

var a = 1;

function getA(a){

a = 2;

}

getA(a);

alert(a); //1


var a  = new Object();

a.value = 1;

function getA(a){

a.value = 2;

}

getA(a);

alert(a.value); //2

3.检测类型:

4.typeof只能检测字符串,number,undefined,布尔类型的值。不能检测对象。要知道对象的具体类型,需要使用instanceof。

5.作用域链是保证对当前执行环境可访问的变量和函数的有序访问。作用域链的前端是当前执行环境的变量对象。如果是函数,一开始的变量对象就是函数的参数,也就是arguments对象。作用域链的下一个对象是外部环境的对象变量,一直向外延伸,直到全局作用域。

延长作用域链:with和try-catch块。

6.没有块级作用域:

if(true){

var a=1;

}

alert(a) ; //1

for(var i = 0; i < 10;i++){

}

alert(i);   //10

7.没有声明的变量会成为全局变量,声明的变量会成为最接近外层函数的局部作用域。

你可能感兴趣的:(第四章小结-作用域链)