浅谈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 offsetX与layerX区别
Mar 12 Javascript
JavaScript中创建类/对象的几种方法总结
Nov 29 Javascript
字段太多jquey快速清空表单内容方法
Aug 21 Javascript
jQuery中clone()方法用法实例
Jan 16 Javascript
很不错的两款Bootstrap Icon图标选择组件
Jan 28 Javascript
微信小程序 弹幕功能简单实例
Feb 14 Javascript
在使用JSON格式处理数据时应该注意的问题小结
May 20 Javascript
基于vue cli重构多页面脚手架过程详解
Jan 23 Javascript
vue实现添加与删除图书功能
Oct 07 Javascript
layer实现弹出层自动调节位置
Sep 05 Javascript
浅谈javascript如何获取文件后缀名
Aug 07 Javascript
HTML+JS实现在线朗读器
Feb 15 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
模仿OSO的论坛(二)
2006/10/09 PHP
php 异常处理实现代码
2009/03/10 PHP
TMDPHP 模板引擎使用教程
2012/03/13 PHP
php获得客户端浏览器名称及版本的方法(基于ECShop函数)
2015/12/23 PHP
理解PHP中的Session及对Session有效期的控制
2016/01/08 PHP
关于PHP中协程和阻塞的一些理解与思考
2017/08/11 PHP
JavaScript 组件之旅(一)分析和设计
2009/10/28 Javascript
过虑特殊字符输入的js代码
2010/08/05 Javascript
Javascript延迟执行实现方法(setTimeout)
2010/12/30 Javascript
IE6下focus与blur错乱的解决方案
2011/07/31 Javascript
jQuery load方法用法集锦
2011/12/06 Javascript
javascript表格的渲染组件
2015/07/03 Javascript
Js实现简单的小球运动特效
2016/02/18 Javascript
jquery显示隐藏元素的实现代码
2016/05/19 Javascript
基于JavaScript实现的快速排序算法分析
2017/04/14 Javascript
详解json串反转义(消除反斜杠)
2019/08/12 Javascript
[01:45]DOTA2新英雄“神谕者”全方位展示
2014/11/21 DOTA
[00:13]天涯墨客二技能展示
2018/08/25 DOTA
Python易忽视知识点小结
2015/05/25 Python
在Django中同时使用多个配置文件的方法
2015/07/22 Python
最大K个数问题的Python版解法总结
2016/06/16 Python
Python实现对字典分别按键(key)和值(value)进行排序的方法分析
2018/12/19 Python
Python获取指定网段正在使用的IP
2020/12/14 Python
html5 video全屏播放/自动播放的实现示例
2020/08/06 HTML / CSS
Opodo英国旅游网站:预订廉价航班、酒店和汽车租赁
2018/07/14 全球购物
精灵市场:Pixie Market
2019/06/18 全球购物
在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern "C"
2014/08/09 面试题
params有什么用
2016/03/01 面试题
初中生期末考试的自我评价
2013/12/17 职场文书
打架检讨书800字
2014/01/10 职场文书
自主实习接收函
2014/01/13 职场文书
《跨越百年的美丽》教学反思
2014/02/11 职场文书
运动会方阵解说词
2014/02/12 职场文书
行政文员实习自我鉴定范文
2014/09/14 职场文书
小学生节水倡议书
2015/04/29 职场文书
python中的None与NULL用法说明
2021/05/25 Python