entries
keys
values
is
assign
create
toSting
Proety
defineProperty(obj,key,propety)

Object.entries(),Object.keys(),Object.values()

理解:获取对象的key、value,组成的数组
使用:
参数:
返回值:转换之后的数组

    let obj1 = {'a':1,"b":2,"c":3};
let res1 = Object.entries(obj1);
let res2 = Object.keys(obj1);
let res3 = Object.values(obj1); console.log('返回值',res1); //["a", 1], ["b", 2], ["c", 3]]
console.log('返回值',res2); //["a", "b", "c"]
console.log('返回值',res3); //[1, 2, 3]

Object.is()

理解:判断传入的两个参数是否相等
返回值:返回布尔值
注意值:可以区分NAN

    let obj1 = {'a':1,"b":2,"c":3};
let res1 = Object.is("a","b");
let res2 = Object.is(NaN, NaN) console.log('返回值',res1); //false
console.log('返回值',res2); //true

Object.assign()

理解:合并对象,将第二个及后面的参数合并到第一个参数上
返回值:合并之后的第一个参数
原对象:改变

    let obj1 = {'a':1,"b":2,"c":3};
let res1 = Object.assign(obj1,{'o':99}); let obj2 = {'a':1,"b":2,"c":3};
let res2 = Object.assign({},obj1,{'o':99}); console.log('原数组',obj1); //{a: 1, b: 2, c: 3, o: 99}
console.log('返回值',res1); //{a: 1, b: 2, c: 3, o: 99} console.log('原数组',obj2); //{a: 1, b: 2, c: 3}
console.log('返回值',res2); //{a: 1, b: 2, c: 3, o: 99}

Object.create()

理解:创建对象,并将对象的__proto__属性上添加对象,对象是传入的参数
返回值:新创建的对象

    let obj = {
x : 1,
y : 2,
z :3,
name : 'abc',
study : function () {
console.log(this.name)
}
} let newObj = Object.create(obj);
console.dir(newObj);

Object.Proety()

理解:对象代理,通过对象代理可以获取指定的对象属性和方法

    let newObj = (function(){
let obj = {
x : 10,
y : 100,
z : 1000
}
return new Proxy(obj,{
get(obj,property){
if (property != 'x'){
return obj[property]
}
}
})
})();
console.log(newObj.x) //undefined
console.log(newObj.y) //

Object.prototype.toString

理解:转换成字符串

   let a = Object.prototype.toString;

    console.log(a.call("aaa"));                     //[object String]
console.log(a.call(1)); //[object Number]
console.log(a.call(true)); //[object Boolean]
console.log(a.call(null)); //[object Null]
console.log(a.call(undefined)); //[object Undefined]
console.log(a.call([])); //[object Array]
console.log(a.call(function() {})); //[object Function]
console.log(a.call({})); //[object Object]

属性的遍历

ES6 一共有 5 种方法可以遍历对象的属性。
 
(1)for...in
 
for...in循环遍历对象自身的和继承的可枚举属性(不含 Symbol 属性)。
 
(2)Object.keys(obj)
 
Object.keys返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含 Symbol 属性)的键名。
 
(3)Object.getOwnPropertyNames(obj)
 
Object.getOwnPropertyNames返回一个数组,包含对象自身的所有属性(不含 Symbol 属性,但是包括不可枚举属性)的键名。
 
(4)Object.getOwnPropertySymbols(obj)
 
Object.getOwnPropertySymbols返回一个数组,包含对象自身的所有 Symbol 属性的键名。
 
(5)Reflect.ownKeys(obj)
 
Reflect.ownKeys返回一个数组,包含对象自身的所有键名,不管键名是 Symbol 或字符串,也不管是否可枚举。
 
以上的 5 种方法遍历对象的键名,都遵守同样的属性遍历的次序规则。
 
首先遍历所有数值键,按照数值升序排列。
其次遍历所有字符串键,按照加入时间升序排列。
最后遍历所有 Symbol 键,按照加入时间升序排列。

