表达式
js短语,解释器可以执行它并生成一个值
范例
1.7
"1.7"
var a = 2
var b = "2"
(1.7+a)*"1.7"-b
运算符
- 算术运算
- 关系运算
判断左右两边对象或者值是否类型相同且值相等
===
function totalEqual(a,b){
if a、b类型相同{
if a、b应用类型{
if a、b是同个应用
return true;
else
return false;
}else{//值类型
if a、b值相同
return true;
else
return false;
}
}else{ //类型不同
return false;
}
}
var a = "123";
var b = "123";
var c = "4";
var oa = new String("123");
var ob = new String("123");
var oc = oa;
a === oa // false 类型不同
oa === oc //true 类型和应用都是一样
a === b // true
oa === ob // 类型相同,引用不同
== //判断操作符两边对象或者值是否相等
null underfined
// 进行==运算时不进行隐式类型转换
- 逻辑运算
!x 表示x表达式运行结果转换成布尔值
x&&y 如果x表达式运行结果转换成布尔值是false,则不运行表达式y而直接返回x表达式的运行结果
var a = 0&&(function(){
return 1+1
})();
// 运行结果:0
var b = 1-0&&(function(){
return 1+1
})();
// 运行结果:2
||
x || y 如果x表达式结果转换为布尔值为true,则不运行表达式y而直接返回x表达式结果
var a = 0 || (function(){
return 1+1
})();
// 运行结果:2
var b = 1-0||(function(){
return 1+1
})();
//运行结果:1
- 位运算
- 赋值运算
- 条件运算
- 逗号运算
- 对象运算符
运算符优先级
-
-
-
- ? % 优先级高于&&
-
-
-
- / % 优先级高于 + -
- && 优先级高于?:
1-0&&2 //2
1-0*3&&2 // 2
true?1:0&&2 // 1
(true?1:0)&&2 //2