js的运算符
- 当对非Number类型的值进行运算时,会将这些值转换为Number然后再运算
- 任何值和NaN运算都是NaN
1.+:
任何值和NaN运算都是NaN
例:
result = 2 + NaN //NaN
多个字符串和数值相加按顺序进行运算
例:
result =1+2+“3” //33
result =“1”+2+3 //123
2.-:
-可以对两个值进行减法运算,并返回:
当对非Number类型的值进行运算时,会将这些值转换为Number然后再运算
例:
result = 100 - true //99
result = 100 - “1” //99
js的一元运算符
- 一元运算符,只需要一个操作数
b = 1 +“2” +3 //123
//可以对一个其他的数据类型使用+,来将其转换为number
b = 1 + +“2” +3 //6
js的自增和自减
-
let a = 1
a++ //2
++a //2
a = a++ //1
a=++a //2 -
let result = d++ + ++d + d //64
即:result = 20 + 22 + 22 -
注:
a是变量
a++或者++a都是表达式,不论在哪,都会进行运算let c = 10 // 使c自增1 //第一次c++在10的基础上自增 document.write(c++) //10 document.write("<br />") //第二次c++在11的基础上自增 c++ //第三次,c++在12的基础上自增 document.write(c++) //12 document.write("<br />")
js的逻辑运算
/*
*JS中为我们提供了三种逻辑运算符
* ! 非
* - !可以用来对一个值进行非运算
* - 所谓非运算就是值对一个布尔值进行取反操作,
* true变false,false变true
* -如果对一个值进行两次取反,它不会变化
* -如果对非布尔值进行运算,则会将其转换为布尔值,然后再取反
* 所以我们可以利用这一特点,将其他数据类型转换为布尔值
* 可以为一个任意数据类型取两次反,来将其转换为布尔值
* 原理和Boolean()函数一样
*
*
* && 与
* - &&可以对符号两侧的值进行运算并返回结果
* - 运算规则
* -两个值中只要有一个值为false就返回false
* 只有两个值都为true时,才会返回true
* -JS中的“与”属于短路的与
* 如果第一个值为false,则不会看第二个值
*
* || 或
* - ||可以对符号两侧的值进行或运算并返回结果
* - 运算规则:
* - 两个值中只要有一个true,就返回true
* 如果两个值都为false,才返回false
* -**JS中的“与”属于短路的或
* 如果第一个值为true,则不会看第二个值
***
*
*/
-
与运算:
* - 如果第一个值为true,则必然返回第二个值
* - 如果第一个值为false,则必然返回第一个值
例:// true&&true // 与运算,如果两个值都为true,则返回后边的 let result = 1 && 2 //2 //与运算:如果两个值中有false,则返回靠前的false // false && true // result = 0 && 2 //0 //true && false result = 2 && 0 //0 //false && false result = NaN && 0 // NaN result = 0 && NaN //0
-
或运算:
* - 如果第一个值为true,则直接返回第一个值
* - 如果第一个值为false,则必然返回第二个值例: //true||true // 如果第一个值为true,则直接返回第一个值 result = 2||1 //2 result = 2||NaN //2 result = 2||0 //2 result = -1||"你好" //-1 // 如果第一个值为false,则直接返回第二个值 // result = NaN||1 //1 // result = NaN||0 //0 // result = ""||"HELLO" //HELLO