函数的声明与提升

JavaScript代码是从上而下执行的;那么,在前面使用了一个之后声明的变量会发生什么呢?
我们就来研究一下JavaScript中关于变量和函数的提升:

变量的提升:

  1. 变量的提升
    var定义:将声明的变量名提升至代码的最前面
    函数中声明的变量提升至函数内部最前面
    提前使用则打印undefined
console.log(a) // undefind
var a = 1;
console.log(a) // 1
  1. 全局变量概念
    没有提升,提前使用则报错 未定义
    在函数中定义全局变量,(函数执行后)可在函数外使用
console.log(a); // 报错
a = 1;
console.log(a); // 1
  1. 局部变量:在函数内部声明的变量,不可在函数外部使用
    就近原则,使用自己内部的变量

function fnName() {
   var a = 5;
   var f = 6;
   e = 'e';
   console.log(a); // 5
}
fnName();
console.log(e);  // 'e'
console.log(f); // 报错
  1. 全局变量:在全局下声明的变量,定义后,可在任何地方使用(涉及到提升)
    特殊的全局变量: window下的属性(未使用var)

函数的提升:

  1. 函数声明式
    function fnName() {
    console.log(1);
    }

整个函数体会全部提升:
函数名与变量名相同,则函数名权重会高
同名函数取最后一个同名函数

  1. 函数表达式
    var fnName2 = function () {
    console.log(2);
    }

按照变量的提升方式: undefined

  1. 函数重载:Js里面是没有重载
    JS中的函数没有重新载入的概念,而是以最后一个同名函数为基准;
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容