console.log(a)
var a;
console.log(a)
a = 10
console.log(a)
function a() {
let c = 1;
}
console.log(a)
//相当于:
function a() {
let c = 1;
}
var a;
console.log(a)
console.log(a)
a = 10
console.log(a)
console.log(a)
1) 变量声明存在提升,函数声明存在提升,但函数声明比变量声明更置顶
2) 声明过的变量不会重复声明, 但赋值会覆盖之前的声明
例题1
console.log(a)
//结果:报错 a is not defined
例题2
console.log(a)
var a;
//结果:undefined
例题3
console.log(a)
let a;
//结果:报错 a is not defined
//let 没有变量提升
例题4
var a=1
function fn(){
console.log(a)
var a=2;
}
fn()
//结果:undefined
// var a=1
// function fn(){
// var a
// console.log(a)
// a=2;
// }
// fn()
例题5
var a=1
function fn(a){
console.log(a)
var a=2;
}
fn(5)
//结果:5
// var a=1
// function fn(a){
// var a
// a=5
// console.log(a)
// a=2;
// }
// fn(5)
例题6
var f = function () { console.log(1); }
function f() {
console.log(2);
}
f()
//结果:1
// function f() {
// console.log(2);
// }
// var f = function () { console.log(1); }
// f()