ES5

  • Object.create(prototype, descriptors)

    1. //创建对象
    2. var o1 = {foo:'bar'};
    3. var o2 = new Object();
    4. //Object.create(proto,[descriptors]);
    5. var o3 = Object.create(null);
    6. function Person(name) {
    7. this.name = name;
    8. }
    9. var p1 = new Person('sindy');
    10. var p2 = Object.create(Person.prototype, {
    11. age: {
    12. value: 18,
    13. writable: false,
    14. enumerable: false,
    15. configurable: true,
    16. //value , writable 和 getter setter函数不能同时设置
    17. /*get: function () {
    18. if (typeof age === 'undefined') {
    19. return 'not set age value yet';
    20. } else {
    21. return 'your age:' + age;
    22. }
    23. },
    24. set: function (a) {
    25. age = a;
    26. if (this.cTime == 0) {
    27. console.log('set age OK');
    28. this.cTime++;
    29. } else {
    30. console.log('change age OK');
    31. }
    32. }
    33. },*/
    34. cTime: {
    35. value: 0,
    36. writable: true
    37. }
    38. });
  • Object.defineProperty(object, propertyName, descriptor)

    1. var p1 = new Person('alice');
    2. Object.defineProperty(p1, 'name', {value:'alice2', writable:true, enumerable: false, configurable: false});
    3. console.log(p1.name); //=> alice2
    4. delete p1.name; //=> false
    5. configurable==flase,不能defineProperty重定义属性特性
    6. Object.defineProperty(p1, 'name', {value:'kk', enumerable: true}); //=>error
  • Object.defineProperties(object, descriptors)

    var p1 = new Person('alice');

    Object.defineProperties(p1,{

    skill:{

    value: 'singing',

    writable: true,

    enumerable: true,

    configurable: false

    },

    age: {

    value: 18,

    writable: true,

    enumerable: true,

    configurable: false

    }

    });

    p1.age //18

    p1.skill //singing

  • Object.getOwnPropertyDescriptor(obj, propertyName)

    获取自有属性的descriptor

    1. function Person (n){ this.name = n; }
    2. Person.prototype = {
    3. constructor: Person,
    4. hi: function(name){ console.log('hi,'+name);}
    5. };
    6. var p1 = new Person('alice');
    7. var nameDescriptor = Object.getOwnPropertyDescriptor(p1, 'name');//=>{value:'alice', enumerable: true, writable: true, configurable: true}
    8. var des = Object.getOwnPropertyDescriptor(p1, 'hi');//=>undefined
  • Object.getOwnPropertyNames(obj)

    获取对象所有的自有属性名

    1. //接上
    2. p1.age = 11;
    3. var props = Object.getOwnPropertyNames(p1); //=> ['name', 'age']
  • Object.preventExtensions(obj)

    禁止扩展对象,即不能添加属性到对象上。

    1. //接上
    2. Object.preventExtensions(p1);
    3. p1.home = 'HK';
    4. console.log(p1.home); //=> undefined
  • Object.isExtensible(obj)

    判断对象是否可扩展

    1. //接上
    2. Object.isExtensible(p1);//=> false
  • Object.seal(obj) , Object.isSealed(obj)

    若对象为isSeal状态则不能添加或删除属性, 但可以修改现有属性的值

    1. //接上
    2. Object.seal(p1);
    3. Object.isSealed(p1); //true
    4. delete p1.name;//=>false
    5. p1.like = 'shopping';
    6. console.log(p1.like); //=> undefined
  • Object.freeze(obj) , Object.isFrozen(obj)

    冻结对象(不能添加或删除属性,不能修改现有属性) freeze -> seal -> configurable:false 限制的严格程度递减

    1. Object.freeze(p1);
    2. Object.isFrozen(p1); //=> true
    3. p1.name = 'alice2';
    4. console.log(p1.name); //=> alice
    5. p1.school = 'hkzw';
    6. console.log(p1.school); //=> undefined
  • Object.getPrototypeOf(obj);

    获取对象的原型对象

    1. var proto = Object.getPrototypeOf(p1);//=>{constructor: Person, hi: function(){..}}
  • Array.isArray(arg)

  • [].indexOf(val,[pos])

  • [].lastIndexOf(val, [pos])

  • [].every(fn(v, i, arr),[context])

  • [].some(fn(v,i, arr), [context])

  • [].forEach(fn(v, i, arr), [context])

  • [].filter(fn(v, i, arr), [context])

  • [].map(fn(v, i, arr), [context]);

  • [].reduce(fn(prev, curr, i, arr), [primitive]);

  • [].reduceRight(fn(prev, curr, i, arr), [primitive]);

  • new Date().toJSON()

    序列化日期对象 输出: "2016-03-14T07:36:09.602Z"

  • String.prototype.trim

    删除字符串两端空格 (" touch ").trim(); => touch

es5 api的更多相关文章

  1. js基础知识温习:构造函数与原型

    构造函数 构造函数主要用于初始化新对象.按照惯例,构造函数名第一个字母都要大写. 构造函数有别于其它函数在于它使用new操作符来调用生成一个实例对象.换句话说,如果一个函数使用new操作符来调用,则将 ...

  2. [Effective JavaScript 笔记]第31条:使用Object.getPrototypeOf函数而不要使用__proto__属性

    ES5引入Object.getPrototypeOf函数作为获取对象原型的标准API,但由于之前的很多js引擎使用了一个特殊的__proto__属性来达到相同的目的.但有些浏览器并不支持这个__pro ...

  3. ES5对Array增强的9个API

    为了更方便的对Array进行操作,ES5规范在Array的原型上新增了9个方法,分别是forEach.filter.map.reduce.reduceRight.some.every.indexOf ...

  4. 关于ES3、ES5、ES6以及ES7所有数组的方法(api)的总结

    起因:工作用经常用到操作数组的方法,这里进行一下总结,我尽量以简洁的语言概括每个方法(api)的作用.如果您想快速定位,可以Control+F 然后搜相应的方法即可定位 :) ES3的数组方法 joi ...

  5. ES5新增数组方法测试和字符串常见API测试

    首先是ES5新增数组方法测试: <!DOCTYPE html><html lang="en"><head> <meta charset=& ...

  6. 学习笔记-es5新增的一些数组的API(不全)-字符串-字符串API(不全)

    ### es5新增的数组的api + indexOf() 搜索数组中的元素,并返回它所在的位置. arr.indexOf(str,index) 参数: str为要查找的字符串 index为开始查找的下 ...

  7. ES5新特性:理解 Array 中增强的 9 个 API

    为了更方便的对JS中Array进行操作,ES5规范在Array的原型上新增了9个方法,分别是forEach.filter.map.reduce.reduceRight.some.every.index ...

  8. ES5.X相关API和技巧汇总

    https://blog.csdn.net/laoyang360/article/details/77412668

  9. 【转】浅谈JavaScript、ES5、ES6

    什么是JavaScript JavaScript一种动态类型.弱类型.基于原型的客户端脚本语言,用来给HTML网页增加动态功能.(好吧,概念什么最讨厌了) 动态: 在运行时确定数据类型.变量使用之前不 ...

