浏览器学习笔记-JS执行

变量提升

  1. 变量提升原理
    浏览器对js是先编译后执行,在编译过程中,js中的变量声明会被提升到代码段落前面。
    函数声明和定义也会被提升。
    如下代码:
console.log(num);
count();
var num = 0;
function count(){
     console.log(10)
};

编译后顺序变为:

var num;
function count(){
     console.log(10)
};
console.log(num);
count();
num=0;

注意
变量num只有声明被提前,赋值并未提前
函数count的声明和定义都被提前

2、变量提升代码分析

showName()
var showName = function() {
    console.log(2)
}
function showName() {
    console.log(1)
}

执行结果为:

1

原因:
多个函数同名时,后定义的覆盖先定义的
函数和变量同名时,变量不生效

你可能感兴趣的:(浏览器学习笔记-JS执行)