一、var和let
var已經在JavaScript中存在很長一段時間了,但是它存在了一些不足的地方,接下來我們就來看看吧
首先var存在變數提升,這是怎么一回事呢,我們看下面代碼

為什么是它呢,是因為變數a提升到前面去了,所以輸出了這個結果
接下來我們再看let

初始化無法訪問到 a
let是不是變數宣告很好,這是ES6中為了使我們的編程更加的規范而提出的,變數的使用在宣告之后更加的規范
如果存在于塊級作用域中l,接下來看代碼

在上面的塊中我們的let存在于里面,在外層我們是讀取不到的
那我們的var怎么樣,看下面

接下來我們就要說說let是存在一個“暫時性死區”的,就是說在變數使用let宣告的話必須是在宣告之后呼叫而且必須是在當前的塊中才可以的,不然就會出現未定義,
而且我們的let是不能進行重復shengsheng宣告的,不然也是會報錯的,當然var就不會出現這個問題了,
好了,以上就介紹的差不多了,需深刻領會的必須自己進行實踐才可以的
二、const
const和我們的let是一樣的不能進行重復宣告,也存在“暫時性死區”,而且const的話就相當于C語言中定義的一個常數而不能進行改變,并且const宣告后不賦值就會報錯的,
如果const是一個陣列或者是一個物件,那么可以向里面添加屬性或者時內容的,接下來我們看下面的代碼了,


好了,我們的const介紹到這里吧,
三、function和class
為什么我把他們連到一起來說,因為我們的class實際上就是我們的function構成的
這里還要說一下我們的function的宣告實際上需要往好的方式來進行寫的,為什么這么來說?
我們需要將function宣告的進行如下方式來書寫

為什么我們這么來寫呢,因為這是在塊級作用域中來進行書寫的,讓let給一個宣告就不會出現變數的提升,
當然現在由于我們的瀏覽器和編譯環境(這里指的node等等)的問題他們的規范是不一樣的,有些宣告的函式直接是當做var,或者是let來的,所以我們盡量不要在塊區域來宣告函式,盡量在全域
來進行宣告,如果要宣告就是上面的那種方式了,
好了接下來說說我們的class,直接看代碼吧

constructor就是我們的構造器,它是默認存在的,那么this的指向呢,當然是我們的Person了,接下來還有下面的方式

里面新增加的函式直接書寫成上面的方式即可,還有靜態strict的書寫方式,這里我就不在舉例了,看了上面的代碼,我相信這種類的方式是對我們以后代碼的撰寫是很有幫助的,
說到這里我想到了函式里面的prototype,實際上我們的類就是居于這個原理來實作的,我們還是來看看代碼吧

這個有點像原型鏈呼叫的方式,還有繼承的問題,這里就不做過多的闡述了,具體的需要自己去實踐才可以出真理的吧,
四、import
靜態的import 陳述句用于匯入由另一個模塊匯出的系結,它是在嚴格模式下運行的,如下代碼
看下官方的語法:
import defaultExport from "module-name";
當然在瀏覽器中,import陳述句只能在宣告了type="module"的script的標簽中使用,我們做專案使用VUE,react框架時使用這些就比較常見,好了我就不過多介紹了,有興趣的話可以在去理解理解
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/148806.html
標籤:JavaScript
