发表于: 2017-04-29 21:57:25

0 955


完成的事情:

js高级程序设计



计划的事情:

js高级程序设计,PPT



问题:

Object类型数据,属于一个指针,当某个指向指针的变量改变该数据时,所有指向这个指针的数据都会一起改变:

var obj1 = {};

var obj2 = obj1;

obj1.name = 'test';

console.log(obj1,obj2);//Object {name: "test"} Object {name: "test"}

obj2.name = 20;

console.log(obj1,obj2);//Object {name: 20} Object {name: 20}

所以需要注意在函数里面,如果操作Object,就等于操作指针,函数的父级同指向该指针的变量也会变化。

所以为什么之前复盘项目时候$scope.xxx = 某个Object类型时,直接就绑一块,需要$scope.xxx = Object.yyy才避免了此情况,这根本就不算是angular的双向绑定,而是js本身就决定的指针用法。


在程序中,if判断和for循环作为一个非块级作用域存在的,在其中新建的变量会将变量添加到当前的执行环境,在这两个执行完毕后,当前执行环境结束之前,并不会销毁其变量,即

if(true){

    var j = 5;

}

console.log(j);//5

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

    

}

console.log(i);//5



收获:

js中的数据类型



返回列表 返回列表
评论

    分享到