0%

声明提升

变量提升

通过var定义(声明)的变量,在定义语句之前就能访问到,
此时该变量的值:undefined

函数声明提升

通过function声明的函数,在之前就可以直接调用
此时该函数的值:函数定义(对象)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var a=3
function fn(){
console.log(a)
var a=4
}
fn() //输出 undefined


console.log(b) //undefined 变量提升
fn2() //可调用 函数提升
var b=3
function fn2(){
console.log('fn2()')
}

fn3() //不能调用,应为这是通过var声明的变量
var fn3=function (){
console.log('fn3()')
}
1
2
3
4
//先执行变量提升,再执行函数提升
function a(){}
var a
console.log(typeof a) // function
1
2
3
4
if(!(b in window)){
var b =1 // 该变量是全局变量
}
console.log(b) // undefined
1
2
3
4
5
6
7
8
9
10
11
12
var c=1
function c(c){
console.log(c)
}
c(2) //报错
//相当与
var c
function c(c){
console.log(c)
}
c=1
c(2)
用你的钱疯狂砸向我吧~~

欢迎关注我的其它发布渠道