JS學習Day11之預解析
阿新 • • 發佈:2021-01-22
預解析概述
-
JavaScript程式碼是由瀏覽器中的JavaScript解析器來執行的。JavaScript解析器在執行JavaScript程式碼的時候分為兩步:預解析 和 程式碼執行
-
預解析:js 引擎會把 js 裡面所有的 var,function,提升到當前作用域的最前面
-
程式碼執行:按照程式碼的是寫順序從上往下執行
預解析的分類
變數預解析(變數提升)
- 就是把所有的變數宣告提升到當前作用域的最前面,但不提升賦值操作
函式預解析(函式提升)
-
就是把所有的函式宣告提升到當前作用域的最前面,但不呼叫函式
-
注意:函式表示式的呼叫必須寫在函式表示式的下面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
var num = 10;
fun ();
function fun() {
console.log(num);
var num = 20;
}
// 以上程式碼相當於執行了以下程式碼
var num;
function fun() {
var num;
console.log(num);
num = 20;
}
num = 10;
fun();
</script>
</ head>
<body>
</body>
</html>
注意
var a = b = c = 9;
// 相當於:
var a = 9;
b = 9; // 當全域性變數來看
c = 9;
var a = 9, b = 9, c = 9;
// 相當於:
var a = 9;
var b = 9;
var c = 9;