码迷,mamicode.com
首页 > Web开发 > 详细

js变量问题

时间:2017-01-07 13:14:34      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:nbsp   console   strong   代码   重复   undefined   error   规则   报错   

var a=100;
function a(){
  console.log(a);
}
a();

这个串代码执行完会报错 : a is not a function

问题来了,为什么会报这个错误呢?  这里涉及到函数和变量的预解析:

1)函数声明会置顶
2)变量声明也会置顶
3)函数声明比变量声明更置顶:(函数在变量上面)
4)变量和赋值语句一起书写,在js引擎解析时,会将其拆成声明和赋值2部分,声明置顶,赋值保留在原来位置
5)声明过的变量不会重复声明

知道以上的规则,上面的代码等同于 :  

var a=function (){
  console.log(a);
}
var a=100;
a();

相当于给a重新赋值了,所以会报错.

js变量问题

标签:nbsp   console   strong   代码   重复   undefined   error   规则   报错   

原文地址:http://www.cnblogs.com/zhangzs000/p/6259082.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!