0
点赞
收藏
分享

微信扫一扫

javascript中的作用域和预解析


1. javascript作用域

javascript中的作用域和预解析_作用域链

1.1 作用域链

作用域链 : 内部函数访问外部函数的变量,采取的是链式查找的方式来决定取那个值 这种结构我们称为作用域链 就近原则

<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script>
// 案例1 : 结果是几?
function f1() {
var num = 123;

function f2() {
var num = 0;
console.log(num); // 站在目标出发,一层一层的往外查找
}
f2();
}
var num = 456;
f1();
// 案例2 :结果是几?
var a = 1;

function fn1() {
var a = 2;
var b = '22';
fn2();

function fn2() {
var a = 3;
fn3();

function fn3() {
var a = 4;
console.log(a); //a的值 ?
console.log(b); //b的值 ?
}
}
}
fn1();
</script>
</head>

<body>

</body>

</html>

第一个的值是123,第二个的值是数字4和字符串22

2. 预解析

javascript中的作用域和预解析_javascript_02

javascript中的作用域和预解析_赋值_03

注意:预解析过程中,首先进行变量提升(不提升赋值)和函数(不调用函数)提升,然后其他的按顺序写下来即可。

javascript中的作用域和预解析_javascript_04

javascript中的作用域和预解析_javascript_05



举报

相关推荐

0 条评论