浅谈js中的变量名和函数名重名


Posted in Javascript onFebruary 13, 2017

今天骚凯问了一道变量名冲突的题目,感觉很有意思,顺便也复习一下预解析的一些知识,有不对的地方忘前辈大神指正,题目是这样的:

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中的变量名和函数名重名就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用ADODB.Stream转换
Jan 22 Javascript
js判断变量是否空值的代码
Oct 26 Javascript
JavaScript中链式调用之研习
Apr 07 Javascript
使用jQuery UI的tooltip函数修饰title属性的气泡悬浮框
Jun 24 Javascript
一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子
Jun 26 Javascript
Jquery响应回车键直接提交表单操作代码
Jul 25 Javascript
JavaScript动态创建link标签到head里的方法
Dec 22 Javascript
AngularJS的一些基本样式初窥
Jul 27 Javascript
JavaScript实现同一页面内两个表单互相传值的方法
Aug 12 Javascript
从零开始学习Node.js系列教程一:http get和post用法分析
Apr 13 Javascript
vue+express+jwt持久化登录的方法
Jun 14 Javascript
微信小程序单选框自定义赋值
May 26 Javascript
学习使用jQuery表单验证插件和日历插件
Feb 13 #Javascript
js实现打地鼠小游戏
Feb 13 #Javascript
canvas实现钟表效果
Feb 13 #Javascript
深入理解Javascript箭头函数中的this
Feb 13 #Javascript
ES6学习之变量的解构赋值
Feb 12 #Javascript
AngularJS实现路由实例
Feb 12 #Javascript
jQuery文字轮播特效
Feb 12 #Javascript
You might like
PHP如何通过AJAX方式实现登录功能
2015/11/23 PHP
PHP编写RESTful接口的方法
2016/02/21 PHP
javascript图片相似度算法实现 js实现直方图和向量算法
2014/01/14 Javascript
jquery控制select的text/value值为选中状态
2014/06/03 Javascript
原生JavaScript实现合并多个数组示例
2014/09/21 Javascript
AngularJS基础 ng-init 指令简单示例
2016/08/02 Javascript
微信小程序 vidao实现视频播放和弹幕的功能
2016/11/02 Javascript
jQuery修改DOM结构_动力节点Java学院整理
2017/07/05 jQuery
[js高手之路]原型式继承与寄生式继承详解
2017/08/28 Javascript
详解tween.js的使用教程
2017/09/14 Javascript
vue组件父与子通信详解(一)
2017/11/07 Javascript
js实现移动端轮播图
2020/12/21 Javascript
Vue 之孙组件向爷组件通信的实现
2019/04/23 Javascript
在Chrome DevTools中调试JavaScript的实现
2020/04/07 Javascript
vue.js watch经常失效的场景与解决方案
2021/01/07 Vue.js
python压缩文件夹内所有文件为zip文件的方法
2015/06/20 Python
Python3实现购物车功能
2018/04/18 Python
python顺序的读取文件夹下名称有序的文件方法
2018/07/11 Python
Python 使用Numpy对矩阵进行转置的方法
2019/01/28 Python
PyQt4实时显示文本内容GUI的示例
2019/06/14 Python
python实现两个一维列表合并成一个二维列表
2019/12/02 Python
Python实现bilibili时间长度查询的示例代码
2020/01/14 Python
Python用摘要算法生成token及检验token的示例代码
2020/12/01 Python
Bose英国官方网站:美国知名音响品牌
2020/01/26 全球购物
介绍一下XMLHttpRequest对象的常用方法和属性
2013/05/24 面试题
预备党员综合考察材料
2014/05/31 职场文书
个人作风建设心得体会
2014/10/22 职场文书
贪污受贿检讨书范文
2014/11/19 职场文书
2014年基层党支部工作总结
2014/12/04 职场文书
活着观后感
2015/06/03 职场文书
心术观后感
2015/06/11 职场文书
个人合作协议范本
2015/08/06 职场文书
新学期主题班会
2015/08/17 职场文书
python cv2图像质量压缩的算法示例
2021/06/04 Python
oracle重置序列从0开始递增1
2022/02/28 Oracle
html中两种获取标签内的值的方法
2022/06/16 jQuery