11.3 行终结符

就像空白符代码单元一样,行终结符代码单元也是用来改善源代码的可读性以及分割tokens(不可分割的词法单元)。然而也有不同之处,行终结符对语法文法的行为有一定的影响。一般情况下,行终结符可以出现在任何两个 token 之间,但也有少数地方,语法文法禁止这样做。行终结符也影响自动插入分号过程。行终结符不能出现在 StringLiteral, Template, or TemplateSubstitutionTail 之外的任何 token 内。行终结符只能出现在作为 LineContinuation 一部分的 StringLiteral token 里。

行终结符可以出现在 MultiLineComment(7.4)内,但不能出现在 SingleLineComment 内。

正则表达式的 \s 类匹配的空白字符集中包含行终结符。

表 33 列出了 ECMAScript 的行终止字符
代码单元 Unicode名称 简写
U+000A LINE FEED (LF) < LF >
U+000D CARRIAGE RETURN (CR) < CR >
U+2028 LINE SEPARATOR < LS >
U+2029 PARAGRAPH SEPARATOR < PS >

只有在表33中列出的Unicode字符会被当做行终结符,其他新行或者折行代码单元不会被当做行终结符,但是如果符合表32的话会被当做空白符。< CR > < LF >这个组合一般是被当作行终结符。计算行数时会被当作单个 SourceCharacter

语法:
LineTerminator::  
    <LF>  
    <CR>  
    <LS>  
    <PS>  
LineTerminatorSequence::  
    <LF>  
    <CR>[lookahead ≠ <LF>]  
    <LS>  
    <PS>  
    <CR><LF>

results matching ""

    No results matching ""