當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
js javascript变量提升
生活随笔
收集整理的這篇文章主要介紹了
js javascript变量提升
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
var:變量提升(無論聲明在何處,都會被提至其所在作用域的頂部)
let:無變量提升(所在的塊內,未到let聲明時(即let聲明之前),是無法訪問該變量的(not defined)),let變量不能重復聲明(報錯has already been declared)
const:無變量提升,聲明一個基本類型的時候為常量,不可修改;聲明對象可以修改 <script>var a = 1;function fn() {console.log(a)//undefineda = 2;console.log(a)//2var a = 3;console.log(a)//3
}/* var聲明變量提升到作用域頂部fn等價于 function fn() {var a;console.log(a)//undefineda = 2;console.log(a)a = 3;console.log(a)}*/function fn2() {//console.log(a)//a is not defined,let聲明之前不能使用let a = 4;//let a = 5;//a has already been declared,在同一個作用域內let不能重復聲明如果{let a=5;}就可以,{}內的let聲明作用域只在{}有效console.log(a)//4
}function fn3() {console.log(a)//1a = 6;}fn();fn2();fn3();console.log(a);//6
</script>
?還有以下例子,可以看出函數也存在提升一說:
<script>console.log(fn);//? fn() {}var fn = 1;function fn() {}console.log(fn);//1/*函數提升,提升到作用域最前等價于var fn = undefined;function fn() {}console.log(fn);fn = 1;console.log(fn);*/ </script>?具體的提升可以參照:https://zhuanlan.zhihu.com/p/28140450
轉載于:https://www.cnblogs.com/lcawen/p/8777630.html
總結
以上是生活随笔為你收集整理的js javascript变量提升的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python递归调用
- 下一篇: Spring MVC上传文件原理和res