继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

关于Javasvript中 变量的命名及赋值--hoisting变量提升

AiLeime
关注TA
已关注
手记 8
粉丝 12
获赞 87

在javascript里,所有的声明以及变量的赋值基本都是遵循:声明==>赋值==>调用,或者是:初始化==>调用,最后都会被释放清理。但是,其中有个变量提升的问题,如下:


    var x = 5; // 初始化 x
    var y = 7; // 初始化 y
    console.log(x+y);
    var x2 = 5; // 初始化 x
    console.log(x2+y2);
    var y2 = 7; // 初始化 y

当你调用的时候就会发现:第二个为NaN!再看下边这个:


    var x1; 
    var y1; 
    x1=5;
    y1=7;
    console.log(x1+y1);
    var x;
    x2=5;
    console.log(x2+y2);
    y2=7;
    var y2; 

在javascript中,函数及变量的声明都将被自动提升到函数的最顶部!JavaScript 中,变量可以在使用后声明,也就是变量可以先使用再声明。
上边四个例子很好的解释了变量提升--hoisting,对于大多数程序员来说并不知道 JavaScript 变量提升。
如果程序员不能很好的理解变量提升,他们写的程序就容易出现一些问题。为了避免这些问题,通常我们在每个作用域开始前声明这些变量,这也是正常的 JavaScript 解析步骤,易于我们理解。
注意:JavaScript 严格模式(strict mode)不允许使用未声明的变量!

打开App,阅读手记
3人推荐
发表评论
随时随地看视频慕课网APP

热门评论

然而第二段代码还是nan,因为你的赋值语句没有写在输出前

查看全部评论