从JavaScript 的关键词谈起

717

回顾

还记得刚开始学习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 官方文档