随机推荐

  1. cocos2dx新建工程分析

    这里我新建了一个cocos的工程叫做hello,没有的自己翻上一页教程 运行一下  出来是这个样子的: 左下角是帧频,可以设置显示或是不显示,中间是图片精灵,右下角是关闭按钮,然后上面是一个hello ...

  2. jquery判断图片是否加载完毕

    来源: <http://www.2cto.com/kf/201409/331234.html> 利用图片没有加载完成的时候,宽高为0.我们很容易判断图片的一个加载情况.如下: 思路:判断图 ...

  3. MSI文件静默安装

    以.net4为例,以下命令为静默安装: dotNetFx40_Full_x86_x64.exe /q /norestart /ChainingPackage FullX64Bootstrapper / ...

  4. HTML 5 新标签

    HTML 5 是一个新的网络标准,目标在于取代现有的 HTML 4.01, XHTML 1.0 and DOM Level 2  HTML 标准.它希望能够减少浏览器对于需要插件的丰富性网络应用服务( ...

  5. 【Chromium中文文档】多进程资源加载

    多进程资源加载(需要更新) 转载请注明出处:https://ahangchen.gitbooks.io/chromium_doc_zh/content/zh//General_Architecture ...

  6. B2C 电商网站需要怎样的 ERP 系统

    B2C 电商网站需要怎样的 ERP 系统 主要由如下一些系统组成:1.进销存系统,你的产品的采供销当然最好是由系统来实现:2.BI系统,BI包括所有的流量.订单.商品.库存.发货等所有数据节点,亦包含 ...

  7. 如何彻底卸载sql server 2012

    好不容易装上了sql server 2012数据库,可是却不能连接本地的数据库,后来发现缺少一些服务,于是决定重新安装,但是卸载却很麻烦,如果卸载不干净的话,重新安装会出问题,所以下面就总结一些方法: ...

  8. Oracle EBS-SQL (INV-1):库存货位列表.sql

    select inventory_location_id, organization_id, description, subinventory_code, segment1 inventory_lo ...

  9. [问题解决] 程序部署到Linux服务器乱码

    错误: 在windows下开发的eclipse项目需要用java mail发送邮件,在将整个项目部署到linux服务器之后发送的邮件出现了乱码. 发生场景: Linux服务器下的Java mail程序 ...

  10. 字符串匹配——Brute-Force 简单匹配算法

    下面几篇文章记录字符串匹配算法. Brute-Force算法简称BF算法,中文名叫简单匹配算法.正如其名,简单粗暴,按部就班地遍历所有字符,算法简单,效率低下,不被看好. 但也正因为不常用,反而容易生 ...