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

 更新时间:2017年02月13日 08:45:01   投稿:jingxian  
下面小编就为大家带来一篇浅谈js中的变量名和函数名重名。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

今天骚凯问了一道变量名冲突的题目,感觉很有意思,顺便也复习一下预解析的一些知识,有不对的地方忘前辈大神指正,题目是这样的:

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中的变量名和函数名重名就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解JS如何进行变量解构

    详解JS如何进行变量解构

    JavaScript中,可以使用解构赋值的方式来对数组或者对象进行变量解构,下面小编就来为大家详细介绍一下JavaScript实现数组或者对象解构的方法吧
    2023-11-11
  • JavaScript基于replace+正则实现ES6的字符串模版功能

    JavaScript基于replace+正则实现ES6的字符串模版功能

    这篇文章主要介绍了JavaScript基于replace+正则实现ES6的字符串模版功能,结合实例形式分析了replace结合正则实现ES6字符串模板功能的具体步骤与相关操作技巧,需要的朋友可以参考下
    2017-04-04
  • 微信小程序实现元素渐入渐出动画效果封装方法

    微信小程序实现元素渐入渐出动画效果封装方法

    这篇文章主要介绍了微信小程序实现元素渐入渐出动画效果封装方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • js判断对象是否是某一类型

    js判断对象是否是某一类型

    下面的代码就是判断脚本之家是不是字符串类型的代码
    2008-11-11
  • JavaScript页面回流与重绘

    JavaScript页面回流与重绘

    这篇文章主要介绍了JavaScript页面回流与重绘,一个html页面是一个整体,当这个整体中的某一个部分发生改变,那么这个页面整体会重新进行渲染,而如果我们采用添加标签的方式,每次添加一个标签,就会让每一次页面都重新渲染,性能急剧下降,下面来看看具体内容吧
    2022-01-01
  • JavaScript将数据转换成整数的方法

    JavaScript将数据转换成整数的方法

    这篇文章主要介绍了JavaScript将数据转换成整数的方法,有需要的朋友可以参考一下
    2014-01-01
  • javascript 极速 隐藏/显示万行表格列只需 60毫秒

    javascript 极速 隐藏/显示万行表格列只需 60毫秒

    隐藏表格列 这种方式的效率极低。例如,隐藏一个千行表格的某列,在我的笔记本(P4 M 1.4G,768M内存)上执行需要约 4000毫秒的时间,令人无法忍受。
    2009-03-03
  • Bootstrap基本插件学习笔记之按钮(21)

    Bootstrap基本插件学习笔记之按钮(21)

    这篇文章主要为大家详细介绍了Bootstrap基本插件学习笔记之按钮的相关资料,实现按钮状态控制等形式的交互,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • 如何通俗的解释TypeScript 泛型

    如何通俗的解释TypeScript 泛型

    这篇文章主要介绍了TypeScript 泛型,对泛型感兴趣的同学,可以参考下
    2021-05-05
  • 微信页面倒计时代码(解决safari不兼容date的问题)

    微信页面倒计时代码(解决safari不兼容date的问题)

    本文主要分享了微信页面倒计时代码(pc端),并在文章结尾分析了safari不兼容date的原因以及解决方法,具有很好的参考价值,需要的朋友一起来看下吧
    2016-12-12

最新评论