1 声明
1-1 「js函数声明三种方式:」
(1) Function()构造器
var f =new Function()
(2) 函数声明
function f (){
console.log(2);
}
(3) 函数表达式
var f = function() {
console.log(1);
}
1-2「js变量声明:」
- var声明的变量会挂载在window上,而let和const声明的变量不会
- var声明变量存在变量提升,let和const不存在变量提升(严格来说,let也存在)
- let和const声明形成块作用域
- let存在暂存死区
- const声明必须赋值
(1) var声明的变量会挂载在window上,而let和const声明的变量不会:
var a = 100;
console.log(a,window.a); // 100 100
let b = 10;
console.log(b,window.b); // 10 undefined
const c = 1;
console.log(c,window.c); // 1 undefined
(2) var声明变量存在变量提升,let和const不存在变量提升
console.log(a); // undefined ===> a已声明还没赋值,默认得到undefined值
var a = 100;
console.log(b); // 报错:b is not defined