首页 > 编程语言 >【JavaScript】16_JS提升

【JavaScript】16_JS提升

时间:2023-02-18 11:03:12浏览次数:44  
标签:function 10 console log 16 JavaScript JS var fn

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>

标签:function,10,console,log,16,JavaScript,JS,var,fn
From: https://blog.51cto.com/wujianrenn/6065122

相关文章