JS编程建议——2:正确辨析JavaScript句法中的词、句和段

建议2:正确辨析JavaScript句法中的词、句和段
JavaScript语法包含了合法的JavaScript代码的所有规则和特征,它主要分为词法和句法。词法包括字符编码、名词规则、特殊词规则等。词法侧重语言的底层实现(如语言编码问题等),以及基本规则的定义(如标识符、关键字、注释等)。它们都不是最小的语义单位,却是构成语义单位的组成要素。例如,规范字符编码集合、命名规则、标识符、关键字、注释规则、特殊字符用法等。
句法定义了语言的逻辑和结构,包括词、句和段的语法特性,其中段体现逻辑的结构,句表达可执行的命令,词演绎逻辑的精髓。
段落使用完整的结构封装独立的逻辑。在JavaScript程序中,常用大括号来划分结构,大括号拥有封装代码和逻辑的功能,由此形成一个独立的段落结构。例如,下面这些结构都可以形成独立的段落。

  1. {
  2. // 对象
  3. }
  4. function (){
  5. // 函数
  6. }
  7. if (){
  8. // 条件
  9. }
  10. for (){
  11. // 循环
  12. }
    段落结构包含的内容可以是一条或多条语句。可以在段落起始标记({)前面添加修饰词,如域谓词(with、catch)、逻辑谓词(if、while、for)等。

语句是由多个词构成的完整逻辑。在JavaScript中,常用分号(;)来划分语句,有时也可以省略分号,默认使用换行符表示完整的语句。
一条语句可以包含一个或多个词。例如,在下面两条语句中,第一条语句只有一个词,这是一个指令词,该指令只能位于循环体或switch结构体内。第二条语句包含3个词,alert表示函数名(即变量),小括号表示运算符,而“"提示信息"”表示字符串直接量。

  1. break;
  2. alert("提示信息");
    一条语句也可以包含一个或多个段落。例如,在下面这条语句中,直接把一个函数当做一个变量进行调用。
  3. (function(i){
  4. alert(i);
  5. })("提示信息");
    还可以把函数包含在一个闭包中形成多个结构嵌套,这个嵌套结构体就构成了一个复杂的语句,例如:
  6. (function(i){
  7. return function(){
  8. alert(i);
  9. };
  10. })("提示信息")();
    语句一般至少包含一个词或段落,但是语句也可以什么都不包含,仅由一个分号进行标识,这样的句子称为空语句。空语句常用做占位符。例如,在下面这个循环体内就包含了一个空语句。
  11. for(var i; i<100;i++){
  12. ;
  13. }
    词语是JavaScript句法结构中的最小语义单位,包括指令(或称语句)、变量、直接量(或常量)、运算符等。在JavaScript中,词语之间必须使用分隔符进行分隔,否则JavaScript就会错误解析。下面的代码块是一个简单的求两个数平均值的方法。
  14. var a = 34;
  15. var b = 56;
  16. function aver(c,d){
  17. return (c+d)/2;
  18. }
  19. alert(aver(a,b));
    其中var、function、return是指令,这些指令也是JavaScript默认的关键字;a、b、c、d、aver、alert为变量;34、56是数值直接量;=、(、)、{、}、/、+、,是运算符。
时间: 2024-07-30 02:25:45

JS编程建议——2:正确辨析JavaScript句法中的词、句和段的相关文章

JS编程建议——4:注意JavaScript数据类型的特殊性(1)

建议4:注意JavaScript数据类型的特殊性(1)1.防止浮点数溢出二进制的浮点数不能正确地处理十进制的小数,因此0.1+0.2不等于0.3. num = 0.1+0.2; //0.30000000000000004 这是JavaScript中最经常报告的Bug,并且这是遵循二进制浮点数算术标准(IEEE 754)而导致的结果.这个标准适合很多应用,但它违背了数字基本常识.幸运的是,浮点数中的整数运算是精确的,所以小数表现出来的问题可以通过指定精度来避免.例如,针对上面的相加可以这样进行处理

JS编程建议——5:防止JavaScript自动插入分号

建议5:防止JavaScript自动插入分号JavaScript语言有一个机制:在解析时,能够在一句话后面自动插入一个分号,用来修改语句末尾遗漏的分号分隔符.然而,由于这个自动插入的分号与JavaScript语言的另一个机制发生了冲突,即所有空格符都被忽略,因此程序可以利用空格格式化代码.这两种机制的冲突,很容易掩盖更为严重的解析错误.有时会不合时宜地插入分号.例如,在return语句中自动插入分号将会导致这样的后果:如果return语句要返回一个值,这个值的表达式的开始部分必须和return在

JS编程建议——4:注意JavaScript数据类型的特殊性(3)

建议4:注意JavaScript数据类型的特殊性(3)其中,object表示对象的通用类型,class表示对象的内部类型,内部类型的名称与该对象的构造函数名对应.例如,Array对象的class为"Array",Function对象的class为"Function",Date对象的class为"Date",内部Math对象的class为"Math",所有Error对象(包括各种Error子类的实例)的class为"E

JS编程建议——6:正确处理JavaScript特殊值(2)

建议6:正确处理JavaScript特殊值(2)与null不同,undefined不是JavaScript的保留字,在ECMAScript v3标准中才定义undefined为全局变量,初始值为undefined.因此,在使用undefined值时就存在一个兼容问题(早期浏览器可能不支持undefined).除了直接赋值和使用typeof运算符外,其他任何运算符对undefined的操作都会引发异常.不过,可以声明undefined变量,然后查看它的值,如果它的值为undefined,则说明浏览

JS编程建议——6:正确处理JavaScript特殊值(1)

建议6:正确处理JavaScript特殊值(1)1.正确使用NaN和InfinityNaN是IEEE 754中定义的一个特殊的数量值.它不表示一个数字,尽管下面的表达式返回的是true. typeof NaN === 'number' // true 该值可能会在试图将非数字形式的字符串转换为数字时产生,例如: '0' // 0 'oops' // NaN 如果NaN是数学运算中的一个运算数,那么它与其他运算数的运算结果就会是NaN.如果有一个表达式产生出NaN的结果,那么至少其中一个运算数是N

JS编程建议——8:谨慎使用运算符(1)

建议8:谨慎使用运算符(1)1.用===,而不用==JavaScript有两组相等运算符:===和!==.==和!=.===和!==这一组运算符会按照期望的方式工作.如果两个运算数类型一致且拥有相同的值,那么===返回true,而!==返回false.==和!=只有在两个运算数类型一致时才会做出正确的判断,如果两个运算数是不同的类型,会试图强制转换运算数的类型.转换的规则复杂且难以记忆,具体规则如下: '' == '0' // false 0 == '' // true 0 == '0' //

JS编程建议——12:避免使用with

建议12:避免使用withwith语句的语法如下: with ( Expression ) Statement with会把由Expression计算出来的对象添加到当前执行上下文的作用域链的前面,然后使用这个扩大的作用域链来执行语句Statement,最后恢复作用域链.不管其中的语句是否正常退出,作用域链都会被恢复. 由于with会把额外的对象添加到作用域链的前面,因此使用with可能会影响性能,并造成难以发现的错误.由于额外的对象在作用域链的前面,当执行到with语句,需要对标识符求值时,会

JS编程建议——8:谨慎使用运算符(2)

建议8:谨慎使用运算符(2)++和--运算符只能够作用于变量.数组元素或对象属性.下面的用法是错误的. 4++; 正确的用法如下: var n = 4; n++; ++和--运算符的位置不同所得运算结果也不同.例如,下面的递增运算符是先执行赋值运算,然后再执行递加运算. var n = 4; n++; // 4 而下面的递增运算符是先执行递加运算,再进行赋值运算. var n = 4; ++n; 3.小心逗号运算符 逗号在JavaScript语言中表示连续运算,并返回最后运算的结果.例如,在下面

JS编程建议——1:警惕Unicode乱码

建议1:警惕Unicode乱码ECMA标准规定JavaScript语言基于Unicode标准进行开发,JavaScript内核完全采用UCS字符集进行编写,因此在JavaScript代码中每个字符都使用两个字节来表示,这意味着可以使用中文来命名变量或函数名.虽然ECMAScript v3标准允许Unicode字符出现在JavaScript程序的任何地方,但是在v1和v2中,ECMA标准只允许Unicode字符出现在注释或引号包含的字符串直接量中,在其他地方必须使用ASCII字符集,在ECMASc