浅谈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 相关文章推荐
javascript 弹出窗口中是否显示地址栏的实现代码
Apr 14 Javascript
javascript自定义startWith()和endWith()的两种方法
Nov 11 Javascript
点击按钮自动加关注的代码(sina微博/QQ空间/人人网/腾讯微博)
Jan 02 Javascript
div失去焦点事件实现思路
Apr 22 Javascript
AngularJS 执行流程详细介绍
Aug 18 Javascript
Angular 4根据组件名称动态创建出组件的方法教程
Nov 01 Javascript
JS中移除非数字最多保留一位小数
May 09 Javascript
使用异步controller与jQuery实现卷帘式分页
Jun 18 jQuery
React传值 组件传值 之间的关系详解
Aug 26 Javascript
微信小程序 wx:for遍历循环使用实例解析
Sep 09 Javascript
ant-design-vue按需加载的坑的解决
May 14 Javascript
微信小程序实现身份证取景框拍摄
Sep 09 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 empty()与isset()区别的详细介绍
2013/06/17 PHP
php实现文件下载实例分享
2014/06/02 PHP
php模板引擎技术简单实现
2016/03/15 PHP
PHP+Mysql+Ajax实现淘宝客服或阿里旺旺聊天功能(前台页面)
2017/06/16 PHP
laravel通过a标签从视图向控制器实现传值
2019/10/15 PHP
用JavaScrpt实现文件夹简单轻松加密的实现方法图文
2008/09/08 Javascript
javascript 单例/单体模式(Singleton)
2011/04/07 Javascript
javascript判断ie浏览器6/7版本加载不同样式表的实现代码
2011/12/26 Javascript
jQuery on方法传递参数示例
2014/12/09 Javascript
分享网页检测摇一摇实例代码
2016/01/14 Javascript
详解nodejs与javascript中的aes加密
2016/05/22 NodeJs
javascript设计模式之Adapter模式【适配器模式】实现方法示例
2017/01/13 Javascript
vue根据值给予不同class的实例
2018/09/29 Javascript
如何手动实现es5中的bind方法详解
2018/12/07 Javascript
Python内置函数bin() oct()等实现进制转换
2012/12/30 Python
用Python进行一些简单的自然语言处理的教程
2015/03/31 Python
简单的连接MySQL与Python的Bottle框架的方法
2015/04/30 Python
python算法表示概念扫盲教程
2017/04/13 Python
浅谈Python2、Python3相对路径、绝对路径导入方法
2018/06/22 Python
详解Python中的分组函数groupby和itertools)
2018/07/11 Python
解决PySide+Python子线程更新UI线程的问题
2019/01/11 Python
10分钟用python搭建一个超好用的CMDB系统
2019/07/17 Python
基于Python实现船舶的MMSI的获取(推荐)
2019/10/21 Python
在 Python 中接管键盘中断信号的实现方法
2020/02/04 Python
简单了解python关键字global nonlocal区别
2020/09/21 Python
15个应该掌握的Jupyter Notebook使用技巧(小结)
2020/09/23 Python
AmazeUI在模态框中嵌入表单形成模态输入框
2020/08/20 HTML / CSS
印度婴儿用品在线商店:Firstcry.com
2016/12/05 全球购物
Penhaligon’s英国官网:成立于1870年的英国香水制造商
2021/02/18 全球购物
初中生旷课检讨书范文
2014/10/06 职场文书
新教师教学工作总结
2015/08/14 职场文书
贷款担保书范本
2015/09/22 职场文书
高三数学教学反思
2016/02/18 职场文书
全家福照片寄语怎么写?
2019/04/02 职场文书
七年级作文之游记
2019/12/11 职场文书
Android Studio实现带三角函数对数运算功能的高级计算器
2022/05/20 Java/Android