发表于: 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中的数据类型
评论