获取当前/指定日期的 “年/月/日 时:分:秒”

  1. console.log(
  2. new Date().toLocaleString('zh-CN', { hour12: false }),
  3. new Date('2022-12-24').toLocaleString(),
  4. )

![%KU[0D1ELROO)SO(79%BAA_tmb.jpg

isPrototypeOf

  • proto.isPrototypeOf(obj)

检测在 obj 的完整的原型链上,是否会出现 proto 这个原型对象

对象的规则设置

成员的规则:

可删除、可修改、可枚举

  • Object.defineProperty
  • Object.getOwnPropertyDescriptor
  • 对象本身的限制:冻结、密封、扩展

    冻结:

    Object.freeze\Object.isFrozen

  • 现有成员 不能删除、不能修改

  • 不能新增成员
  • 不能基于 defineProperty 进行劫持或者设置规则

image.png

密封:

Object.seal/Object.isSealed

  • 不能新增成员
  • 不能删除现有的成员
  • 成员的值,之前可以修改,现在还是可以修改的
  • 不能基于 defineProperty 进行劫持或者设置规则

image.png

扩展:

Object.preventExtensions/Object.isExtensible

  • 只是限制了不能新增
  • 其余的规则和之前还是一样的「比如:可删除、可修改」
  • 劫持也是可以做的
  • image.png

    对象成员的 configurable 是 false,都不允许基于 defineProperty 进行劫持

  1. let obj = {
  2. x: 10,
  3. y: 20
  4. }
  5. Object.freeze(obj)
  6. Object.isFrozen(obj)//true
  7. Object.seal(obj)
  8. Object.isSealed(obj)//true
  9. Object.preventExtensions(obj)
  10. console.log(Object.isExtensible(obj)) //false

Reflect

ES6中提供了 Reflect 对象,其对象中有很多API方法,包含了对象及其成员的常规操作

  • Reflect.ownKeys
  • Reflect.deleteProperty 删除成员,等价于 delete 操作符
  • Reflect.get 成员访问,等价于 obj.xxx
  • Reflect.set 设置成员值,等价于 obj.xxx=xxx
  • Reflect.has 等价于 in 操作符

总结一下Reflect 简而言之 言而总之 只有第一个Reflect.ownKeys有用

Array&Object上各种方法 记住+会用

数组原型

A$O3L(3D2JNFRS2F]%_03ZC_tmb.jpg
~[2$CNL]WYH)H_VIW9TMSAR_tmb.jpg

数组静态

![2DF[8`N0H~J58V@JUEM0$T_tmb.jpg

对象原型

![N3FW_26S302O%0T1@DV`0A_tmb.jpg

对象静态

![0I0HIKSL{NB2~C(S)8_QIS_tmb.jpg
YM4ANKXQKXLANN6O(%4891W.jpg其余的上面基本都提到了