可枚举性(enumerable)用来控制所描述的属性,是否将被包括在for...in循环之中.具体来说,如果一个属性的enumerable为false,下面三个操作不会取到该属性.* for..in循环  :只遍历对象自身的和继承的可枚举的属性* Object.keys方法 :返回对象自身的所有可枚举的属性的键名* JSON.stringify方法:只串行化对象自身的可枚举的属性 * Object.assign()(ES6):只拷贝对象自身的可枚举的属性 这四个操作之中,只有for...in会返…
1.Object.getOwnPropertyDescriptor() 解释:获取对对象属性的描述对象. let obj = { foo: 123 }; console.log(Object.getOwnPropertyDescriptor(obj, 'foo')) 显示结果: { configurable: true enumerable: true value: 123 writable: true __proto__: Object } enumerable属性,称为可枚举性,如果为 fa…
ES6一共有5种方法可以遍历对象的属性. (1)for...in for...in循环遍历对象自身的和继承的可枚举属性(不含Symbol属性). (2)Object.keys(obj) Object.keys返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含Symbol属性). (3)Object.getOwnPropertyNames(obj) Object.getOwnPropertyNames返回一个数组,包含对象自身的所有属性(不含Symbol属性,但是包括不可枚举属性).…
说到枚举,可能很多人都会想到枚举类型,但在javascript对象中有一个属性为可枚举性,他是什么呢? 概念 可枚举性(enumerable)用来控制所描述的属性,是否将被包括在for...in循环之中.具体来说,如果一个属性的enumerable为false,下面三个操作不会取到该属性.* for..in循环* Object.keys方法* JSON.stringify方法 enumerable "隐身术" var o = {a:1, b:2}; o.c = 3; Object.de…
1.直接用标识符作为属性名: obj.foo = true 2.用表达式作为属性名: obj['a'+'bc'] = 123 //相当于 obj['abc'] = 123 3.ES6 允许字面量定义对象时,用方法二(表达式)作为对象的属性名,即把表达式放在方括号内. let key = 'foo'; let obj = { [key]: true, ['a'+'bc']: 123 }; var lastWord = 'last word'; var a = { 'first word': 'he…
在ES6中允许我们在设置一个对象的属性的时候不指定属性名. 不使用ES6: const name='Ming', age='18', city='Shanghai'; const student ={ name:name, age:age, city:city }; console.log(student); 使用ES6: const name='Ming', age='18', city='Shanghai'; const student ={ name, age, city }; conso…
参考书<ECMAScript 6入门>http://es6.ruanyifeng.com/ 对象的扩展 1.属性名的简洁表示法 : ES6允许在代码中直接写变量,变量名是属性名,变量值是属性值.  let key = "value";  let obj = {key};//obj {key : "value"}2.方法的简写表示法  let obj = {        method : function(x,y){          return {x…
    在学习ES6的过程中,涉及到遍历方法时,提到过可枚举性,且多种遍历方法都与可枚举性相关.本章节,将总结这些遍历方法的可枚举性,并在必要的部分,给出对比实例. 一.设置属性的可枚举性 在上一文章“Object的原型克隆”中,简单介绍了Object.defineProperty()方法.通过该方法的属性描述符 enumerable,就可以设置该属性是否可以枚举,当设置为false时,不可枚举:否则,可枚举.如示例: Object.defineProperty(obj1, 'test', {…
Array 新增方法 1.Array.from() 将类数组(dom对象 或 arguments)或set\map对象转换为数组 2.Array.of() 将一组值转换为数组,例如Array.of(3,5,7,9) => [3,5,7,9] 3.Array.prototype.copyWithin() 数字内部复制 4.数组实例的find()和findIndex() 例如[1,2,3].find(n => n > 2) // 3 5.数组实例的fill() 使用给定的值填充数组 6.数组…
‘变量’声明 ES6新增两个声明’变量’的关键字,let和const命令. l  let用来声明局部变量 同ES5中var声明的变量不同的是,let声明的变量的作用域范围仅仅是从其声明的地方开始,到其所在的代码块结束.并且不会像var声明的变量那样存在变量提升效果,并且不能被重复声明. 这样的话就必须要确保用let声明的变量要在使用之前完成声明,否则会报错,所以好的变成习惯应该是在代码的开头完成所有变量的声明. l  Const用来声明一个常量 用const声明的常量在完成声明后不可更改,因此其…