js操作符
window.onload = function(){
// 1. 递增和递减操作符
//前置型
var age = 29;
var anotherage = ++age + 2;
console.log(age); // 30 前置型:变量的值再语句被执行前改变了
console.log(anotherage); // 32
//后置型
var num1 = 2;
var num2 = 20;
var num3 = num1-- + num2;
var num4 = num1 + num2;
console.log(num3); // 22 后置型:变量的值再语句执行之后再改变
console.log(num4); // 21
// 2. 一元加减操作符
// 一元加操作符放在数值前面不会对数值产生影响,放在非数值前面,该操作符会执行number()函数对该值进行转换
// 3. Boolean操作符
// 逻辑非 !
// 逻辑与 有false返回false
/*
规则:
1.如果第一个操作数时对象,则返回第二个数
2.如果第二个数是对象,则只有在第一个操作数求值为true时返回该对象
3.两个操作数都是对象,返回第二个操作数
4.第一个操作数是null,NaN,undefined,则返回null,NaN,undefied
*/
var found = true; // 如果为false则下面所有语句都会执行
var result = (found && someUndefinedValue); // 报错
console.log(result); // 不会执行该语句
// 逻辑或 有true返回true
/*
规则:
1.如果第一个操作数是对象,则返回第一个操作数
2.如果第一个操作数的求值结果为false,则返回第二个操作数
3.如果两个草所属都是对象,则返回第一个操作数
4.如果两个操作数都是null,NaN,undefined,则返回null,NaN,undefined
*/
var myObject = preferredObject || backupObject // 利用逻辑或完成赋值操作
// 3.乘法,除法,求模,如果有操作数不是数值,则会调用number()函数转换再求值
// 4.加法如果有操作数是字符串
/*
规则:
1.如果两个操作数都死字符串,则将两个字符串拼接起来
2.如果只有一个字符串,则将另一个转换为字符串再拼接起来
*/
//5.减法如果有字符串
/*
规则:
如果有一个操作数是字符串,Boolean,null,undefined,则调用它们的number()函数转换后再求值
*/
//6.关系运算符
var result = "23" < "3"; // true
var result = "23" < 3; //false 转换为数字
var result = "a" < 3; // false a转换为nan,任何操作符与nan相比都返回false
// 相等和全等
null == undefined
}