-
迭代方法array.map,filter,some,forEach...函数中接受一个回调函数,函数参数都是function (当前项,当前项下标,原数组)
-
array.some()方法返回布尔值 用于判断数组中任意一个符合条件则返回true,类似一个or,||运算
-
array.every()相反,类似与&& ,and运算 必须每一项都返回条件则为true,
-
map 为根据回调函数中的返回值映射到新数组中。
-
reduce()和reduceRight()相反
-
js中使用String的方法js会在运行时后台做处理,自动隐式的生成调用一个String类型的实例在实例上调用方法,最后再销毁实例。对应实例会立即销毁。
js引擎会依赖作用域去找东西 -
如果function是第一个词就是函数声明,否则就是一个表达式 js引擎会在解释之前进行js编译 ,变量提升在js执行前,函数提升优先级比变量高,出现在后面的函数声明会覆盖前面的。
var a=2 不提升,只提升a对声明,赋值不提升 ,a=2 对执行顺序不会改变,留在原地,函数声明会被提升。但是函数表达式不会被提升。千万不要在if for...等代码块内声明函数 -
Object.defineProperty()定义某对象属性描述符
定义是否可枚举、是否可配置、是否可写、value
get set 必须成对同时定义,get 操作会查找原型链 -
hasOwnProperty针对对象检查属性 ,for in循环检查原型链遍历key值,for of 可便利数组项
10.js其实没有类的概念 ,class 中的super表示父类,祖先类、类的继承就是复制
prototype原型对象是在调用new时创建的对象,new 为构造函数调用 ,Object.create(null)会创建一个没有原型链的对象,所以非常适合存储数据
undefined不是is not defined
Array.from()和slice方法类似,可拷贝一个数组,可转换类数组,字符串String能进行concat();字符串类型不可突变mutation
小数中0.可以省略成 .
数值精确 number.toFixed(1),Number.isInteger检测是否是整数。null指曾赋过值,但是目前没有值。
-0 === 0 。 Object.is(A,B)判断两个值是否相等 ,Array .length = 0 清空数组
数组的toString()方法可返回“a,b,c,d”
, Number("") == 0 . Number.([1,2,3]) == NaN . Number([]) == 0 ;
强制转换布尔值 !!反转
a||b 如为true返回a ,第一个 否则返回b。a&&b正好相反 如true返回b。&&先执行,然后才是||
==隐式转换优先把非数字转换为数字,把全部转换为数字
,逗号优先级最低
Promise.resolve().then永远是个promise对象
promise的then回调中能return一个promise对象来执行promise任务,会以对象形式传递到下一个then,then 可接受正常值或一个promise对象 。promise.all类似并且、and、&&的关系。promise.race是或者、or、||,promise.race([...,setTimeout])能实现超时。then和catch都会返回一个全新的promise
const方式定义一个数组 可以对该数组进行修改
ES6参数默认值对null会转换成0
解构赋值可以嵌套
生成器可暂停自身
import会提升
Object对象只能接受字符串作为键值
Set
.size .add()可链式 .clear() .delect() .has()
数组去重:
function xx(arr){
return arr.filter((item,idx,array)=>arr.indexOf(item) === idx) ;
}
网友评论