zoukankan      html  css  js  c++  java
  • 【JavaScript知识点三】 javascript 运算符

    【JavaScript知识三】运算符

    1. 算术运算符

    1-1 运算符

    • + 功能:①对数字进行代数求和 ②对字符进行连接操作 ③将一个数字转换成字符串(数字 + 空字符串)
    • - 功能:①对操作数进行取反操作 ②对数字进行减法操作 ③将字符串转成数值(数值型字符串 - 0)
    • * 功能:对两个运算数进行乘法运算
    • / 功能:对两个运算数进行除法运算
    • % 功能:返回两个除数的余数

    1-2 复合赋值运算符

    • += 、-= 、*= 、/= 、%=

    2. 自增与自减

    2-1 功能相反

    • ++ 对唯一的运算数进行递增操作(每次加1)
    • -- 对唯一的运算数进行递减操作(每次减1)

    2-2 规则相同

    • 运算数必须是一个变量、数组的一个元素或者对象的属性
    • 如果运算符是非数值的,则运算符会将它转成数值

    2-3 符号位置决定运算结果

    • 运算数之前:先进行递增(递减)操作,再进行求值
    • 运算数之后:先求值,再进行递增(递减)操作

    3. 关系运算符

    3-1 大小关系检测

    • 运算符:< 、<= 、>= 、>
    • 操作规则:
      数值与数值的比较:比较它们的代数值
      仅一个运算数是数值:将另一个运算数转换成数值,并比较它们的代数值
      字符串间的比较:逐个字符比较它们的Unicode数值
      字符串与非数值的比较:将运算数转换成字符串比较
      运算数既非数字也非字符串:返回false
      与NaN的比较:返回false

    3-2 等值关系检测

    • 相等比较:
      ①操作符
      == 比较两个运算数的返回值看是否相等
      != 比较两个运算数的返回看是否不相等
      ②类型转换
      布尔值:true 1 false 0
      对象: 调用valueOf()基本类型
      字符串与数值的比较:字符串转换为数值
      ③比较原则
      null与undefined :相等、比较前不进行任何转换
      NaN:与任何数值都不相等包括其自身
      对象:是否属于同一对象

    • 相同比较
      ①运算符
      === 比较两个运算数的返回值及数据类型是否相同
      !== 比较两个运算数的返回值及数据类型是否不同
      ②比较原则
      值类型间比较:只有数据类型且数值相等时才能够相同
      值类型与引用类型比较:肯定不同
      引用类型间比较:比较它们的引用值(内存地址)

    4. 对象运算符

    • in:判断左侧运算数是否为右侧预算数的成员
    • instantof 判断对象实例是否属于某个类或构造函数
    • new根据构造函数创建一个新的对象,并初始化该对象
    • delete 删除指定对象的属性,数组元素或变量
    • .及[] 存储对象和数组元素
    • ()函数调用,改变运算运算符优先级

    5. 逻辑运算符

    5-1 !逻辑非

    • 返回值:
      true
      空字符串、0、null、NaN、undefined

    false
    对象、非空字符串、非0数值(Infinity)

    • 特性
      如果运算数的值为false则返回true,否则返回false
      连续使用两次,可以将任意类型转为布尔型值

    5-2 &&逻辑与

    • 规则
      第一个操作数是对象,返回第二个操作数
      第二个操作数是对象,第一个操作数值为true时返回该对象
      两个操作数都是对象,返回第二个操作数
      一个操作数是null,返回null
      一个操作数是NaN,返回NaN
      一个操作数是undefined,返回undefined

    • 特性
      当且仅当两个运算数的值都是true时,才返回true,否则返回false
      短路操作 当第一个操作数的值是false则不在对第二个操作数进行求值

    5-3 ||逻辑或

    • 规则
      第一个操作数是对象,返回第一个操作数
      第二个操作数是对象,第一个操作数值为false时返回该对象
      两个操作数都是对象,返回第一个操作数
      两个操作数是null,返回null
      两个操作数是NaN,返回NaN
      两个操作数是undefined,返回undefined

    • 特性
      当且仅当两个运算数的值都是false时,才返回false,否则返回true
      如果第一个操作数值为true,则不会对第二个操作数进行求值

    6. 位运算符

    6-1 基础知识

    • 类型
      有符号:数值位 前31为,符号位 第32位 0正数 1负数
      无符号:只能是正数,第32位表示数值,数值范围可以加大

    • 数值范围 -2147483648~2147483647

    • 存储方式
      正数:纯2进制存储,31位中每一位表示2的幂,用0补充无用位
      负数:2进制补码存储,
      补码的计算步骤:
      确定该数字的非负版本的二进制表示
      求得二进制反码,把0替换为1,把1替换为0
      在二进制反码上加1

    • 当做0来处理的特殊值:NaN,Infinity

    6-2 逻辑位运算

    • 返回值为1:
      按位非~ 0
      按位与& 对应位全为1
      按位或| 任何一位是1
      按位异或^ 既不同时为0,也不同时为1

    • 返回值为0:
      按位非~ 1
      按位与& 任何一位是0
      按位或| 对应位全0
      按位异或^ 对应位全0或全1

    6-3 位移操作

    • 左移<<
      将数值的所有位左移指定的位数
      所有空位用0补充
      左移1位对其乘2,左移2位对其乘4,以此类推

    • 有符号右移>>
      将数值的所有位右移指定的位数
      移出的位被舍弃
      保留符号位
      右移1位对其除2,右移2位对其除4,yicileixi,以此类推

    • 无符号右移>>>
      正数:与有符号右移结果相同
      负数:会出现无限大的数值
      注:无符号右移与带符号右移的区别就是 无符号始终补0

    6-4 复合赋值运算符

    • 位操作与符号结合,复合赋值不会有性能方面的提升

    7. 其它运算符

    • typeof 类型判定运算符
    • ?:条件运算符,简洁的if else
    • ,逗号,在一行语句中执行多个不同的操作
    • void 舍弃运算数的值,返回undefined作为表达式的值
  • 相关阅读:
    聚美优品面试题
    前端开发常用的网站
    JS 正则表达式大全
    软件工程作业二
    大三个人简述
    2019期末总结
    2019春第一次课程设计实验报告
    2019第十二周作业
    2019第十一周作业
    2019第十周作业
  • 原文地址:https://www.cnblogs.com/reamd/p/4946369.html
Copyright © 2011-2022 走看看