zoukankan      html  css  js  c++  java
  • 【《你不知道的JS(中卷①)》】五、语法

    五、语法:

    ​ 语法(grammar)与词法(syntax)不同。后者强调语言的 运算符、关键字等。而语法定义了此法规则是如何构成可运行的程序代码的。

    一)、语句和表达式:

    语句(statement)与表达式(expression),举例说明:

    var a = 3 * 6;
    

    a = 3 * 6是一个赋值表达式,加上var,就表明是一个声明同时赋值的语句,即语句由一个或多个表达式组成

    1、语句的结果值:

    语句都有一个结果值,如果使用控制台,输入语句,默认情况下控制台会显式所执行的最后一条语句的结果值。

    或者使用 eval函数(很多语言都有这个函数,用以将字符串视作语句执行,并返回语句结果值)。

    var a, b;
    a = if (true) {
        b = 4 + 38;
    };
    a;  // 42 
    

    2、上下文规则:

    1)、大括号:

    JS中有两种情况会用到{}:

    1. 对象常量

      var a = {
      	foo: bar()
      };
      
    2. 标签

    2)、对象解构:

    ES6中新加了解构赋值:

    function getData() {
        // ..
        return {
            a: 42,
            b: "foo"
        };
    }
    var {a, b} = getData();
    console.log(a, b);  // 42 "foo"
    

    3)、else if:

    JS中可以使用else if的原因是,if和else只包含单条语句的时候可以省略代码的{}。

    二)、运算符优先级:

    ​ 利用运算符优先级可以实现逻辑短路,利用逻辑短路可以实现更简洁的类似if else的逻辑表达。

    三)、自动分号:

    ​ 虽然JS有时会为代码行补上缺失的分号,即自动分号插入(Automatic Semicolon Insertion,ASI),但是我们不应该依赖他。

    四)、错误:

    ​ JS拥有各种类型的运行时错误(TypeError、ReferenceError、SyntaxError等),同时也定义了一些编译时错误(早期错误)。

    五)、函数参数:

    ​ 不要再使用arguments数组。

    六)、try..finally:

    finally中的代码总是会在try之后执行,如果有catch的话则在catch之后执行。也可以将finally中的代码看作一个回调函数,即无论出现什么情况最后一定会被调用。

    ​ 如果有finally语句,try中的continue、break、return语句最后还是要执行finally语句,如果finally报错(throw)或return、break,try中的结果会被丢弃。

    七)、switch:

    switch (a) {
        case 2:
            // ..
            break;
        case 42:
            // ..
            break;
        default:
            // ..
    }
    

    a会与case表达式逐一比较(严格相等,===),如果匹配就执行该case中的代码。

  • 相关阅读:
    CodeForces 681D Gifts by the List (树上DFS)
    UVa 12342 Tax Calculator (水题,纳税)
    CodeForces 681C Heap Operations (模拟题,优先队列)
    CodeForces 682C Alyona and the Tree (树上DFS)
    CodeForces 682B Alyona and Mex (题意水题)
    CodeForces 682A Alyona and Numbers (水题,数学)
    Virtualizing memory type
    页面跳转
    PHP Misc. 函数
    PHP 5 Math 函数
  • 原文地址:https://www.cnblogs.com/enmac/p/13276810.html
Copyright © 2011-2022 走看看