JS中变量名和函数名重名
来源:互联网 发布:秦舞阳知乎 编辑:程序博客网 时间:2024/05/22 02:35
今天骚凯问了一道变量名冲突的题目,感觉很有意思,顺便也复习一下预解析的一些知识,有不对的地方忘前辈大神指正,题目是这样的:
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重新赋值了,所以会报错.
0 0
- JS中变量名和函数名重名
- js中函数与变量名重名
- js中的变量名和函数名重名问题
- JQuery中元素id名和变量名重名出现的问题
- javascript 变量名和方法名重名会导致错误
- JS变量名和函数名的提升
- js中避免函数名和变量名跟别人冲突(1)
- js中避免函数名和变量名跟别人冲突
- webview js 与java代码交互问题(成员变量名 和方法名不能重名 啃爹啊)
- JS变量名、函数名,区分大小写
- JS方法名和input的name重名时
- 变量名、函数名
- 不一致的变量名和函数名
- 在JS中如果函数名与变量名冲突,JS是怎么执行的?
- js 通过变量名调用函数
- js 变量 函数名的提升
- C++(含QT)中函数名和变量名最好不要相同
- 13、函数名和变量名的命名
- freemarker
- 基于MFC的串口类CSerialPort的使用
- 检测9000类物体的YOLO9000
- zoj1314
- ios系统判断设备上是否有安装某app的两个方法
- JS中变量名和函数名重名
- zoj1312
- 二叉搜索树(Binary Search Tree)
- 2016.5.3号的工作经验分享总结
- mybatis通用DAO
- 无法启动mysql服务
- zoj1311
- Qt中各种数据类型之间的转换
- onmeasure方法里的参数说明以及用width和height中所需要注意的事项