美文网首页
【js 致死点】运算符

【js 致死点】运算符

作者: 南方帅 | 来源:发表于2019-02-26 18:08 被阅读0次
  • 加法运算符
    只有加法运算符 在执行的时候有重载。其他都是转换成数值,加法根据前后执行相加、或拼接
'3' + 4 + 5 // "345"
3 + 4 + '5' // "75"
  • 余数(%)运算符 会带符号
-1 % 2 // -1
1 % -2 // 1
// 所以判断一个数 奇偶数的 正确的写法
function isOdd(n) {
  return Math.abs(n % 2) === 1;
}
  • 数值运算符 指数运算符
    指数运算符是右结合 先进行最右边的计算
+true   //1
-(-x)    //x 

2 ** 3 ** 2 // 512
// 相当于 2 ** (3 ** 2)

  • 比较运算符
    除数值,真值,任意比较 都是通过valueOf().toString()
    字符串比较 是根据字典里面排序和unicode 编码
'2' > '123'
'大' < '小'  //  中文排序和比较 不适用

NaN比较 除了!= 其他都是false

1 > NaN             // false
1 <= NaN          // false
'1' > NaN           // false
'1' <= NaN         // false
NaN > NaN       // false
NaN <= NaN     // false
NaN != NaN      // true

undefined和null与自身严格相等

undefined === undefined // true
null === null // true

== 相等运算符。 同类型的 == 等同于 === 不同类型会 Number(a) === Number(b)

0 == false // true
// 等同于 0 === Number(false)
'true' == true // false
// 等同于 Number('true') === Number(true)
// 等同于 NaN === 1

!= 是判断相等 然后取反

1 != '1' // false

// 等同于
!(1 == '1')

~位运算符 对数字取反 只能针对整数部分,可用于取整

~ -3 // 2    3-1  = 2
~3 // -4  -3-1 = -4
~~0.00000003 //0     不同parseInt(0.0000003) // 3
  • 结合顺序

一般运算级别相同的都是左结合。
例外:上面提到的 ** 指数运算符就是右结合、赋值运算符、三元运算符

w = x = y = z;
q = a ? b : c ? d : e ? f : g;

// 等同于
w = (x = (y = z));
q = a ? b : (c ? d : (e ? f : g));

相关文章

  • 【js 致死点】运算符

    加法运算符只有加法运算符 在执行的时候有重载。其他都是转换成数值,加法根据前后执行相加、或拼接 余数(%)运算符 ...

  • 【js致死点】对象

    对象的键名都是字符串,所以加不加引号都可以如果键名不符合标识名的条件(比如第一个字符为数字,或者含有空格或运算符)...

  • 【js致死点】函数

    函数定义有两种方式 函数声明和函数表达式(new function 不考虑) , 两者的区别就是: 用函数声明创建...

  • 【js致死点】数值

    function parseInt 将字符串数字转化成按照进制选项 转化成对应数值 了解更多 正常使用 BUG ...

  • 【js 致死点】数组

    数组是一种特殊的对象,键值就是0,1,2数字 非正常操作因为数组继承对象,in 的操作也会遍历出非数字键的对象 A...

  • JavaScript 02 (运算符和选择结构)

    js的关系运算符,js的逻辑运算符,js的赋值运算符,js的运算符的优先级问题,js的自增和自减,js的选择结构 ...

  • 运算符及js操作属性

    关系运算符 相等运算符 条件运算符 运算符的优先级 代码块 js操作属性 js操作style属性 js操作clas...

  • js运算符

    js基础语法:运算符,判断语句,数据类型,js对象 一、运算符 赋值运算符 =算数运算符 +-*/% ++...

  • 2020-03-16

    JavaScript 初识 《① JS 速览——进入 JS 的世界》[编号:js_01] 《② 运算符、运算符优先...

  • 2018-12-01

    赋值运算符 关系运算符 Unicode编码 相等运算符 条件运算符 运算符的优先级 代码块 js操作属性 js换肤...

网友评论

      本文标题:【js 致死点】运算符

      本文链接:https://www.haomeiwen.com/subject/sxbayqtx.html