一、表达式:
表达式是 ECMAScript 中的一个"短语",解释器会通过计算把它转换成一个值。最简单的表达式是字面量或者变量名。例如:
5.96 //数值字面量 ‘Lee‘ //字符串字面量 true //布尔值字面量 null //空值字面量 /Java/ //正则表达式字面量 {x:1, y:2} //对象字面量、对象表达式 [1,2,3] //数组字面量、数组表达式 function(n) {return x+y;} //函数字面量、函数表达式 box //变量
当然,还可以通过合并简单的表达式来创建复杂的表达式。比如:
box + 5.96 //加法运算的表达式 typeof(box) //查看数据类型的表达式 box > 8 //逻辑运算表达式
二、一元运算符:
只能操作一个值的运算符叫做一元运算符。
1、递增++和递减--
前置和后置的区别:
在没有赋值操作,前置和后置是一样的。
赋值操作时,如果递增或递减运算符前置,那么前置的运算符会先累加或累减再赋值,如果是后置运算符则先赋值再累加或累减。
var box = 100; ++box; //前置递增,把 box 累加一个 1,相当于 box = box+1 --box; //前置递减,把 box 累减一个 1,相当于 box = box-1 box++; //后置递增,同上 box--; //后置递减,同上
var box = 100; var age = ++box; //age 值为 101,box先自增为101然后赋值给age var height = box++; //height 值为 100 box先赋值给height 然后才自增
var box = 100; var height = --box alert(height);//结果是99,先自减再赋值给height var box = 100; var age = box--; alert(age);//结果是100,box先复制给age,再自减
2、其他类型应用一元运算符的规则
var box = ‘89‘; box++; //90,数值字符串自动转换成数值 var box = ‘ab‘; box++; //NaN,字符串包含非数值转成 NaN var box = false; ++box; //1,false 转成数值是 0,累加就是 1 var box = 2.3; ++box; //3.3,直接加 1 var box = { //2,不设置 toString 或 valueOf 即为 NaN toString : function() { return 1; } }; box++;
var box = {}; alert(box++);//NaN
3、加和减法运算符:
加运算规则如下:
var box = 100; +box; //100,对于数值,不会产生任何影响 var box = ‘89‘; +box; //89,数值字符串转换成数值 var box = ‘ab‘; +box; //NaN,字符串包含非数值转成 NaN var box = false; +box; //0,布尔值转换成相应数值 var box = 2.3; +box; //2.3,没有变化 var box = { //1,不设置 toString 或 valueOf 即为 NaN toString : function() { return 1; } }; +box;
减运算规则如下:
var box = 100; -box; //-100,对于数值,直接变负 var box = ‘89‘; -box; //-89,数值字符串转换成数值 var box = ‘ab‘; -box; //NaN,字符串包含非数值转成 NaN var box = false; -box; //0,布尔值转换成相应数值 var box = 2.3; -box; //-2.3,没有变化 var box = { //-1,不设置 toString 或 valueOf 即为 NaN toString : function() { return 1; } }; -box;
加法和减法运算符一般用于算术运算,也是向上面进行类型转换。
时间: 2024-11-25 17:33:55