码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript之预解析

时间:2019-07-20 21:45:50      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:javascrip   代码   哈哈哈   fine   声明   --   asc   变量   efi   

<script>
/** 预解析:提前解析代码
*
* 预解析做什么事?
* 把变量的声明提前了(但赋值不会提前),提前到当前所在作用域的最上面
* 函数的声明也会被提前,提前到当前所在作用域的最上面
*
* 预解析会分段(多对script标签中的函数重名,预解析的时候不会冲突)
*
* 先提前var,在提前function
*/

//把变量的声明提前了
console.log(num);//没有报错--undefined
var num=20;

f1();
function f1() {
console.log("哈哈哈哈");
}

f2();
var num1=20;
function f2() {
console.log(num1); //结果是undefined 不是20
var num1=10;
}

f3();
var num2=20;
function f3() {
console.log(num2); //结果是undefined 因为预解析将函数f3和变量num2(但没有赋值)的定义提前
}

var num3=20;
function f4() {
console.log(num3); //结果是20
}
f4();
</script>

JavaScript之预解析

标签:javascrip   代码   哈哈哈   fine   声明   --   asc   变量   efi   

原文地址:https://www.cnblogs.com/chm-blogs/p/11219181.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!