当前位置: 首页 > news >正文

js运算符

运算符

@jarringslee

  • *赋值运算符 = += -= = /= 对变量进行赋值的运算符,用于简化代码。左边是容器,右边是值

  • 一元运算符

    • 正号+ 符号- 赋予数据正值、负值

    • 自增++ 自减–

      前置和后置:++i和i++:一般情况下习惯使用后置i++,两者在单独使用时没有区别。

      两者区别:在一行运算中,++i先给自身加完之后再参与运算,i++先参与运算之后在自加。

      let i = 1;
      console.log(++i + 1)  
      //i值先变为2再参与运算,输出值为3
      
      let i = 1;
      console.log(i++ + 1)  
      //i先参与运算,输出值为2,自身再自加变为2
      
      let i = 1;
      console.log(i++ + ++i + i)
      /* i++:先用后加值是 1,然后 i 变成 2++i:先加后用i 从 2 变成 3,值是 3i:此时 i 已经是 3所以整个表达式就是:1 + 3 + 3 = 7因此打印结果是 7。  */
      
  • 比较运算符 < > <= >= == === != !== 比较结果为boolean类型的值(只有true或者false)

    • == 左右两边值是否相等
    • === 左右两边值和类型是否都相等(全等,常用
    • != 左右两边是否值不相等
    • !== 左右两边是否不全等
    • NaN不等于任何值,包括它自己

    隐式转换下,常常会有值相等但类型不相同的例子。

    在做 == 比较时会隐式转换,所以经常出现 “值看起来一样,但类型不同” 的情况,例如:

    '1' == 1        // true   字符串 '1' 被转成数字 1
    0 == false      // true   布尔值 false 被转成 0
    null == undefined // true  规范规定这对特殊值相等
    ' \n ' == 0     // true   空格字符串被转成 0
    

    === 不做任何类型转换,只要类型不同就直接返回 false

    '1' === 1       // false
    0 === false     // false
    null === undefined // false
    

    所以:

    • == 比较转换后的值
    • === 比较值 + 类型
    • 全等/不全等(=== / !==)先看类型,类型不同直接判 false / true。
    • 相等/非相等(== / !=)先转换再比较
    • 字符串比较按字典序(Unicode 码点),逐位比,直到发现大小不同的值,前缀相同则短的小。
    console.log(2 === '2');        // false  (类型不同)
    console.log(NaN === NaN);      // false  (NaN !== NaN)
    console.log(2 !== '2');        // true   (类型不同)
    console.log(2 != '2');         // false  (转换后相等)console.log('a' < 'b');        // true   (97 < 98)
    console.log('aa' < 'ab');      // true   (第二位 a < b)
    console.log('aa' < 'aac');     // true   (前缀相同,aa 更短)
    
  • 逻辑运算符 &&与(一假则假) ||或(一真则真) !非(真变假,假变真)

  • 运算符优先级

    优先级运算符顺序
    1小括号()
    2一元运算符++ -- !
    3算术运算符* / % 先于 + -
    4关系运算符> >= < <=
    5相等运算符== != === !==
    6逻辑运算符&& 先于 ||
    7赋值运算符= += -= …
    8逗号运算符,

文章转载自:
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://www.dtcms.com/a/281493.html

相关文章:

  • Java线程池深度解析与Spring Boot实战指南
  • 文献阅读 250715-Atmospheric rivers cause warm winters and extreme heat events
  • 服务器数据恢复—光纤存储硬盘扇区不稳定导致业务中断如何恢复数据?
  • 【物联网】基于树莓派的物联网开发【9】——树莓派修正系统时间五种解决方案
  • next.js 登录认证:使用 github 账号授权登录。
  • Postgresql源码(147)Nestloop流程与Instrumentation简单分析
  • 24.找到列表中最大或最小值的索引
  • 什么是私有化部署企业即时通讯?吱吱企业即时通讯安全吗?
  • frp内网穿透(二)
  • 【实时Linux实战系列】实时嵌入式系统开发基础
  • Java的stream流其一
  • 美图RoboNeo发布:一句话修图建站 | AI早报
  • Rembg开源项目全面解析:从原理到实践应用
  • 银河麒麟(Kylin) - V10 GFB高级服务器操作系统ARM64部署昇腾910b训练机以及Docker安装
  • AiPy+豆包:数据分析可视化,一键生成GUI工具
  • 复习笔记 39
  • 2025牛客暑期多校训练记录
  • 1688图片搜索逆向工程与多模态搜索融合实践——基于CLIP模型的特征向量检索优化
  • 4-Nodejs模块化
  • 倒计时熔断机制的出价逻辑
  • 入门华为人工智能,HCIA/HCIP/HCIE该怎么选?
  • 【kubernetes】--ConfigMap
  • slam中的eskf观测矩阵推导
  • 2025年最新香港站群服务器租用价格参考
  • 杭州轻创创业服务有限公司——以卓越品质赢得市场信赖
  • 【字节跳动】数据挖掘面试题0019:带货直播间推荐:现在有一个带货的直播间,怎么把它精准地推送给有需要的用户
  • IPD-流程设计-DT角色说明书参考模板
  • DeepSDF论文复现1---数据集生成2---原理解析
  • JVM——JVM由哪部分组成?
  • python+selenium UI自动化初探