一、运算符
问题:什么才能进行运算 是数字吧 所以js中运算的时候
就是先转成数字在进行运算 +加号特殊
- 加 +加号特殊*
- 减
- 乘
/ 除
%取模
// 运算符
++ 加加-
- 减减
var a = 2;
var b = 3
var c = ‘2’
console.log(a + b) //5 Number类型
console.log(a + c) //25 string类型
字符串与Number进行加运算 会追加成字符串(拼接)
这个比较常见 以后会在项目中拼接一些地址等等
console.log(true + false) //1
true 隐式的转成了数字为1 false隐式的转换成了数字0
- 减减
-
console.log(undefined + 1) //NaN
console.log(true + 'false') //truefalse
Number(undefined) //NaN
console.log(undefined + 1) //1
Number(null) //0
console.log(a + '+' + b + '的和是' + a + b)
//2+3的和是23 为什么会是23呢
这里有字符串吧 有数字吧 有字符串和数字就是 字符串拼接
console.log(a + ‘+’ + b + ‘的和是’ +( a + b)) //2+3的和是5
//()先让ab相加一次 数学时就是有小括号先算小括号里面的所以是吧!
2)- * / 就正常了, 运算时先转Number 在进行运算
var a = 10,
b = '3'
console.log(a - b) //6
console.log(a * b) //30
console.log(a / b) //3.3333333333333335 小数点后16位
console.log(parseFloat(10 / 3)) //3.3333333333333335
var a = 10;
// ++a;
// console.log(a)//11
// a++
// console.log(a)//11
// 区别:加加在前 先自增 再进行表达式的计算
// 加加在后 先进行表达式的计算 再自增
// 例如:
var a = 3,
b = 4;
num1 = ++a + b //8
// 加载在前 先自增 a++ //4 在表达式运算 +b //8
//这个时候是不是a变成了4 在+b//8
num2 = a + b //8
console.log(num1)//8
console.log(num2)//8
// var a = 3,
// b = 4;
// num1 = a++ + b //7
//为什么是7呢 ++在后 先运算 是7吧 再自增a++ //4
//还有用到a吗 没有 那就完事了
var a = 10;
// ++a;
// console.log(a)//11
// a++
// console.log(a)//11
// 区别:加加在前 先自增 再进行表达式的计算
// 加加在后 先进行表达式的计算 再自增
// 例如:
var a = 3,
b = 4;
num1 = a++ + b //7
// 加加在前 先表达式运算 a+b //7 运算完事了 再自增a a++//4
//这个时候是不是a变成了4 在+b//8
num2 = a + b //8
console.log(num1) //7
console.log(num2) //8
同样的道理 :–也是一样 这里就不在说了
看一看超简单的取模吧
取模就是数学中的求余
// 取模
var d = 10,
f = 3
console.log(d % f) //1 10/3 余1
console.log(f % d) //3 3/10 余3
为什么是三呢 3/10 能除尽吗 不能 所以就是三
是不是有点懵懂 有不理解的可以 给我留言
二、赋值运算符
//赋值运算符 = 、 == 、 -= 、 /= 、*= 、%=
var a=10;
a+=1 //左右两边加载付给左边
三、比较运算符
比较运算符 返回的是真和假
、< 、>= 、>=
console.log(5>2) //true
== 、 != 这个是值的比较
console.log(undefinednull) //true 死记硬背
console.log(false‘ ’) //true 死记硬背
console.log(NaN==NaN) //false
死记硬背
console.log(Number(undefined)) //NaN
console.log(Number(null)) //0
console.log(Number(’’)) //0
=、! 这个是值和类型都要相等
var a = 10,
b = ‘10’
console.log(a === b) //false
四、逻辑运算符
与 或 非
&& || !
&&如果两边的都是真才为真
console.log(10 > 2 && 8 >= 8) //true
console.log(10 >20&& 8 >= 8) //false
console.log(10 >2&& 8 >=9 //false
特殊的(前面为真,后面的不为假
且不是比较 就直接输出
)
到右边去—》取决于第一个数的真假
//1、求真假,目的向后走不走
//2、返回值 (返回的是比较以后的结果)
console.log(10 > 2 && 8 >= 8) //true
console.log(10 > 2 && 9) //9
console.log(10 && 9 > 2) //true
console.log(10 && 9 ) //9
console.log(10 && 0 ) //0
console.log(0 &&10 ) //0 第一部分0 是真还是假 假直接输出0
|| 如果有一边为真则为真
找真假 有一个真的就真
// 逻辑运算符 || 或
console.log(10 > 2 || 8 >= 8) //true
console.log(10 > 2 || 9) //true
console.log(10 || 9 > 2) //10
console.log(10 || 9) //10
console.log(10 || 0) //10
console.log(0 || 10) //10
console.log(4 || ‘abc’) //4
console.log(‘ ’ || ‘abc’) //abc
console.log(‘ ’ || null)//null 两个都为假 且没有比较 就返回null
// != 只返回真和假
console.log(!10) // false
console.log(!!10) // true
五、三目运算符
条件?语句1:语句2
如果条件为真则执行语句 1 否则执行语句 2
var num = 50
var n=num >60? ‘及格’:‘ 不及格 ’