js 表达式与语句

表达式与语句

1.例子:
    1. function (){}      //Uncaught SyntaxError: Unexpected token (
    2. (function(){})     //ƒ (){}
    3. function f(x){return x+1}()    //Uncaught SyntaxError: Unexpected token )
    4. function f(x){return x+1}(1)   // 1
    5. 说明:
       1. 第一行代码:因为JavaScript 将 function 关键字当作一个 函数声明语句 的开始,而函数声明语句 function 关键字后面应该是 函数名,这里后面跟圆括号,当然会报错。
       2. 第二行代码:给它加上一对圆括号,解析器会把()里的当做表达式去解析,在这里就会当做匿名函数表达式解析,所以不会报错。
       3. 第三行代码:在一条语句后面加上()会被当做分组操作符,分组操作符里必须要有表达式,所以这里报错;
       4. 第四行代码:在一条函数声明语句后面加上(1),仅仅是相当于在声明语句之后又跟了一条毫无关系的表达式,等价于下面代码:
          1. function f(x){ return x + 1 }
          2. (1)//1
2. 表达式:一个表达式返回一个值;js 中的一个短语,js 解释器会将其计算出一个结果。程序中的常量是最简单的一类表达式。变量名也是一种简单的表达式,它的值就是赋值给变量的值。复杂表达式是由简单表达式组成的。
   1. 在 javascript 中所有表达式都有返回值(如果没有返回值就是undefined),这个返回值就可以继续作为表达式的一部分。大多数语言表达式的定义为(忽略优先级)
      1. 字面量(例如1,2,3,“abc”);
      2. 运算符 表达式(一元,比如!true);
      3. 表达式 运算符 表达式(二元,比如1+2);
      4. 表达式1 ? 表达式2 : 表达式3(三元,a>b?a:b);
      5. 左括号 表达式 右括号(括号 (1+2));
      6. 表达式(参数列表)(函数调用)等。
      7. 函数表达式:(function () { return "abc" }())      //abc
   2. 用“,”串联,但是返回的是后面的值
      1. var a="1","2"        //"2"
      2. a      //"1"
3. 语句:js 整句或命令。js 语句是以分号结束;表达式计算出一个值,但语句用来自行以使某件事发生。“使某件事发生”的一个方法是计算带有副作用的表达式。
   1. 语句有:
      1. 函数声明
      2. 变量声明(var a=10是声明和赋值)
      3. for语句、if语句、while语句、switch语句、return、try catch
      4. 但是 javascript 还有一种函数表达式,它的形式跟函数声明一模一样。如果写 function fn() { return 0;} 是函数声明而写var a = function fn(){ return 0;} 等号后面的就是函数表达式。
   2. 用“;”来分割语句
   3. eval是个语句
      1. eval('{foo:222}')       //222
      2. eval('({foo:222})')     //{foo:222}
posted @ 2019-05-09 11:04  汪汪汪~~  阅读(427)  评论(0编辑  收藏  举报