`
zccst
  • 浏览: 3291838 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

面试题201412——core 变量作用域

阅读更多
作者:zccst

1,var a = b = 5;
(function(){
    var a = b = 5;
})();
console.log(a);//undefined 报错
console.log(b);//5 等价于 window.b = 5, var a = b;


2,变量和函数的声明提前
function test(){
    console.log(a);//undefined
    console.log(foo());//2
    var a = 1 ; 
    function foo() { return 2;};
}
test();

原因:变量和函数的申明都被提前了,但是变量没有赋值,因此是undefined


3,作用域链
var fullName = "C";
var obj = {
    fullName : "A",
    prop:{
         fullName:"B",
         getFullName:function(){
              return this.fullName;
         }
     }
}
console.log(obj.prop.getFullName());//B
var dd = obj.prop.getFullName;
console.log(dd());//C
console.log(dd.call(obj.prop));//B



4,对象及引用
a = 66;
var a = {"x": 1};
var b = a;
a.x = 2;
console.log(b.x); 

a = {"x":3};
console.log(b.x); 
a.x = 4;
console.log(b.x); 

结果:全是2



如果您觉得本文的内容对您的学习有所帮助,您可以微信:
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics