JS中变量名和函数名重名
Posted 当当当
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS中变量名和函数名重名相关的知识,希望对你有一定的参考价值。
var a=100; function a(){ console.log(a); } a();// a is not a function
原来
- 函数声明会置顶
- 变量声明也会置顶
- 函数声明比变量声明更置顶
- 变量和复制语句一起书写,在js引擎解析时,会将其拆成声明和赋值两个部分,声明置顶,赋值保留在原来的位置
- 声明或的变量不会重复声明
实际上这段代码等同于
var a; //函数声明 var a; //变量声明(实际上这里不会重复声明了) a = function(){ console.log(a); }; //函数赋值 a = 100;//变量赋值(给a重新赋值了) a()//a is not a function
而如果代码会如下写法则a方法会执行
var a; //函数声明 var a; //变量声明(实际上这里不会重复声明了) a = 100; a=function(){console.log(123)}//函数赋值 a()//123
以上是关于JS中变量名和函数名重名的主要内容,如果未能解决你的问题,请参考以下文章