<script> f1(); console.log(c);//9 console.log(b);//9 console.log(a);//报错 function f1() { var a = b = c = 9; console.log(a);//都是9 console.log(b); console.log(c); } // b = 10; 匿名变量也是全局变量 // console.log(b); myFunction(10,20);//会报错,声明会被提前,但是仅仅是声明 var myFunction = function (a,b) { return a+ b; } //预解析 变量的提升: 定义变量的时候,变量的声明会提到作用域的最上面,变量的赋值不会提升 函数的提升: -JavaScript解析器首先会把当前作用域的函数声明提前到整个作用域的最前面//预解析:变量的声明和函数的声明会被提前 //如果在多对的script标签中,有函数名相同的,此时预解析的时候互不影响 //如果函数内部有变量并且赋值,那么此时,会把该变量的声明提升到该函数中的最上面</script>
JS中预解析
最新推荐文章于 2022-05-15 10:00:31 发布