1. 一元操作符
++在前,是变量的值(++)在语句被求值以前改变。
var age = 29;
var anotherAge = --age + 2;
age---27 anotherAge---29
++在后,是包含该操作符的语句被求值后再执行++。
var num1 = 2;
var num2 = 20;
var num3 = num1-- + num2; //22
num1 = 1;
++ 和 -- 操作符对任何值都适用,即不仅适用于字符串、布尔值、浮点数值和对象。规则如下:
① 对于包含有效数字字符的字符串时,先将其转换为数字值,再执行。字符串变量变成数值变量。
② 对于不包含有效数字字符的字符串时,变量值变为NaN,字符串变量变为数值变量。
③ false时,先将变量变为0在执行,布尔值变为数值变量
④ 浮点数时,直接执行
⑤ 对象时,先调用对象的valueOf() 方法,得到一个可供操作的值,再执行。如果值为NaN,则调用toString() 方法后,在执行。对象变 量变成数值变量
2. 逗号操作符
可以用于声明多个变量:var num1 = 1, num2 = 2, bum3 = 3;
可以用于赋值,返回表达式中的最后一项:var num = (5,1,4,8,0); //num = 0
3. for-in 语句
可以用来枚举对象的属性,如:
for (var propName in Window) {
document.write(propName);
}
该循环用来显示Window对象的所有属性,每次执行循环时,都会将window对象中存在的一个属性名赋值给变量propName。一直到对象中的所有属性都被枚举一遍为止。
4. with 语句:作用是将代码的作用域设置到一个特定的对象中。在with语句中,所有定义的变量都为局部变量,如果在这个局部环境中,没有某个变量的定义,就会去特定的对象中查询同名的属性。如:
with(location) { //这里location是一个对象
var qs = search.sunstring(1); // 相当于location.search.substring(1)
var hostName = hostname; //相当于location.hostname
var url = href; //相当于location.href
}
5. 函数的参数
ECMAScript函数不介意传递进来多少个参数(即定义了一个参数,但传进来两个参数也可以),也不在乎传递进来的参数是什么数据类型。
参数存储在arguments对象内(类似于数组),arguments[0] 代表第一个参数,依次类推。
arguments.length属性可以获知有多少个参数传递给了函数。
注意:没有传递值的命名参数将自动赋值为undefined