源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

浅谈js中的变量名和函数名重名

  • 时间:2020-08-27 20:49 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:浅谈js中的变量名和函数名重名
今天骚凯问了一道变量名冲突的题目,感觉很有意思,顺便也复习一下预解析的一些知识,有不对的地方忘前辈大神指正,题目是这样的:
var a=100;
function a(){
  console.log(a);
}
a();

这个串代码执行完会报错 : a is not a function 问题来了,为什么会报这个错误呢? 这里涉及到函数和变量的预解析: [b]1)函数声明会置顶[/b] [b]2)变量声明也会置顶[/b] [b]3)函数声明比变量声明更置顶:(函数在变量上面)[/b] [b]4)变量和赋值语句一起书写,在js引擎解析时,会将其拆成声明和赋值2部分,声明置顶,赋值保留在原来位置[/b] [b]5)声明过的变量不会重复声明[/b] 知道以上的规则,上面的代码等同于 :
var a=function (){
  console.log(a);
}
var a=100;
a();

相当于给a重新赋值了,所以会报错。 以上这篇浅谈js中的变量名和函数名重名就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程素材网。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部