Function 4: Object.getOwnPropertyDescriptor
用途:得到一个属性的定义
var person = { name : 'Joe' };
Object.getOwnPropertyDescriptor(person, 'name'); // { configurable : true,enumerable : true, value : 'Joe&', writable : true }
但是这个函数只能适用于函数自身的对象,并不能取得原型链上的属性
Browser Support
○ Firefox 4
○ Internet Explorer 9
○ Safari 5
○ Chrome 5+
Function 5: Object.keys
用途:取得所有的属性名
var horse = { name : 'Ed', age : 4, job : 'jumping', owner : 'Jim' };
var horseKeys = Object.keys(horse); // ['name', 'age', 'job', 'owner'];
Browser Support
○ Firefox 4
○ Internet Explorer 9
○ Safari 5
○ Chrome 5+
Function 6: Object.getOwnPropertyNames
此函数功能基本和第5点相同,但是她可以取得所有的属性名,即使那个属性是不可枚取的(属性的enumerable =false,详细请参照第2点)
Browser Support
○ Firefox 4
○ Internet Explorer 9
○ Safari 5
○ Chrome 5+
Function 7: Object.preventExtensions / Object.isExtensible
这个函数能把一个对象的属性锁住,让他不能扩展。
var product = { name : 'Foobar', rating : 3.5 };
Object.isExtensible(product); // true
Object.preventExtentions(product);
Object.isExtensible(product); // false
product.price = '$10.00'; // doesn't work
product.price; // undefined
但是仅仅只是不能增加属性,他的值仍然是可以改的,而且这个属性也能够被delete
Browser Support
○ Firefox 4
○ Internet Explorer 9
○ Chrome 6+
Function 8: Object.seal / Object.isSealed
Seal一个对象意味着你无法增加删除属性,也无法把已经定义好的属性值指向一个accessor (a method or
function),反过来也是一样
var pet = { name : 'Browser', type : 'dog' };
Object.seal(pet);
pet.name = 'Oreo';
pet.age = 2; // doesn't work
pet.type = function () { /**/ }; // doesn't work
delete pet.name; // doesn't work
Browser Support
○ Firefox 4
○ Internet Explorer 9
○ Chrome 6+
Function 9: Object.freeze / Object.isFrozen
freeze一个对象,意味着你不能通过任何手段修改对象内容,他变成了完全只读的
var obj = { greeting : 'Hi!' };
Object.freeze(obj);
Object.isFrozen(obj); // true
Browser Support
○ Firefox 4
○ Internet Explorer 9
○ Chrome 6+
Function 10: Array.isArray
很显然,这是一个判断是否是数组的函数
var names = ['Collis', 'Cyan'];
Array.isArray(names); // true
Browser Support
○ Firefox 4
○ Internet Explorer 9
○ Safari 5
○ Chrome 5+
○ Opera 10.5+
分享到:
相关推荐
本人看过《深入浅出ES6》后把一百多页去除水分,总结成十来页的文档,方便快速入门。
随着技术的发展,新的版本不断推出,引入了许多创新特性和改进。以下是一些在ES5、ES6(也称为ES2015)以及ES7(ES2016)中的常见新特性: 1. **保留关键字**:在ES5中,有一些保留关键字如`catch`,不能用作变量名...
12. **ECMAScript5**:ECMAScript是JavaScript的标准,第五版引入了严格模式、对象字面量的改进、JSON支持、函数绑定、数组和对象的新方法等特性。 13. **函数式编程**:虽然JavaScript并非纯函数式语言,但其支持...
本压缩包包含的是ECMAScript的三个重要版本:ECMAScript 5(ES5)、ECMAScript 6(ES6,也称为ES2015)以及ECMAScript 2018(ES2018)。这些版本在JavaScript的发展历程中扮演了关键角色,引入了许多新的特性和改进...
ECMAScript6,也称为ES2015,是JavaScript语言的一个重要版本更新,引入了许多新的特性和语法改进,使得代码更加简洁、易读。以下是一些关键的新特性及其范例: 1. **箭头函数**: 箭头函数提供了一种更简洁的函数...
### ECMAScript 5 版本特性解析 #### 引言 随着互联网技术的迅猛发展,JavaScript 作为一种广泛应用于浏览器端的脚本语言,其重要性日益凸显。为了更好地满足开发者的实际需求并提高编程效率,ECMAScript 第五版...
ECMAScript Second Edition javascript新特性2018年7月最新版本
ECMAScript 5(简称ES5)是ECMAScript的一个重要版本,带来了许多新特性,这些新特性在《JavaScript高级程序设计(第3版)学习笔记13 ECMAScript5新特性》中被详细讨论。 ES5相对于之前版本,如ECMAScript 3(简称...
ECMAScript 6,简称ES6,是JavaScript语言的一个重要版本更新,引入了许多新的特性和语法改进。本文将深入探讨其中两个关键特性:`let` 和 `const`。 `let` 是ES6中用于声明变量的新关键字,它解决了在ES5中`var`...
ESLint:ESLint规则详解:ECMAScript6+特性.docx
ES6,全称ECMAScript 2015,是JavaScript语言的一个重要版本更新,引入了大量的新特性和语法糖,对前端开发领域产生了深远影响。 1. **变量声明** - `let` 和 `const`: ES6 引入了新的变量声明方式,`let` 用于...
通过阅读《ECMAScript 6入门 第二版》,开发者能够全面理解并掌握这些新特性,提升JavaScript编程能力,适应现代Web开发的需求。这本书的高清完整版PDF,为学习者提供了优质的阅读体验,有助于深入理解和实践ES6的...
综上所述,《ECMAScript2016标准入门(第三版)》不仅详细介绍了ES2016的新特性,而且还提供了丰富的示例帮助读者理解和应用这些特性。无论是对于初学者还是有一定经验的开发者来说,这本书都是学习ES2016不可多得的好...
5. 正则的扩展 6. 数值的扩展 7. 函数的扩展 8. 数组的扩展 9. 对象的扩展 10. Symbol 11. Set 和 Map 数据结构 12. Proxy 13. Reflect 14. Promise 对象 15. Iterator 和 for...of 循环 16. Generator 函数的语法 ...
#### 二、ECMAscript的历史发展 ECMAscript的根源可追溯至1992年的ScriptEase,这是由Nombas公司开发的一款基于C语言的脚本工具。然而,ECMAscript的真正起点是在1995年,这一年,Netscape公司和SUN公司联合开发了...
ECMAScript 6入门书籍的作者阮一峰,是一名知名的前端技术专家,他的书籍详细介绍了ES6的各个新特性,并且在讲解的过程中辅以大量的示例代码,使得读者能够更加容易地理解和掌握这些新特性。本书适合已经了解ES5的...
阮一峰老师的《ECMAScript 6入门 第二版》是一本全面介绍这些新特性的权威指南。这本书详细讲解了ES6的关键知识点,为开发者提供了深入理解这一现代JavaScript版本的基础。** **1. **`let` 和 `const` 声明**:**在...
随着技术的不断演进,JavaScript也在持续发展,从最初的ECMAScript 3到现在的ECMAScript 6(也被称为ES2015),它带来了许多新特性和改进,显著提升了开发者的效率和代码的可维护性。以下将详细介绍JavaScript的发展...
本手册定义的是ECMAScript的第三版,其中包括强大的正则表达式、改进的字符串处理、新的控制语句、try/catch异常处理机制、错误定义更严谨、数字输出格式化以及针对未来国际化设施和语言扩展的微小改动。第三版标准...