变量和函数提升(js的问题)

        • js解释执行
        • 变量和函数提升
变量声明提前,函数声明提前
        • 变量声明提前:值停留在本地
        • 函数声明提前:整个函数体提前
如果是var赋值声明的函数,变量提前,函数体停留在本地
1、变量提升
未声明使用会报错

console.log(a); // Error: a is not defined

var会变量提升

console.log(a);  // undefined
var a = 10;

let定义不会提升

console.log(a);  // Error: Cannot access 'a' before initialization
let a = 10;

2、函数提升

console.log(func);  // func(){}
function func(){}
console.log(foo);  // undefined
var foo = function func(){}
console.log(func);  // Error: func is not defined
var foo = function func(){}

你可能感兴趣的:(javascript,开发语言,ecmascript)