乐趣区

关于javascript:js-中需要特别注意的地方记录上篇

刷了一遍红宝书、你不晓得的 JS,记录一些 js 比拟重要且不易留神到的点,如有有余的中央,请多多见谅哈 Thanks♪(・ω・)ノ

  • undefined 不是 is not defined
  • undefined == null(规定是这样。。)
  • {} + [] 为 0
  • Array.from()和 slice、concat 办法相似,可拷贝一个数组,可转换类数组
  • 字符串 String 能进行 concat();
  • 字符串类型不可渐变 mutation
  • 小数中 0. 能够省略成 . (包含 css)
  • 数值精确化 number.toFixed(1)
  • Number.isInteger 检测是否是整数。
  • null 指曾赋过值,然而目前没有值。
  • -0 === 0。
  • undefined != false
  • Object.is(A,B) 能够更精确判断两个值是否相等
  • Array .length = 0 能够清空数组
  • 数组的 toString() 办法可返回“a,b,c,d”
  • Number(null) 等于 0
  • Number([]) 等于 0
  • Number(“”) == 0
  • Number.([1,2,3]) == NaN . Number([]) == 0 ;
  • 强制转换布尔值 !! 反转
  • a||b 如为 true 返回 a(第一个)否则返回 b。a&&b 正好相同 如 true 返回 b。&& 先执行,而后才是 ||
  • == 隐式转换优先把非数字转换为数字,把全副转换为数字 (== 号有很多坑,倡议大家独自过一下这块内容,不倡议应用 == 号进行判断)
  • ,逗号优先级最低
  • js 引擎会依赖作用域去找货色
  • const 形式定义一个数组 能够对该数组进行批改
  • ES6 参数默认值对 null 会转换成 0
  • 解构赋值能够嵌套
  • 生成器可暂停本身
  • import 会晋升
  • Object 对象只能承受字符串作为键值
  • Set 操作可链式调用:.size .add() .clear() .delect() .has()

其余

  1. 迭代办法 array.map,filter,some,forEach… 函数中承受一个回调函数,函数参数都是 function (以后项,以后项下标,原数组)
  2. array.some() 办法返回布尔值 用于判断数组中任意一个符合条件则返回 true,相似一个 or,|| 运算
  3. array.every() 相同,相似与 &&,and 运算 必须每一项都返回条件则为 true,
  4. map 为依据回调函数中的返回值映射到新数组中。
  5. reduce()和 reduceRight()相同
  6. js 中应用 String 的办法 js 会在运行时后盾做解决,主动隐式的生成调用一个 String 类型的实例在实例上调用办法,最初再销毁实例。对应实例会立刻销毁。
  7. 如果 function 是第一个词就是函数申明,否则就是一个表达式。js 引擎会在解释之前进行 js 编译,变量晋升在 js 执行前,函数晋升优先级比变量高,呈现在前面的函数申明会笼罩后面的。var a=2 不晋升,只晋升 a 对申明,赋值不晋升,a=2 对执行程序不会扭转,留在原地,函数申明会被晋升。然而函数表达式不会被晋升。千万不要在 if for… 等代码块内申明函数
  8. Object.defineProperty() 定义某对象属性描述符定义是否可枚举、是否可配置、是否可写、value。get set 必须成对同时定义,get 操作会查找原型链
  9. hasOwnProperty 针对对象查看属性
  10. for in 循环查看原型链遍历 key 值,for of 可便当数组项
  11. js 其实没有类的概念,class 中的 super 示意父类,先人类、类的继承就是复制
  12. prototype 原型对象是在调用 new 时创立的对象。new 为结构函数调用
  13. Object.create(null)会创立一个没有原型链的对象,所以非常适合存储数据

Promise

  • Promise.resolve().then 永远是个 promise 对象
  • promise 的 then 回调中能 return 一个 promise 对象来执行 promise 工作,会以对象模式传递到下一个 then
  • then 可承受正常值或一个 promise 对象
  • promise.all 相似并且、and、&& 的关系。
  • promise.race 相似或者、or、||,promise.race([…,setTimeout])能实现某些操作超时的成果。
  • then 和 catch 都会返回一个全新的 promise

最初来一个一行代码实现数组去重????:

function xx(arr){return arr.filter((item,idx,array)=>arr.indexOf(item) === idx) ;
}
退出移动版