0
点赞
收藏
分享

微信扫一扫

【JavaScript】16_JS提升

13、提升

变量var的提升

\- 使用var声明的变量,它会在所有代码执行前被声明

所以我们可以在变量声明前就访问变量(不推荐,不好维护)

函数的提升

\- 使用函数声明创建的函数,会在其他代码执行前被创建

所以我们可以在函数声明前调用函数

let的提升不显示

let声明的变量实际也会提升,但是在赋值之前解释器禁止对该变量的访问

<script>
console.log(b)

let b = 10

// fn()

function fn(){
alert("我是fn函数~")
}

// fn2()
// var fn2 = function(){

// }
// console.log(a)

var a = 10
// a = 10 // window.a = 10
</script>

练习

<script>
/* var a = 1
function fn(){
a = 2
console.log(a) // 2
}
fn()
console.log(a) // 2 */

// 变量和函数的提升同样适用于函数作用域

/* var a = 1
function fn(){
console.log(a) //undefined
var a = 2
console.log(a) // 2
}
fn()
console.log(a) // 1 */

// 定义形参就相当于在函数中声明了对应的变量,但是没有赋值
/* var a = 1
function fn(a){
console.log(a) //undefined
a = 2
console.log(a) // 2
}
fn()
console.log(a) // 1 */

/* var a = 1
function fn(a){
console.log(a) //10
a = 2
console.log(a) // 2
}
fn(10)
console.log(a) // 1
*/

/* var a = 1
function fn(a){
console.log(a) //1
a = 2
console.log(a) // 2
}
fn(a)
console.log(a) // 1 */

console.log(a) // 2

var a = 1

console.log(a) // 1

function a() {
alert(2)
}

console.log(a) // 1

var a = 3

console.log(a) // 3

var a = function () {
alert(4)
}

console.log(a) // 4

var a

console.log(a) // 4
</script>

举报

相关推荐

0 条评论