对象的API的更多相关文章

  1. request对象常用API 获取请求参数的值 request应用 MVC设计模式

    1 request对象常用API   1)表示web浏览器向web服务端的请求   2)url表示访问web应用的完整路径:http://localhost:8080/day06/Demo1     ...

  2. JavaScript 对象所有API解析【2020版】

    JavaScript 对象所有API解析[2020版] 写于 2019年08月20日,虽然是2019年写的文章,但现在2020年依旧不过时,现在补充了2019年新增的ES10 Object.fromE ...

  3. JSP - 9大内置对象及其API

    内置对象:不需要预先声明就可以在脚本代码和表达式中随意使用,有以下特点 1.由JSP规范提供,不用编写者实例化 2.提供Web容器实现和管理 3.所有JSP页面均可用 4.只有在脚本元素的表达式或者代 ...

  4. js学习---常用的内置对象(API)小结 :

    内置对象(API): 日期 Date: getFullYear() 返回完整的4位的年份  如:2016 getMonth()    返回月份,从0开始 getDate()   返回当前月的第几天,当 ...

  5. grunt对象之api

    grunt已经扯了七篇了,殊为不易.最后一篇扯点早应该提及的东西,就是module.exports = function(grunt) {}传入的这个grunt.之前的代码grunt一般只出现在Gru ...

  6. JQUERY-事件-动画-类数组对象-添加自定义API

    正课: 1. 事件: 2. 动画: 3. 类数组对象操作: 4. 添加自定义API: 1. 事件: 1. 页面加载后执行: 2个时机 1. DOM内容加载完成: 仅包括html, js DOMCont ...

  7. 字符串、数组、对象常用API

    常用的字符串API  1.常见方法和属性 length 属性,获取字符串的字符数量 charAt(i) 返回给定位置的字符 charCodeAt( ) 返回给定位置的字符的字符编码 <scrip ...

  8. Servlet中常用对象及API类之间的关系

    Servlet最常用的对象: 请求对象:ServletRequest和HttpServletRequest,通过该对象获取来自客户端的请求信息 响应对象:ServletResponse和HttpSer ...

  9. 数组和对象常用API

    数组API: 1. forEach 遍历所有元素 var arr = [1,2,3] arr.forEach(function(item,index){ // 遍历数组的所有元素 console.lo ...

  10. Java 其他对象的 API

    System 类 (java.lang 包下) 该类中的方法和属性都是静态的. 常见方法 // 1, 获取当前时间的毫秒值 long currentTimeMillis(); // 2, 获取系统的属 ...

随机推荐

  1. 作业二:构建swap函数

    一.swap代码 #include<stdio.h> int main() //主函数部分 { void swap(int *m,int *n); int a,b; int *p1,*p2 ...

  2. maya模板lock工具

    #lockTemple import  maya.cmds  as  mcimport stringif  mc.window('LockWin',ex=1)==1:    mc.deleteUI(' ...

  3. 配置https and http2 local本地开发环境

    今天,几乎所有你访问的网站都是受HTTPS保护的.如果你还没有这样做,是时候这样做了.使用HTTPS保护您的服务器也就意味着您无法从非HTTPS的服务器发送请求到此服务器.这对使用本地开发环境的开发人 ...

  4. PYTHON的前端部分

    CSS部分,CSS起到修饰HTML的作用比如颜色,字体,等等. css如何和HTML共同其作用,那么CSS有几种引入HTML的方式 那么当引入了CSS如何让css对应的使相应的HTML标签上起作用,就 ...

  5. himm的使用

    1.设置管脚复用 himm 0x200F0100 1 himm 0x200F0104 1 2.设置GPIO_DIR himm 0x201C0400 0xff 3.设置GPIO_DATA himm 0x ...

  6. tcpdump+wireshark抓包分析

    上一篇文章中,我们介绍了tcpdump如何抓包. tcpdump是命令行下便捷的抓包和分析工具,但使用方式不够友好, wireshark是带图形化界面的抓包和分析工具,操作简便,但需要主机有显示器. ...

  7. ubuntu安装yaf

    ubuntu 下PHP安装yaf扩展,需要先安装其他软件 sudo apt-get install libncurses5-dev libpcre3-dev pcre-devel -y 然后再执行 p ...

  8. Redis类的源码使用

    $redis = new Redis(); //连接redis服务器 $redis->connect('127.0.0.1', '6379'); $key = "key"; ...

  9. php7带来的性能升级

    前言本文是一篇讲座听后+后续研究的总结. 话说当年追时髦,php7一出就给电脑立马装上了,php5和php7共存,也是立马写了个超级耗时间的循环脚本测了一番,确实php7给力很多,然后也是注意了一些新 ...

  10. Solr4.7.0连接PostgreSQL

    1.把PostgreSQL的Jar包  例如:postgresql-9.1-901-1.jdbc4.jar  或其他版本 放到D:\apache-tomcat-7.0.57\webapps\solr\ ...