JavaScript语言精粹-语法篇

127 阅读3分钟

这篇文章主要是记录《JavaScript语言精粹》语法篇的笔记。

标识符

使用场景:标识符主要是被用于语句、变量、参数、属性名、运算符和标记中

  • 由一个字母开头,其后可选择性地加上一个或者多个字母,数字或者下划线
  • 标识符不能使用以下这些保留字
保留字
abstractbooleanbyte
casecatchcharclassconstcontinue
debuggerdefaultdeletedodouble
elseenumexportextends
falsefinalfinallyfloatforfunction
goto
ifimplementsimportininstanceintinterface
long
nativenewnull
packageprivateprotectedpublic
return
shortstaticsuperswitchsynchronized
thisthrowthrowstransienttruetrytypeof
varvolatilevoid
whilewith

除了以上的保留字还有undefined,NaN和Infinity也不能用于标识符中 JavaScript不允许在对象字面量中,或者用点运算符提取对象属性时,使用保留字作为对象的属性名

数字

  • 数字字面量有指数部分,那么这个字面量的值就等于e之前的数字与e之后的次方相乘(2e2与2*100相等)
  • NaN是一个数值NaN不等于任何值,包括它自己,可以用函数isNaN(number)检测NaN,或者通过X===X是false来判断X是否是NaN
扩展 Number.isNaN()和isNaN()区别

字符串

  • 反斜杠(/)是转义字符

语句

一个编译单元包含一组可执行语句。在web浏览器中,每个script标签提供一个被编译且立即执行的编译单元。

  • 条件语句:if和switch
  • 循环语句:while,for,do
  • 强制跳转语句:break,return,throw
  • 这些值被当作假值
假值
falsenullundefined空字符串''数字0数字NaN

除了以上为假值,其他值都是真值包括(true,字符串'false',以及所有对象)

  • for语句
for(初始化从句;条件从句;增量从句){
  执行语句
}
执行顺序:首先条件从句,如果为假,终止循环,如果为真,则执行代码块,接着增量从句;接着循环重复执行条件语句
  • try catch语句
try语句执行一个代码块,并捕获该代码块中的任何异常。catch从句定义一个新的变量来接收抛出的异常对象。如果throw语句在try中,控制流会跳转到catch中。如果throw语句在函数中,则该函数调用被放弃,控制流跳转到catch中。
throw语句的表达式通常是一个对象字面量,包含一个name属性和message属性
  • return语句
会导致从函数中提前返回,可指定要返回的值。不允许在return和表达式之间换行。
  • break语句
使程序退出一个循环或switch语句,它可指定一个可选标签,那退出的就是带该标签的语句。不允许在break和标签之间换行。
  • continue语句
跳过循环中的当前迭代
for(let i=0;i<7;i++){
if(i===5){//跳出i=5的循环
continue;
}
}

表达式

最简单的表达式是字面量值(比如字符串或数字),变量,内置的值(true,false,null,undefined,NaN和Infinity),以new开头的调用表达式,以delete开头的属性提取表达式,包在圆括号中的表达式,以一个前置运算符作为前导的表达式,或者表达式后面跟着:

  • 一个中置运算符与另一个表达式
  • 三元运算符表达式
  • 一个函数调用
  • 一个属性提取表达式