js的操作符详解(一)

1. 概念

操作符就是用来进行数据运算的符号,类似又不完全等同于数学的运算符

2. 常见的操作符都有哪些?

  • 递增递减操作符(++, -- ),

  • 加减乘除操作符 (+,-,*,/),

  • 取余操作符(%),

  • 指数操作符(**),

  • 布尔操作符(!),

  • 逻辑与 (&&)

  • 逻辑或 (||)

  • 关系操作符 (>, <,>=,<=)

  • 相等操作符(==,!=)

  • 全等操作符(===,!==)

  • 条件操作符( 表达式 ? 成立的逻辑 : 不成立的逻辑)

  • 赋值操作符(=)

  • 逗号操作符(,)

3. 接下来一一举例说明这些操作符

1. 递增递减操作符(++,--), 这个操作符可以放在变量前也可以放在变量后, 放在变量前视为语句执行时已经完成运算, 放在变量后视为语句执行后完成运算

(1) 前置递增递减

    // 前置递增
    let num = 1;
    const sum = ++num + 2; // 在执行完++num时, num已经变成了2 , 2+2=4
    console.log(num, sum); // 2, 4
    // 前置递减
    let num = 1;
    const sum = --num + 2; // 在执行完--num时, num已经变成了0 , 0+2=2
    console.log(num, sum); // 0, 2

(2) 后置递增递减

    // 后置递增
    let num = 1;
    const sum = num++ + 2; 
    // 执行到num++并不会立即改变num变量的值, 而是语句结束之后才发生改变
    // 因此sum的值是 3 
    // 执行到console.log(num, sum)时,因为const sum = num++ + 2; 已经执行完毕,所以num被修改为2
    console.log(num, sum); // 2, 3
 
    // 后置递减
    let num = 1;
    const sum = num-- + 2; 
    // 执行到num++并不会立即改变num变量的值, 而是语句结束之后才发生改变
    // 因此sum的值是 3 
    // 执行到console.log(num, sum)时,因为const sum = num-- + 2; 已经执行完毕,所以num被修改为0
    console.log(num, sum); // 0, 3

2.加减乘除操作符

不同的场景会有不同的运算规则

(1) 第一种场景 双方都是数字和数学运算一模一样

    console.log(1 + 2); // 3
    console.log(1 - 2); // -1
    console.log(1 * 2); // 2
    console.log(1 / 2); // 0.5

(2) 第二种场景 

     + 操作符运算时 一方数字一方字符串, 会将数字方转成字符串, 底层调用的是 String()

     -*/操作符运算时 一方数字一方字符串, 会将字符串方转成数字, 底层调用的是 Number()

    console.log(1 + '2'); // 调用String(1) 将1转成字符串 结果是'12'
    console.log(1 - '2'); // 调用Number('2') 将2转成数字 结果是'-1'
    console.log(1 * '2'); // 调用Number('2') 将2转成数字 结果是'2'
    console.log(1 / '2'); // 调用Number('2') 将2转成数字 结果是'0.5'

(3) 其他场景

1. 这是简单的示例 大家可以看着注释再试试其他场景, 此时不做过多介绍

    // 数字加特殊值
    console.log(1 + null);      // 1 底层会将null转成数字 Number(null) => 0
    console.log(1 + undefined); // NaN 底层会将undefined转成数字 Number(undefined) => NaN
    console.log(1 + []);        // 1   将[]转成字符串 [].toString =>'' result=>'1'
    console.log(1 + {});        // 1[object Object]   调用对象的toString =>'[object Object]' 
    console.log(1 + NaN);       // NaN和任何数字进行运算都是NaN

    
    // 字符串加特殊值
    console.log('1' + null); // 调用String(null) 输出'1null'
    console.log('1' + undefined);// 调用String(undefined) 输出'1undefined'
    console.log('1' + []);   // 调用[].toString() 输出''
    console.log('1' + {});   // 调用{}.toString() 输出[object Object]
    console.log('1' + NaN);  // NaN.toString()    输出'1NaN'

其他操作符下一篇再说.............

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值