最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
浅谈js中的变量名和函数名重名
时间:2017-03-29 编辑:简简单单 来源:一聚教程网
今天骚凯问了一道变量名冲突的题目,感觉很有意思,顺便也复习一下预解析的一些知识,有不对的地方忘前辈大神指正,题目是这样的:
代码如下 | 复制代码 |
vara=100; functiona(){ console.log(a); } a(); |
这个串代码执行完会报错 : a is not a function
问题来了,为什么会报这个错误呢? 这里涉及到函数和变量的预解析:
1)函数声明会置顶
2)变量声明也会置顶
3)函数声明比变量声明更置顶:(函数在变量上面)
4)变量和赋值语句一起书写,在js引擎解析时,会将其拆成声明和赋值2部分,声明置顶,赋值保留在原来位置
5)声明过的变量不会重复声明
知道以上的规则,上面的代码等同于 :
代码如下 | 复制代码 |
vara=function(){ console.log(a); } vara=100; a(); |
相当于给a重新赋值了,所以会报错。
-
上一个: js实现打地鼠小游戏的教程
-
下一个: JS简单判断函数是否存在的方法
相关文章
- 浅谈js中同名函数和同名变量的执行问题 03-28
- HTML简单购物数量小程序代码展示 10-31
- html canvas实现弹幕功能 10-31
- HTML中空格表示的意义 10-31
- html area标签解读 10-31
- html使用表单标签实现注册页面代码展示 10-31