变量提升
JavaScript代码是由浏览器的JavaScript解析器来执行的,JavaScript解析器在运行JavaScript代码的时候分为两步:预解析和代码执行
- 代码执行 按照代码书写的顺序从上往下执行
-
预解析js引擎会把js里面所有的var还有function提升到当前作用于的最前面
预解析分为 变量预解析(变量提升)和 函数预解析(函数提升)
-
变量提升 就是把所有的变量声名提升到当前作用域的最前面,不进行赋值操作
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
console.log(num); //输出结果 undefined
var num = 10;
// 一般程序都是以从上往下一次执行,console.log(num);在控制台输出这个变量的值,
//