前两天面试官问了我一道题:你知道js有哪些保留字吗?
当时自己就说了abstract,try,catch,this,其中最重要的就是this这个关键字了。
然后面试官问,你说的this是关键字,我问的是保留字。
这下,我马上反应过来,我说的是关键字。此时的我才意识到,对于关键字和保留字,我好像并没有区分的那么清楚,而是把两者混淆了。为此,今天特意整理了一下关键字和保留字,避免下次犯同样的错误。
关键字
关键字是在JavaScript已经被规定为具有特殊功能的字。这些关键字可用于表示控制语句的开始或结束,或者用于执行特定操作等。按照规则,关键字也是语言保留的,不能用作标识符。ES2015新增let和const等为关键字。
break | do | instanceof | typeof |
case | else | new | var |
catch | finally | return | void |
continue | for | switch | while |
debugger* | function | this | with |
default | if | throw | delete |
in | try | let | const |
ECMA-262 还描述了另外一组不能用作标识符的保留字。尽管保留字在这门语言中还没有任何特定的用途。但它们有可能在将来被用作关键字。以下是ECMA-262 第3 版定义的全部保留字:
abstract | enum | int | short |
boolean | export | interface | static |
byte | extends | long | super |
char | final | native | synchronized |
class | float | package | throws |
const | goto | private | transient |
debugger | implements | protected | volatile |
double | import | public |