浅谈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 相关文章推荐
js中将HTMLCollection/NodeList/伪数组转换成数组的代码
Jul 31 Javascript
IE6 hack for js 集锦
Sep 23 Javascript
jQuery实现跨域iframe接口方法调用
Mar 14 Javascript
javascript如何操作HTML下拉列表标签
Aug 20 Javascript
JS实现的左侧竖向滑动菜单效果代码
Oct 19 Javascript
在Javascript操作JSON对象,增加 删除 修改的简单实现
Jun 02 Javascript
javascript设计模式之单体模式学习笔记
Feb 15 Javascript
Bootstrap进度条实现代码解析
Mar 07 Javascript
中级前端工程师必须要掌握的27个JavaScript 技巧(干货总结)
Sep 23 Javascript
jQuery实现滑动开关效果
Aug 02 jQuery
Openlayers实现地图的基本操作
Sep 28 Javascript
Vue router传递参数并解决刷新页面参数丢失问题
Dec 02 Vue.js
学习使用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通过淘宝API查询IP地址归属等信息
2015/12/25 PHP
用Javascript实现锚点(Anchor)间平滑跳转
2009/09/08 Javascript
分享一个自己写的table表格排序js插件(高效简洁)
2011/10/29 Javascript
2012年开发人员的16款新鲜的jquery插件体验分享
2012/12/28 Javascript
httpclient模拟登陆具体实现(使用js设置cookie)
2013/12/11 Javascript
php的文件上传入门教程(实例讲解)
2014/04/10 Javascript
一段非常简单的js判断浏览器的内核
2014/08/17 Javascript
通过JS判断联网类型和连接状态的实现代码
2015/04/01 Javascript
AngularJS中如何使用$parse或$eval在运行时对Scope变量赋值
2016/01/25 Javascript
jQuery实现动态文字搜索功能
2017/01/05 Javascript
JavaScript中的子窗口与父窗口的互相调用问题
2017/02/08 Javascript
jquery hover 不停闪动问题的解决方法(亦为stop()的使用)
2017/02/10 Javascript
详解Angular2组件之间如何通信
2017/06/22 Javascript
jQuery选择器中的特殊符号处理方法
2017/09/08 jQuery
Vue实现active点击切换方法
2018/03/16 Javascript
JavaScript中七种流行的开源机器学习框架
2018/10/11 Javascript
Angular5整合富文本编辑器TinyMCE的方法(汉化+上传)
2020/05/26 Javascript
TypeScript 运行时类型检查补充工具
2020/09/28 Javascript
[00:27]DOTA2战队VP、Secret贺新春
2018/02/11 DOTA
Python ljust rjust center输出
2008/09/06 Python
python中二维阵列的变换实例
2014/10/09 Python
Python实现的数据结构与算法之链表详解
2015/04/22 Python
Python打印“菱形”星号代码方法
2018/02/05 Python
python 3.6.2 安装配置方法图文教程
2018/09/18 Python
python 利用jinja2模板生成html代码实例
2019/10/10 Python
python中count函数简单用法
2020/01/05 Python
tensorflow 报错unitialized value的解决方法
2020/02/06 Python
完美解决ARIMA模型中plot_acf画不出图的问题
2020/06/04 Python
python程序如何进行保存
2020/07/03 Python
介绍一下MD5加密算法
2016/11/12 面试题
总裁办公室主任职责
2014/01/02 职场文书
洗煤厂厂长岗位职责
2014/01/03 职场文书
触摸春天教学反思
2014/02/03 职场文书
学习型班组申报材料
2014/05/31 职场文书
就业协议书盖章的注意事项
2014/09/28 职场文书
2015年国庆节慰问信
2015/03/23 职场文书