运算符的基础知识

运算符

算术运算符

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

 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
### C++ 运算符基础知识教程 C++ 运算符是构建表达式的基本元素,熟练掌握它们对于编正确、高效的程序至关重要。以下将详细介绍C++运算符基础知识及相关内容。 #### 一、运算符概述 运算符是用来执行特定操作的符号,可以对一个或多个操作数进行操作并返回结果[^1]。根据操作数的数量,运算符可分为一元运算符和二元运算符。一元运算符作用于单个操作数,而二元运算符作用于两个操作数。 #### 二、基础运算符分类 C++中的运算符可以分为以下几类: 1. **算术运算符** 算术运算符用于执行基本的数学运算,如法、减法、乘法、除法和取模等。 ```cpp int a = 10, b = 3; int sum = a + b; // 法 int diff = a - b; // 减法 int product = a * b; // 乘法 int quotient = a / b; // 除法 int remainder = a % b; // 取模 ``` 2. **赋值运算符** 赋值运算符用于将值赋给变量。最常用的赋值运算符是`=`,此外还有复合赋值运算符,如`+=`、`-=`、`*=`、`/=`和`%=`等。 ```cpp int x = 5; x += 3; // 等价于 x = x + 3; ``` 3. **关系运算符** 关系运算符用于比较两个值之间的关系,返回布尔值`true`或`false`。 ```cpp bool isEqual = (a == b); // 判断是否相等 bool isLess = (a < b); // 判断是否小于 ``` 4. **逻辑运算符** 逻辑运算符用于组合多个条件表达式,包括`&&`(逻辑与)、`||`(逻辑或)和`!`(逻辑非)。 ```cpp bool condition = (a > 0 && b < 5); // 判断a大于0且b小于5 ``` 5. **位运算符** 位运算符直接对整数的二进制位进行操作,包括按位与(`&`)、按位或(`|`)、按位异或(`^`)、按位取反(`~`)以及移位操作(`<<`左移和`>>`右移)。 ```cpp int c = 5; // 二进制表示为 0101 int d = 3; // 二进制表示为 0011 int andResult = c & d; // 按位与,结果为 0001 即 1 int orResult = c | d; // 按位或,结果为 0111 即 7 int xorResult = c ^ d; // 按位异或,结果为 0110 即 6 int leftShift = c << 1; // 左移一位,结果为 1010 即 10 int rightShift = c >> 1; // 右移一位,结果为 0010 即 2 ``` 6. **三目运算符** 三目运算符`? :`是一种简化的if-else语句形式,用于根据条件选择不同的值。 ```cpp int max = (a > b) ? a : b; // 如果a>b则max=a,否则max=b ``` 7. **自增自减运算符** 自增(`++`)和自减(`--`)运算符用于使变量增或减少1。它们可以出现在变量之前(前缀形式)或之后(后缀形式),两者在某些情况下会有不同的行为。 ```cpp int y = 5; int z = ++y; // 前缀形式,z=6,y=6 int w = y--; // 后缀形式,w=6,y=5 ``` #### 三、运算符重载 运算符重载是C++的一项强大功能,允许用户定义自己的数据类型如何响应特定运算符。通过重载,可以使运算符适用于用户定义的类或结构体[^3]。例如,可以通过重载`+`运算符实现两个自定义对象的相操作。 ```cpp class Complex { public: double real, imag; Complex(double r = 0, double i = 0) : real(r), imag(i) {} Complex operator+(const Complex& other) const { return Complex(real + other.real, imag + other.imag); } }; Complex c1(3, 4), c2(1, 2); Complex c3 = c1 + c2; // 调用重载的+运算符 ``` #### 四、运算符优先级 了解运算符的优先级有助于正确解析复杂的表达式。C++中不同运算符具有不同的优先级,通常优先级高的运算符会先被计算[^2]。例如,在表达式`a + b * c`中,`*`的优先级高于`+`,因此会先计算`b * c`。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值