浅谈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 全等号运算符使用说明
May 31 Javascript
前端开发过程中浏览器版本的两种判定方法
Oct 30 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
Oct 26 Javascript
jQuery实现下拉加载功能实例代码
Apr 01 Javascript
Jquery实现select multiple左右添加和删除功能的简单实例
May 26 Javascript
JS实现重新加载当前页面或者父页面的几种方法
Nov 30 Javascript
微信小程序实现给循环列表添加点击样式实例
Apr 26 Javascript
Js利用console计算代码运行时间的方法示例
Sep 24 Javascript
jQuery扩展方法实现Form表单与Json互相转换的实例代码
Sep 05 jQuery
vue+echarts实现动态绘制图表及异步加载数据的方法
Oct 17 Javascript
Angular6 发送手机验证码按钮倒计时效果实现方法
Jan 08 Javascript
vue 弹出遮罩层样式实例
Jul 22 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
PHPMailer邮件类利用smtp.163.com发送邮件方法
2008/09/11 PHP
几种有用的变型 PHP中循环语句的用法介绍
2012/01/30 PHP
PHP读取PPT文件的方法
2015/12/10 PHP
php $_SESSION会员登录实例分享
2021/01/19 PHP
jquery创建并行对象或者合并对象的实现代码
2012/10/10 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2014/09/04 Javascript
js简单网速测试方法完整实例
2015/12/15 Javascript
jquery层级选择器(匹配父元素下的子元素实现代码)
2016/09/05 Javascript
js控制一个按钮是否可点击(可使用)disabled的实例
2017/02/14 Javascript
jQuery中animate()的使用方法及解决$(”body“).animate({“scrollTop”:top})不被Firefox支持的问题
2017/04/04 jQuery
让网站自动生成章节目录索引的多个js代码
2018/01/07 Javascript
npm 常用命令详解(小结)
2019/01/17 Javascript
原生JS实现多条件筛选
2020/08/19 Javascript
vue用ant design中table表格,点击某行时触发的事件操作
2020/10/28 Javascript
[10:54]Team Spirit vs Navi
2018/06/07 DOTA
仅用50行Python代码实现一个简单的代理服务器
2015/04/08 Python
利用Python的Django框架中的ORM建立查询API
2015/04/20 Python
利用python实现数据分析
2017/01/11 Python
Flask web开发处理POST请求实现(登录案例)
2018/07/26 Python
Python实现删除某列中含有空值的行的示例代码
2020/07/20 Python
python3 os进行嵌套操作的实例讲解
2020/11/19 Python
Python析构函数__del__定义原理解析
2020/11/20 Python
美国著名的婴儿学步鞋老品牌:Robeez
2016/08/20 全球购物
英国手机零售商:Metrofone
2019/03/18 全球购物
Java语言程序设计测试题选择题部分
2014/04/03 面试题
入党自我鉴定范文
2013/10/04 职场文书
计算机个人求职信范例
2014/01/24 职场文书
葬礼司仪主持词
2014/03/31 职场文书
《鲁班和橹板》教学反思
2014/04/27 职场文书
2014年教师节演讲稿
2014/09/03 职场文书
2014年销售工作总结
2014/12/01 职场文书
鼋头渚导游词
2015/02/05 职场文书
手把手教你从零开始react+antd搭建项目
2021/06/03 Javascript
Mysql中存储引擎的区别及比较
2021/06/04 MySQL
Typescript类型系统FLOW静态检查基本规范
2022/05/25 Javascript
win10如何开启ahci模式?win10开启ahci模式详细操作教程
2022/07/23 数码科技