16. js运算符

210 阅读2分钟

%取余数:

js的取余号有一个bug: 负数的余数

js的做法: j-1 % 7 === - (1 % 7)

正确结果 : 应该是 6%7


++a, 和a++ 的区别

在于表达式的值不同, 只在for循环中使用i++, , 为了让我的同事更加好懂.


+号和 - 号

  1. +a 是求值, 而-a 取相反数

  2. 字符串只支持+号的运算. js这个傻逼语言会自动将数字转字符串


== 和 ===的区别

  1. 模糊相等== , 全等 === .

  2. 傻逼js的bug: 永远不用两个==, 有很多自相矛盾的地方

  1. ===基本类型看值, 对象比较地址. NaN !== NaN

&& 和 ||

  1. console&&console.log&&console.log("哈哈")

    防御性编程, 防止console出错, 被人篡改

    js傻逼: window上挂载的console能轻易修改

  2. a=a||100 //保底值, 当a不存在的时候, 给一个保底值100

    但是有一个bug


位运算以及二进制

  1. 0b: 我要写二进制数啦, 例如:0b10110, 就是二进制数:10110

  2. 与运算符判断奇偶: 偶数 & 1 =0 奇数 & 0 = 1

  3. 用位运算来取整:位运算不支持小数

  4. 位运算来交换两个变量: 当然有简单语法

  5. .运算会自动把一个简单变量自动变成对象. 会自动创建也会自动删除:

    永远不要用new Number

  6. 相当无聊的:不写return也能执行两句语句:let f = x=>(console.log('hi'), x+1)不写return也能执行两句

  7. js优先级这辈子都记不下来. 直接放弃记忆优先级.只用圆括号. 说我的同事能理解我的代码