(一)类型转换
1、隐式转换
var num = 100;
if (num) {
document.write('true'); // 结果为true执行这句
}else {
document.write('false'); // 结果为false执行这句
}
- num 被隐式转换为true
2、显式转换
-
其他数据类型转(布尔类型)
1、数字:0和NaN为false,其他为true
2、字符串:空字符串为false,为true(多个空格时为空白字符,为true)
3、undefined & null:都为false
4、对象 & 数组:对象(包括空对象)和数组(空数组)都为true- 转换方法:1、Boolean(变量) 2、(!!变量)
-
其他数据类型转(数字类型)
1、字符串:文字和字母都为NaN, 数字就直接转成数字,空字符串为0
2、undefined:为NaN
3、null:为0
4、Boolean:true为1,false为0 -
其他数据类型转(字符串)
方法:
1、num + ''
2、String(num)
3、num.toString(); // undefined和null不能使用,会报错
(二)算数运算
-
加 + 、减 - 、乘 * 、除 / 、 取余 %
-
相加时
1、数字相加为数字
2、有一个变量为字符串时,加号就变成连接符
3、NaN & undefined 与数字相加时,结果为NaN
4、null与数字相加时,null转换成数字0才相加 -
相减时
先转换为数字类型再相减(除了字符串变成数字相减外,其他与上同理)
(三)一元运算
* i++:先运算,再自加1
* ++i:先自加1,再运算
(四)逻辑运算
-
逻辑与(&&)
- 第一个变量为true时,取第二个变量的值,否则取第一个变量的值
- 总结:全为true时,结果为true
-
逻辑或(||)
- 第一个位true取第一个变量,否则取第二个
- 总结:只要有一个为true,结果为true
-
逻辑非(!)
- 取反
(五)关系运算
- 小于(<)、大于(>)、小于等于(<=)、大于等于(>=)、相等(==)、不等(!=)、全等(恒等)(===)、不全等(不恒等)(!==)
- 全等(恒等)(===)、不全等(不恒等)(!==):不发生类型转换
- null、undefined特殊,与其他类型相比较时,结果都为false,除了自身比较是true
- 且null == undefined
null == undefined; //结果为true
null == false; //结果为false
null == 0; // 结果为false
undefined == false; //结果为false
undefined == 0; // 结果为false
(六)运算符优先级
- ()==> 自加和自减 ==> 算数运算符 ==> 关系运算符 ==> 逻辑运算符 ==> 赋值运算符
- 同级运算,从左到右执行
网友评论