浅谈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 相关文章推荐
关于 byval 与 byref 的区别分析总结
Oct 08 Javascript
js判断IE浏览器版本过低示例代码
Nov 22 Javascript
jquery Deferred 快速解决异步回调的问题
Apr 05 Javascript
BootStrap整体框架之基础布局组件
Dec 15 Javascript
jQuery基于ajax实现页面加载后检查用户登录状态的方法
Feb 10 Javascript
vue2项目使用sass的示例代码
Jun 28 Javascript
ReactJS实现表单的单选多选和反选的示例
Oct 13 Javascript
微信小程序实现页面跳转传值以及获取值的方法分析
Dec 18 Javascript
详解JavaScript中的数组合并方法和对象合并方法
May 11 Javascript
微信小程序支付功能 php后台对接完整代码分享
Jun 12 Javascript
Vue中 v-if 和v-else-if页面加载出现闪现的问题及解决方法
Oct 12 Javascript
vue+elementUI动态增加表单项并添加验证的代码详解
Dec 17 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
怎样在UNIX系统下安装MySQL
2006/10/09 PHP
php变量作用域的深入解析
2013/06/03 PHP
修改php.ini不生效问题解决方法(上传大于8M的文件)
2013/06/14 PHP
php使用百度翻译api示例分享
2014/01/31 PHP
php实现遍历目录并删除指定文件中指定内容
2015/01/21 PHP
php实现xml与json之间的相互转换功能实例
2016/07/07 PHP
Laravel向公共模板赋值方法总结
2019/06/25 PHP
经典的带阴影的可拖动的浮动层
2006/06/26 Javascript
HTML中事件触发列表与解说
2007/07/09 Javascript
用函数式编程技术编写优美的 JavaScript_ibm
2008/05/16 Javascript
学习JavaScript的最佳方法分享
2011/10/21 Javascript
JQuery的read函数与js的onload不同方式实现
2013/03/18 Javascript
JS实现的网页背景闪电闪烁效果代码
2015/10/17 Javascript
用jQuery获取table中行id和td值的实现代码
2016/05/19 Javascript
Vue修改mint-ui默认样式的方法
2018/02/03 Javascript
基于vue,vue-router, vuex及addRoutes进行权限控制问题
2018/05/02 Javascript
用node开发并发布一个cli工具的方法步骤
2019/01/03 Javascript
Vue.js中该如何自己维护路由跳转记录
2019/05/19 Javascript
JS回调函数简单易懂的入门实例分析
2019/09/29 Javascript
Vue设置长时间未操作登录自动到期返回登录页
2020/01/22 Javascript
浅谈python中scipy.misc.logsumexp函数的运用场景
2016/06/23 Python
Tensorflow 模型转换 .pb convert to .lite实例
2020/02/12 Python
纯css3实现的动画按钮的实例教程
2014/11/17 HTML / CSS
HTML5 SEO优化的一些建议
2020/08/27 HTML / CSS
加拿大租车网站:Enterprise Rent-A-Car
2018/07/26 全球购物
印度排名第一的蛋糕、鲜花和礼品送货:Winni
2019/08/02 全球购物
俄罗斯在线水暖商店:Perfecto.ru
2019/10/25 全球购物
上海中网科技笔试题
2012/02/19 面试题
应届生文秘专业个人自荐信格式
2013/09/21 职场文书
《蓝色的树叶》教学反思
2014/02/24 职场文书
铁路安全事故反思
2014/04/26 职场文书
基层党员学习党的群众路线教育实践活动心得体会
2014/11/04 职场文书
公司庆典欢迎词
2015/01/26 职场文书
新教师个人总结
2015/02/06 职场文书
教学反思怎么写
2016/02/24 职场文书
如何用RabbitMQ和Swoole实现一个异步任务系统
2021/05/29 PHP