浅谈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 原型和继承(Prototypes and Inheritance)
Apr 01 Javascript
javascript 面向对象编程  function是方法(函数)
Sep 17 Javascript
jQuery Mobile页面跳转后未加载外部JS原因分析及解决
Mar 18 Javascript
js浮动图片的动态效果
Jul 10 Javascript
jQuery控制网页打印指定区域的方法
Apr 07 Javascript
3种js实现string的substring方法
Nov 09 Javascript
最佳的JavaScript错误处理实践
Jul 16 Javascript
AngularJs页面筛选标签小功能
Aug 01 Javascript
a标签置灰不可点击的实现方法
Feb 06 Javascript
vuejs手把手教你写一个完整的购物车实例代码
Jul 06 Javascript
JavaScript简单实现合并两个Json对象的方法示例
Oct 16 Javascript
JS实现滑动导航效果
Jan 14 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垃圾回收机制对内存泄露的处理
2013/06/14 PHP
PHP+MySql+jQuery实现的"顶"和"踩"投票功能
2016/05/21 PHP
PHP结合Vue实现滚动底部加载效果
2017/12/17 PHP
pjblog修改技巧汇总
2007/03/12 Javascript
图片上传即时显示缩略图的js代码
2009/05/27 Javascript
javascript面向对象之二 命名空间
2011/02/08 Javascript
jquery bind(click)传参让列表中每行绑定一个事件
2014/08/06 Javascript
Javascript实现图片轮播效果(一)让图片跳动起来
2016/02/17 Javascript
详解Backbone.js框架中的模型Model与其集合collection
2016/05/05 Javascript
利用JavaScript在网页实现八数码启发式A*算法动画效果
2017/04/16 Javascript
详解React开发中使用require.ensure()按需加载ES6组件
2017/05/12 Javascript
BootStrap入门学习第一篇
2017/08/28 Javascript
vue中使用cookies和crypto-js实现记住密码和加密的方法
2018/10/18 Javascript
微信小程序日历效果
2018/12/29 Javascript
JavaScript学习笔记之数组基本操作示例
2019/01/09 Javascript
js实现京东秒杀倒计时功能
2019/01/21 Javascript
Vue开发之封装上传文件组件与用法示例
2019/04/25 Javascript
Vue项目服务器部署之子目录部署方法
2019/05/12 Javascript
Vue 封装防刷新考试倒计时组件的实现
2020/06/05 Javascript
python下调用pytesseract识别某网站验证码的实现方法
2016/06/06 Python
用python实现简单EXCEL数据统计的实例
2017/01/24 Python
用Python实现KNN分类算法
2017/12/22 Python
Python实现自动访问网页的例子
2020/02/21 Python
别名指示符是什么
2012/10/08 面试题
医药专业推荐信
2013/11/15 职场文书
社区中秋节活动方案
2014/01/29 职场文书
《满井游记》教学反思
2014/02/26 职场文书
办公室副主任职责范本
2014/03/08 职场文书
市场营销方案范文
2014/03/11 职场文书
四风自我剖析材料
2014/09/30 职场文书
2014年乡镇妇联工作总结
2014/12/02 职场文书
优秀教师个人总结
2015/02/11 职场文书
政工师工作总结2015
2015/05/26 职场文书
高考百日冲刺决心书
2015/09/23 职场文书
导游词之铁岭象牙山
2019/12/06 职场文书
漫画「处刑少女的生存之道」第3卷封面公开
2022/03/21 日漫