首页 > Web开发 > 详细

js变量问题

时间:2017-01-07 13:12:59      阅读:270      评论:0      收藏:0      [点我收藏+]

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变量问题

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!