表达式



维基百科上对表达式的定义:

是由数字、算符、数字分组符号(如括号)、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合。


我们将表达式元素简化成,运算符和值,值包括:常量、变量、表达式片段。

表达式或者表达式片段自身无需特别的语法即可转换为值,理解了这一点,就好理解表达式了。

例如,1,这是一个常量表达式,由上可知,表达式自身就是一个值。所以:1+1也是一个合法的表达式。

即:

1    +   1
值 运算符 值



函数调用也是一个表达式,所以这也是合法的表达式:
a(1) + 1

赋值运算也是表达式,所以下面同样是合法的:
(b = a(1)) + 1

这里之所以需要用()将b = a(1)括起来是因为=运算符的优先级低于+。

同样的复杂的表达式我们可以拆解,结果不变,例如:
x = 1 + 1;
等同于
a = 1;
b = 1
x = a + b;

x = A(1) + 1;
等同于
a = 1;
b = A(a);
c = 1;
x = b + c;


那么,这个东东说穿了很简单,因为在JavaScript中,函数的定义,即function( ... ){ ... }是一个表达式。这个表达式的值就是定义的函数。所以function( ... ){ ... }()也可以拆解为:

f = function( ... ){ ... };
f();

当然,你可以想到的:

(b = function(){ ... })();
也是合理的。

posted @ 2016-05-30 12:27  绒线猫  阅读(132)  评论(0)    收藏  举报