当前位置 博文首页 > 小旺的博客:JavaScript语法详解

    小旺的博客:JavaScript语法详解

    作者:[db:作者] 时间:2021-08-08 16:15

    注释

    在行尾“//”之后的文本都会被JavaScript当做注释忽略掉的。此外,“/”和“/”之间的文本也会当做注释,这种注释可以跨行书写,但不能有嵌套的注释。

    //单行注释
    /*注释*/  //注释
    /*
    * 注释
    * 注释
    */
    

    数据类型

    12 //数字
    1.2	//小数
    "hello world"	// 字符串
    'hi'			// 字符串
    true			// 布尔值
    false			// 布尔值
    /javascript/gi	// 正则表达式
    null			// 空
    

    标识符

    标识符就是一个名字。
    在JavaScript中,标识符用来对变量和函数进行命名,或者用做JavaScript代码中某些循环语句中的跳转位置的标记。
    JavaScript标识符必须以字母、下划线(_)或美元符($)开始。后续的字符可以是字母、数字、下划线或美元符(数字是不允许作为首字符出现的,以便JavaScript可以轻易区分开标识符和数字)。

    保留字

    JavaScript把一些标识符拿出来用做自己的关键字。因此,就不能再在程序中把这些关键字用做标识符了:
    在这里插入图片描述JavaScript同样保留了一些关键字,这些关键字在当前的语言版本中并没有使用,但在未来版本中可能会用到。ECMAScript5保留了这些关键字:

    class const enum export extends import super
    

    此外,下面这些关键字在普通的JavaScript代码中是合法的,但是在严格模式下是保留字:

    implements let private public yield 
    interface package protected static
    

    严格模式同样对下面的标识符的使用做了严格限制,它们并不完全是保留字,但不能用做变量名、函数名或参数名:

    arguments eval
    

    ECMAScript3将Java的所有关键字都列为自己的保留字,尽管这些保留字在ECMAScript5中放宽了限制,但如果你希望代码能在基于ECMAScript 3实现的解释器上运行的话,应当避免使用这些关键字作为标识符:
    在这里插入图片描述
    JavaScript预定义了很多全局变量和函数,应当避免把它们的名字用做变量名和函数名:

    arguments	encodeURL	Infinity
    Number		RrgExp		Array
    encodeURIComponent	isFinite
    Object		String		Boolean
    Error		isNaN		parseFloat
    SyntaxEttor	Date		eval
    JSON		parseInt	TypeError
    decodeURI	EvalError	Math
    RangeError	undefined	decodeURIComponent
    Function	NaN			ReferenceError
    URIError		
    

    可选的分号

    在JavaScript中,如果语句各自独占一行,通常可以省略语句之间的分号(程序结尾或右花括号“}”之前的分号也可以省略)。

    因为两条语句用两行书写,第一个分号是可以省略掉的:

    a=3;
    b=4;
    

    如果按照如下格式书写,第一个分号则不能省略掉:

    a=3;b=4;
    

    JavaScript并不是在所有换行处都填补分号:只有在缺少了分号就无法正确解析代码的时候,JavaScript才会填补分号。换句话讲(类似下面代码中的两处异常),如果当前语句和随后的非空格字符不能当成一个整体来解析的话,JavaScript就在当前语句行结束处填补分号。
    如果一条语句以“(”、“[”、“/”、“+”或“-”开始,那么它极有可能和前一条语句合在一起解析。以“/”、“+”和“-”开始的语句并不常见,而以“(”和“[”开始的语句则非常常见,至少在一些JavaScript编码风格中是很普遍的。

    两个例外

    第一个例外是在涉及return、break和continue语句。如果这三个关键字后紧跟着换行,JavaScript则会在换行处填补分号。

    return
    true;
    JavaScript会解析为:
    return; true;
    

    在return、break和continue和随后的表达式之间不能有换行。如果添加了换行,程序则只有在极特殊的情况下才会报错,而且程序的调试非常不方便。

    第二个例外是在涉及“++”和“–”运算符。这些运算符可以作为表达式的前缀,也可以当做表达式的后缀。如果将其用做后缀表达式,它和表达式应当在同一行。否则,行尾将填补分号,同时“++”或“–”将会作为下一行代码的前缀操作符并与之一起解析

    x
    ++
    y
    JavaScript会解析为:
    x;++y 而不是 x++;y
    

    参考书籍:JavaScript权威指南

    cs
    下一篇:没有了