在没风的地方找太阳  在你冷的地方做暖阳 人事纷纷  你总太天真  往后的余生  我只要你 往后余生  风雪是你  平淡是你  清贫也是你 荣华是你  心底温柔是你  目光所致  也是你 想带你去看晴空万里  想大声告诉你我为你着迷 往事匆匆  你总会被感动  往后的余生  我只要你 往后余生  冬雪是你  春花是你  夏雨也是你 秋黄是你  四季冷暖是你  目光所致  也是你 往后余生  风雪是你  平淡是你  清贫也是你 荣华是你  心底温柔是你  目光所致  也是你
jQuery火箭图标返回顶部代码 - 站长素材

JavaScript中的变量提升和严格模式

1.什么是变量提升

所谓的变量提升指的是:函数声明和变量声明总是会被解释器悄悄地被"提升"到方法体(作用域)的最顶部

    //先声明后使用
    var x;
    console.log(x);// undefined
    //先试用后声明
    console.log(y);// undefined
    var y;
    
    //上面的式子可以写成下面的样子

    变量提升:把x,y提升到顶部
    var x;
    var y;
    console.log(x);
    console.log(y); 

①变量的使用有两种形式,先声明再使用或者先使用后声明;

②无论是哪一种形式都不影响变量的使用,这是因为有变量提升的存在,每一个你定义的变量都会被提升到顶部,也就是函数最开始的部分,这就变成了你在使用变量时其实都已经声明变量了。

 

关于JavaScript变量提升,需要注意的是:只有声明的变量会提升,初始化的不会。

  console.log(c);//undefined
    var c = 111; //初始化的不会提升
    /*
    console.log(c);//underfined
    var c;//声明的会提升
    c = 1;
    */

上面的c打印结果为undefined,这是因为提升的只有声明变量var c,而初始化的c=1没有提升而在使用之后。

为了避免上面出现的变量提升的问题,通常我们在每个作用域开始前声明我们要使用的变量。

 

2.严格模式

严格模式的写法就是在代码编写之前加上"use strict",严格模式要求你不能使用未声明的变量,否则会报错。

 "use strict"; //表示严格模式 
    aa =123;
    console.log(a);//aa is not defined
    //在严格模式下,因为aa未被声明就被使用或者初始化则会报错
 
    var n = 111;
    console.log(n);//111

使用严格模式消除Javascript语法的一些不合理、不严谨之处

posted @ 2019-12-11 18:18  艺术诗人  阅读(754)  评论(0)    收藏  举报