ES6入门系列 ----- 对象的遍历】的更多相关文章

工作中遍历对象是家常便饭了,遍历数组的方法五花八门, 然而很多小伙伴是不是和我之前一样只会用for ...in.... 来遍历对象呢, 今天给大家介绍五种遍历对象属性的方法: 1, 最常用的for  in 它可以便利对象本身及其继承自原型上的可枚举属性, 过滤掉原型上的属性可以用hasOwnProperty(属性名)来判断是否是本身的属性, 对象的每一个属性都有它的描述,可以用Object.getOwnPropertyDescriptors(对象, 属性名)来查看对象的某个属性的描述,可以知道其…
其他章节请看: es6 快速入门 系列 对象 试图解决的问题 写法繁杂 属性初始值需要重复写 function createPeople(name, age){ // name 和 age 都写了 2 次 return { name: name, age: age } } 对象中的方法有更简单的写法吗? let person = { name: 'aaron', sayName: function(){ } } 原型访问困难 要记得如何使用 Object.getPrototypeOf() 方法和…
ES6 在 Number对象上新增了很多方法 1 .    Number.isFinite()判断是否为有限的数字 和全局的isFinite() 方法的区别是 isFinite('1') === true    ;    Number.isFinite('1') === false 全局的isFinite()先调用Number() 方法  把  变量 转化为数字再进行判断, 所以返回 true, Number.isFinite()只能判断数字, 对于非数字一律返回false 2  ,  Numb…
Reflect   是ES6 为了操作对象而提供的新的API, 目的是: 将Object 上一些明显属于语言内部的方法,比如 Object.defineProperty  放到 Reflect对象上 现阶段某些方法同时在Object  ,  Reflect 上部署,  未来的新方法将只在Reflect对象上部署,也就是说 从Reflect对象上可以获得语言内部的方法. 2. 修改某些Object 方法的返回结果,让其变得更合理.   3.让Object的操作都变成函数行为.某些Object操作是…
0.导言 最近从coffee切换到js,代码量一下子变大了不少,也多了些许陌生感.为了在JS代码中,更合理的使用ES6的新特性,特在此对ES6的特性做一个简单的总览. 1.模块(Module) --Chrome测试不可用 在ES6中,有class的概念,不过这只是语法糖,并没有解决模块化问题.Module功能则是为了解决模块化问题而提出的. 我们可以使用如下方式定义模块: 11_lib.js文件内容 // 导出属性和方法 export var PI = 3.1415926; export fun…
1函数参数的默认值 基本用法 在ES6之前,不能直接为函数的参数指定默认值,只能采用变通的方法. function log(x, y) { y = y || 'World'; console.log(x, y); } log('Hello') // Hello World log('Hello', 'China') // Hello China log('Hello', '') // Hello World 上面代码检查函数log的参数y有没有赋值,如果没有,则指定默认值为World.这种写法的…
0.导言 ES6中新增了不少的新特性,来点测试题热热身.具体题目来源请看:http://perfectionkills.com/javascript-quiz-es6/. 以下将一题一题来解析what和why. 1.题目一 (function(x, f = () => x) { var x; var y = x; x = 2; return [x, y, f()]; })(1) A. [2, 1, 1] B. [2, undefined, 1] C. [2, 1, 2] D. [2, undef…
1.let命令 Tips: 块级作用域(只在当前块中有效) 不会变量提升(必须先申明在使用) 让变量独占该块,不再受外部影响 不允许重复声明 总之:let更像我们熟知的静态语言的的变量声明指令 ES6新增了let命令,用来声明变量.用法类似于var,但所声明的变量,只能在let命令所在的代码块内有效. let声明的变量只有块级作用域 'use strict' { let a = 1; } console.log(a); //结果是什么? 看一段熟悉的代码: var a = []; for (va…
let命令 基本用法 ES6新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效. { let a = ; ; } a // ReferenceError: a is not defined. b 上面代码在代码块之中,分别用let和var声明了两个变量.然后在代码块之外调用这两个变量,结果let声明的变量报错,var 声明的变量返回了正确的值.这表明,let 声明的变量只在它所在的代码块有效. for循环的计数器,就很合适使用let命令. ;…
ES5对象(超类)原有: 属性:construct构造函数 方法: object.hasOwnProperty( propertyName ) //检测是否有一个本地的属性而不是继承的,返回boolen prototypeObject.isPrototypeOf( object ) //检测指示对象是否存在于另一个对象的原型链中,返回boolenpropertyIsEnumerable() //指定属性是否为对象的一部分以及该属性是否是可枚举的,返回boolen var arr = [1, 2]…