运算符的基础知识

运算符

算术运算符

在运算的时候,需要前后空格隔开, +:有字符串的参与,就会变成拼接 -:尽力去把俩侧的数据变成数值, * , / %:模,取余,大模小,取余,小模大,取小, **

 let num = 1 + 2;
      let num1 = "1" + 2
      console.log(num);//3
    console.log(num1);//12

    // 100 设置到style里的width top left "100px"
    let num3 = 100 + "px"
    console.log(num3);

    let a;
    let num3 = "123" - a
    console.log(num3); //NaN

    let num3 = 100 / 0
    console.log(num3); //Infinity

    let num = 0 / 0
    console.log(num);//NaN

    let num = 6 % 5
    console.log(num); //1

    let num3 = 4 % 9
    console.log(num3); //4

    let num4 = 3 ** 3
    console.log(num4);//27

赋值运算符

 	 let obj = {
             name:'雀雀',
             age:3
         	}

       	 let a = obj.age 

         obj.age = 108

         console.log(a);//3


        let obj = {
            name:'雀雀',
            age:[1,2]
        }

        let a = obj.age 
        
        obj.age[0] = 2

        console.log(a[0]);//2

前置++和后置++的区别

前置和后置在不赋值的时候,结果是一样的,
在有赋值的时候:前置:先运算后赋值,后置:先赋值,在运算

 let num = 1
        // num = num + 1
        num += 5
        console.log(num); //2

        // 没有赋值行为
        let num = 9
        ++num
        console.log(num); //10

        // 有赋值行为
        let x = 9
        let num1 = ++x  //前置需要先运算,在赋值
        console.log(num1);//10

        let y = 9
        let num2 = y++ //后置需要先赋值,后运算
        console.log(num2);//9

比较运算符

一般会出现在判断条件的时候,通过比较返回一个布尔值,满足条件则为true,不满足条件则为false

=
<
<=
== 判断是不是相等 不看数据类型 相等true 不相等false
!=
上面的这些比较运算符 如果一侧为数值型的话,会把另外一侧尽力转成数值去进行大小的比较
=== 全等于 严格比较 要求类型一致 不会进行类型转换
!== 全不等于 严格比较

  let bool = 2 > 1
        console.log(bool); //true

        let bool = undefined === undefined
        console.log(bool); //true

        let bool = NaN === NaN 
        console.log(bool); //false

        let bool = [] === []
        console.log(bool);//false

        let arr = []	//[]1的地址
        let arr1 = arr 	//[]1的地址
        console.log(arr === arr1); //true

        let bool = {} === {}
        console.log(bool); //false

        let bool = {} == {}
        console.log(bool); //false 只要是不同的对象 怎么都不相等

逻辑运算符

&&与:遇到true就通过,遇到false就停下并返回值,(过真留假,喜欢假的)
||或: 遇到false就通过,遇到true就停下并返回值(过假留真,喜欢真货)
!非:取反 转成相反的布尔值 !!取俩次反,则变成值所对应转换的布尔值

优先级是先非在与后或


        let a = 1 && 0 
        console.log(a); //0

        let a = 1 && 2 && "123"
        console.log(a) //123;

        let zq = "" && [1] || null || function(){}
        console.log(zq); //fun
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值