從JavaScript 的關鍵詞談起

小西在深圳發表於2020-01-16

回顧

還記得剛開始學習JavaScript 這門語言時 會講到關鍵字和保留字,當時的理解的不太深入,只知道這些詞不可以用作變數名和 函式名, 是語言的組成部分,有特別的含義!

疑問

在官方的 ECMA-Script 262 第8版的文件中,一共有 34 個關鍵詞, 一些我認為是關鍵詞的並沒有出現,這裡把他們列出來,和大家探討一下

let foo = 'bar' // 1. let 定義變數的新語法, 支援解構,無變數提升

import React from 'react' // 2. from 在匯入時 使用 指定來源 

import { _Set as Set } from '../util/index' // 3. as 匯入時指定別名 

async function() {} // 4. async 這個非同步函式修飾器 也不是關鍵詞嗎
複製程式碼

我自己列出來的版本


var let const  // 3 宣告變數 傳統宣告, 新的宣告方式,支援解構和設定預設值, const 宣告常量 

debugger; // 1 打斷點除錯專用

if else // 2 條件判斷語句,非常基礎了

switch case break default // 4 多重條件判斷語句 
  
try catch finally throw // 4. 使用者捕獲錯誤 或 丟擲錯誤 

in // 1. 用於判斷 物件的屬性是否存在 ,或 for...in 遍歷
  
for while do  //3.  用於迴圈 for 迴圈, while 迴圈,do... while() 迴圈
  
break continue  // 2.  結束當前迴圈 和 路過單次迴圈
  
async await  // 2 非同步函式,和 等待非同步函式執行完畢 
  
new // 1 呼叫一個建構函式,得到一個物件

this // 1. 在建構函式,或物件方法內使用,指向呼叫者 
  
delete // 1. 用於刪除一個屬性 delete obj.a

of  // 用於 for...of 迴圈 遍歷 可以迭代物件 
  
with // 使用的機會比較少 , 可以改變作用域

class extends super // class 用來定義類 extends 實現繼承, super 可以指向 父類

function return // 2 定義函式以及 從函式中返回值

yield // 一般在 生成器 函式 內使用,用於暫停執行內部程式碼
  
import export default from // 用於 匯入 和 匯出,ES6 模組化
  
typeof, void, instanceof // 判斷型別, 得到 undefined, 判斷一個型別是不是 建構函式的例項
複製程式碼

結語

語言之間總相互借鑑的,現在的 JavaScript 有 JavaScript 的影子,也參考 了一些 python 的語法如 yield , ** ,雖然這門語言更新的比較快,我想著還是朝著更好的方向發展了!PS:感謝各位的閱讀,如有錯誤或不完整的地方,歡迎指正!

參考連結

ES10 官方文件

相關文章