运算中的小技巧

运算中的小技巧

  • 利用~~进行类型的转换,数字类型

    • ~~true => 1
    • ~~false => 0
    • ~~”” => 0
    • ~~[] => 0
    • ~~undefined => 0
    • ~~!undefined => 1
    • ~~null => 0
    • ~~!null => 1
  • sring强制转换为数字

    • ‘32’ * 1 => 32
    • ‘ds’ * 1 => NaN
    • null * 1 => 0
    • undefined * 1 => NaN
    • 1 * { valueOf: ()=>’3’ } => 3
  • 用+号

    • +’123’ => 123
    • +’ds’ => NaN
    • +’’ => 0
    • +null => 0
    • +undefined => NaN
    • +{ valueOf: ()=>’3’ } => 3
  • 被当做false的值

    • false
    • 空字符串
    • 0
    • null
    • undefined
    • NaN
  • 当对象为null空字符串undefined => obj || ‘–’

  • "true"、"false" => (/^true$/i).test(bool) // true或者false
  • 某个类型强制转化为boolean类型 => !!a
  • 把字符串作为URI组件进行编码 => encodeURIComponent(URIstring)
  • 对中文和特殊符号进行解码 => decodeURIComponent(URIstring)
  • boolean过来数组中所拥有为假的数组
const compact = arr => arr.filter(Boolean);
// [ 1, 2, 3, 'a', 's', 34 ]
compact([0, 1, false, 2, "", 3, "a", "e" * 23, NaN, "s", 34]);

 上一篇
小功能的实现 小功能的实现
小功能的实现仿照浏览器的复制<body> <!-- type = "text" 才有select() --> <input type="text" class="copy-text" re
2018-06-17
下一篇 
策略模式 策略模式
策略模式原理  定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换 用途  根据实际的场景,运用对应的策略 组成 策略类 => 封装了具体的算法,并负责具体的计算过程 环境类 => Context 接受客户的请求,
2018-06-08
  目录