1.操作符
1.1. 算数运算符
-
正常的数据运算
var num1 = 8; var num2 = 4; console.log(num1 + num2); //12 console.log(num1 - num2); //4 console.log(num1 / num2); //2 console.log(num1 * num2); //32 console.log(num1 % num2); //0
-
进行数据运算时,除+外,其他运算符可以自动将字符串数字隐形转成数字
var num1 = '8'; var num2 = '4'; console.log(num1 - num2); //4 console.log(num1 / num2); //2 console.log(num1 * num2); //32 console.log(num1 % num2); //0
1.2. 一元运算符
JavaScript中有8种常用的一元运算符
-
delete运算符
删除数组或对象中特定索引的值
var obj = { name:'zhangsan', age: 17 }; delete obj.name; console.log(obj); // {age: 17}
-
typeof运算符
操作数放到typeof的后面,会返回当前操作数的类型,对于数值类型可以准确返回, 对于引用类型,Function会返回'function',其他都只会返回'object'
var obj = { name:'zhangsan', age: 17 }; var arr = [1,2,3,4,5]; console.log(typeof obj, typeof arr); //object object
1.3. 赋值运算符
= 赋值运算符 向变量赋值
var x = 7;
+= 赋值运算符 向变量添加值
var x = 7;
x += 8; //x=x+8
-= 赋值运算符 从变量中减去一个值
var x = 7;
x -= 8; //x=x-8
*= 赋值运算符 相乘变量
/= 赋值运算符 对变量相除
%= 赋值运算符 把余数赋值给变量
1.4. 比较运算符
比较运算符在逻辑语句中使用,以判定变量或值是否相等。通常用于条件判断语句中。
比较运算符的优先级低于算术运算符,高于赋值运算符 运算结果一般都为boolean
-
==
等同 的意思, 两边值类型不同的时候,要先进行类型转换为同一类型后,再比较值是否相等。// 常用于相同类型的值的比较 console.log(123 == 345); //false console.log('123' == '345'); //false // 如果两个值类型不同,也有可能相等,需根据以下规则进行类型转换在比较 // 如果一个是null,一个是undefined,那么相等 console.log(null == undefined); //true // 如果一个是字符串,一个是数值,把字符串转换成数值之后再进行比较 console.log(123 == '123'); //true //如果是整数类型和boolean类型的数值进行比较,1和true使用==比较结果为true,0和false使用== //比较结果也为true,其它都为false;可以理解记忆为使用==比较整数时将1等同true,将0等同false。 console.log(1 == true); //true console.log(0 == false); //true
-
===
恒等,不做类型转换,类型不同的结果一定不等。// 如果类型不同,就一定不相等 console.log(123 === '123'); //false // 如果两个都是数值,并且是同一个值,那么相等;如果其中至少一个是NaN,那么不相等。 //(判断一个值是否是NaN,只能使用isNaN() 来判断) console.log(123 === 123); //true console.log(123 === 10 / 'a'); //false // 如果两个都是字符串,每个位置的字符都一样,那么相等,否则不相等。 console.log('hello' === 'hello'); //true // 如果两个值都是true,或是false,那么相等 console.log(true === true); //true console.log(1 === true); //false // 如果两个值都是null,或是undefined,那么相等 console.log(null === null); //true console.log(null === undefined); //false
-
双等和三等的区别
双等表示只要值相等即可为真,而三等则要求不仅值相等,而且也要求类型相同。
-
‘>‘和’<’ ‘>=‘和’<=’
var a = 10; var b = 20; console.log(a > b); //false console.log(a < b); //true console