1.4、你一直记不清的运算符 和数据类型的隐式转换

一、运算符
问题:什么才能进行运算 是数字吧 所以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? ‘及格’:‘ 不及格 ’

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值