温馨提示:严格模式不允许使用未声明的变量。
var定义的变量会先定义,全部定义完毕再赋值。
比如我们执行下面的语句:
console.log(temp);
你会看见如下报错:
VM47:1 Uncaught ReferenceError: temp is not defined
at <anonymous>:1:13
我们把代码改一下:
console.log(temp);
var temp='我爱你,中国!';
可以看见打印了undefined
,没有报错,也没有打印'我爱你,中国!'
。
其实修改后的代码相当于:
var temp;
console.log(temp);
temp='我爱你,中国!';
再看个例子:
console.log(temp);
function temp(){}
var temp='我爱你,中国!';
看看对应结果:
ƒ temp(){}
这说明,和var一样,function定义的变量也会进行提升,都将被提到当前作用域的最顶部(但是不会初始化);同时,函数声明的优先级大于变量声明的优先级(function>var)。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。