这里有新鲜出炉的 Javascript 教程,程序狗速度看过来!
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
下面小编就为大家带来一篇浅谈 js 中的变量名和函数名重名。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
今天骚凯问了一道变量名冲突的题目,感觉很有意思,顺便也复习一下预解析的一些知识,有不对的地方忘前辈大神指正,题目是这样的:
- 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 中的变量名和函数名重名就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持 phperz。
来源: http://www.phperz.com/article/17/0526/327759.html