浅谈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传值 判断
Oct 26 Javascript
document.open() 与 document.write()的区别
Aug 13 Javascript
[原创]用javascript实现检测指定目录是否存在的方法
Jan 12 Javascript
JS 面向对象之神奇的prototype
Feb 26 Javascript
详解Javascript中的Object对象
Feb 28 Javascript
jquery获取table指定行和列的数据方法(当前选中行、列)
Nov 07 Javascript
简单三步实现报表页面集成天气
Dec 15 Javascript
Bootstrap选项卡学习笔记分享
Feb 13 Javascript
jQuery树控件zTree使用方法详解(一)
Feb 28 Javascript
大白话讲解JavaScript的Promise
Apr 06 Javascript
Angularjs验证用户输入的字符串是否为日期时间
Jun 01 Javascript
js 实现碰撞检测的示例
Oct 28 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
一个用php3编写的简单计数器
2006/10/09 PHP
将数组写入txt文件 var_export
2009/04/21 PHP
ext checkboxgroup 回填数据解决
2009/08/21 Javascript
JS延迟加载(setTimeout) JS最后加载
2010/07/15 Javascript
Javascript倒计时代码
2010/08/12 Javascript
javascript中的关于类型转换的性能优化
2010/12/14 Javascript
jquery调整表格行tr上下顺序实例讲解
2016/01/09 Javascript
无缝滚动的简单实现代码(推荐)
2016/06/07 Javascript
echarts3 使用总结(绘制各种图表,地图)
2017/01/05 Javascript
Vue.js:使用Vue-Router 2实现路由功能介绍
2017/02/22 Javascript
详解vue-router 2.0 常用基础知识点之router-link
2017/05/10 Javascript
详解微信小程序 通过控制CSS实现view隐藏与显示
2017/05/24 Javascript
详解webpack打包vue时提取css
2017/05/26 Javascript
webpack+vue-cil中proxyTable处理跨域的方法
2018/07/20 Javascript
python实现bitmap数据结构详解
2014/02/17 Python
利用Python的Django框架中的ORM建立查询API
2015/04/20 Python
使用python画个小猪佩奇的示例代码
2018/06/06 Python
PHP实现发送和接收JSON请求
2018/06/07 Python
pip命令无法使用的解决方法
2018/06/12 Python
Sanic框架安装与简单入门示例
2018/07/16 Python
利用python画出折线图
2018/07/26 Python
python3图片文件批量重命名处理
2019/10/31 Python
基于Python数据分析之pandas统计分析
2020/03/03 Python
Django ORM实现按天获取数据去重求和例子
2020/05/18 Python
Django实现任意文件上传(最简单的方法)
2020/06/03 Python
Python3爬虫发送请求的知识点实例
2020/07/30 Python
Sephora丝芙兰菲律宾官方网站:购买化妆品和护肤品
2017/04/05 全球购物
澳大利亚男士西服品牌:M.J.Bale
2018/02/06 全球购物
俄罗斯韩国化妆品网上商店:Cosmasi.ru
2019/10/31 全球购物
德国50岁以上交友网站:Lebensfreunde
2020/03/18 全球购物
美国名牌手表折扣网站:Jomashop
2020/05/22 全球购物
2014初中数学教研组工作总结
2014/12/19 职场文书
廉洁自律准则学习心得体会
2016/01/13 职场文书
工作简历的自我评价
2019/05/16 职场文书
python opencv检测直线 cv2.HoughLinesP的实现
2021/06/18 Python
高性能跳频抗干扰宽带自组网电台
2022/02/18 无线电