ES6基本知识点

目录

1.对象优化

1.1 新增API

1.2 object.assign方法的第一个参数是目标对象,后面的参数都是源对象

1.3 声明对象简写

1.4 对象的函数属性简写

1.5 对象拓展运算符

2.map和reduce

2.1 数组中新增的map和reduce方法

 3 promise

3.1 promise封装异步操作

4.模块化

4.1 什么是模块化

4.2 export

4.3 import

4.4 测试代码


1.对象优化

1.1 新增API

ES6给Object新增了很多的新方法

如:

keys(obj):获取对象的所有key形成的数组

values(obj):获取对象的所有value形成的数组
entries(obj):获取对象的所有 key和 value形成的二维数组。格式:'[[k1,v1],[k2,v2]..]·

assign(dest....src):将多个src.对象的值拷贝到 dest中。(第一层为深拷贝,第二层为浅拷贝)
代码示例:

    const person={name:"jack",age:18,language:['java','js','css']}console.log(Object.keys(person));console.log(Object.values(person));console.log(Object.entries(person));

1.2 object.assign方法的第一个参数是目标对象,后面的参数都是源对象

    const target={a:1};const source1={b:2};const source2={c:3};Object.assign(target,source1,source2);console.log(target);

1.3 声明对象简写

    const age=18;const name='wangzezheng';const person1={age,name};console.log(person1);

1.4 对象的函数属性简写

    //对象的函数属性简写let person3 = {name: "jack",//以前:eat: function (food) {console.log(this.name +"在吃"+ food);},//箭头函数this不能使用,对象.属性eat2: food => console. log(person3.name +"在吃"+food),eat3(food){console. log(person3.name +"在吃"+food)}}person3.eat("香蕉");person3.eat2("苹果");person3.eat3("栗子");

1.5 对象拓展运算符

拓展运算符(...)用于取出参数对象所有可遍历属性然后拷贝到当前对象。

    //拷贝对象const person={name:"jack",age:18,language:['java','js','css']}//合并对象let someone={...person};console.log(someone);let age={age:15}let name={name:'wang'}let person2={...age,...name}console.log(person2);

2.map和reduce

2.1 数组中新增的map和reduce方法

    let arr=['1','20','30','-1','89'];arr=arr.map(item=>item*2);console.log(arr);//[2, 40, 60, -2, 178]let result=arr.reduce((a,b)=>{console.log('上一次处理的:'+a);console.log('当前正在处理的:'+b);return a+b;});console.log(result);

 

 3 promise

3.1 promise封装异步操作

 

 

  <script>// $.ajax({//   url:"user.json",//   success(data){//     console.log("查询用户:",data);//     $.ajax({//       url:`user_core_${data.id}.json`,//       success(data){//         console.log("查询到课程:",data);//         $.ajax({//           url:`corse_score_10.json`,//           success(data){//             console.log("查询到的分数:",data);//           },//           error(error){//             console.log("出现异常了:",error);//           }//         })//       },//       error(error){//             console.log("出现异常了:",error);//           }//     })//   },//   error(error){//             console.log("出现异常了:",error);//   }// })// //promise封装异步请求//   let p=new Promise((resolve,reject)=>{//     $.ajax({//       url:"user.json",//       success:function(data){//         console.log("查询用户成功:",data);//         resolve(data);//       },//       error:function(err){//         reject(err);//       }//     });//   });//   p.then((obj)=>{//     return new Promise((resolve,reject)=>{//       $.ajax({//       url:`user_core_1.json`,//       success:function(data){//         console.log("查询用户课程成功:",data);//          resolve(data);//       },//       error:function(err){//         reject(err);//       }//     });//   })// }).then((data)=>{//   console.log("上一步的结果:",data);// })function get(url,data){return new Promise((resolve,reject)=>{$.ajax({url:url,success:function(data){// console.log("查询用户课程成功:",data);resolve(data);},error:function(err){reject(err);}});})
}  get("user.json").then((data)=>{console.log("用户查询成功:",data);return get(`user_core_${data.id}.json`);}).then((data)=>{console.log("课程查询成功:",data);return get("corse_score_10.json");}).then((data)=>{console.log("课程成绩查询成功:",data);})</script>

4.模块化

4.1 什么是模块化

模块化就是把代码进行拆分,方便重复利用。类似java中的导包:

要使用一个包,必须先导包。

而Js 中没有包的概念,换来的是模块。
模块功能主要由两个命令构成:‘export`和`import'。

  • 'export`命令用于规定模块的对外接口。 出口命令用于规定模块的对外接口。
  • 'import'命令用于导入其他模块提供的功能。 “进口”命令用于导入其他模块提供的功能。
     

4.2 export

// const util={
//   sum(a,b){
//     return a+b;
//   }
// }
// export{util}export const util={sum(a,b){return a+b;}
}
//util不仅可以导出对象,一切js变量都可以导出,比如:基本类型变量,函数,数组,对象。

4.3 import

import util from '../js/hello'

4.4 测试代码

import util from '../js/hello'var a=util(1,2);
console.log(a);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/19105.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机械臂的雅克比矩阵推导

1. 线速度和角速度的递推通式推导 p i p i − 1 R i − 1 r i − 1 , i i − 1 \mathbf{p}_{i}\mathbf{p}_{i-1}\mathbf{R}_{i-1} \mathbf{r}_{i-1, i}^{i-1} pi​pi−1​Ri−1​ri−1,ii−1​ p i − 1 \mathbf{p}_{i-1} pi−1​是 { i − 1 } \{i-1\} {i−1}坐标系的原点的…

5.EFLK(ELK+filebeat)+filter过滤

文章目录 EFLK&#xff08;ELKfilebeat&#xff09;部署filebeat修改配置文件logstash配置 logstash的filter过滤grok(正则捕获插件)内置正则表达式调用自定义表达式 mutate(数据修改插件)重命名字段添加字段删除字段转换数据类型替换字段内容以"|"为分割符拆分数据成…

服务器数据库中了360后缀勒索病毒怎么办,怎么解决与防范?

随着网络攻击的不断增加&#xff0c;服务器中受到360后缀勒索病毒的威胁也日益严重。360后缀勒索病毒是beijingcrypt勒索家族中的病毒&#xff0c;该病毒采用了复杂的加密程序&#xff0c;一旦被该病毒攻击&#xff0c;它会将会对服务器上的所有文件进行加密&#xff0c;并要求…

残差网络(ResNet) -深度学习(Residual Networks (ResNet) – Deep Learning)

在第一个基于cnn的架构(AlexNet)赢得ImageNet 2012比赛之后&#xff0c;每个随后的获胜架构都在深度神经网络中使用更多的层来降低错误率。这适用于较少的层数&#xff0c;但当我们增加层数时&#xff0c;深度学习中会出现一个常见的问题&#xff0c;称为消失/爆炸梯度。这会导…

开发环境可运行,发包后报错(nginx代理出现了问题)

场景&#xff1a; vue项目首次发包... 后端服务发包完毕&#xff0c;apifox测试接口没问题、前端开发环境连服务也没问题... 前端项目打包,提前配置nginx&#xff0c;前端发包... 打开网页&#xff0c;登录接口正常&#xff0c;登录后其他接口报错... 查看报错信息&#xff1a;…

【LeetCode周赛】2022上半年题目精选集——数学

文章目录 2183. 统计可以被 K 整除的下标对数目⭐⭐⭐⭐⭐思路——数论&#xff08;一个数乘上另一个数x是k的倍数&#xff0c;x最小是多少&#xff1f;&#xff09;代码1——统计每个数的因子代码2——统计k的因子 2245. 转角路径的乘积中最多能有几个尾随零思路&#xff08;因…

【雕爷学编程】Arduino动手做(138)---64位WS2812点阵屏模块2

37款传感器与执行器的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&am…

STM32的MAP文件

1. MAP文件是什么&#xff1f;有什么作用&#xff1f; MAP文件是 MDK编译代码后&#xff0c;产生的集程序、数据及IO空间的一种映射列表文件。简单来说就是包括了&#xff1a;各种.c文件、函数、符号等的地址、大小、引用关系等信息。 作用&#xff1a; 用于分析各.c文件占用…

SpringBoot高频面试题

2023最新版&#xff08;持续更新&#xff09; SpringBoot高频面试题1. SpringBoot的自动配置原理1. SpringBoot的常见注解有哪些&#xff1f; SpringBoot高频面试题 1. SpringBoot的自动配置原理 前置知识 SpringBoot中&#xff0c;在启动类上的SpringBootApplication注解中的…

java.lang.UnsatisfiedLinkError: no opencv_java410 in java.library.path

-Djava.library.pathhome/zwf/eclipse-workspace/DIPS_YTPC/lib/opencv-410/x64/

机器学习总览

机器学习 1.什么是机器学习?2.机器学习的应用3.怎么实现机器学习?1、NumPy库2.Matplotlib库1.什么是机器学习? 机器学习是使计算机像人类一样学习与行动的科学,并通过观察与现实世界交互的形式向计算机提供数据和信息,从而随着时间的推移以自主的方式改善其学习。通过经验…

分布式负载均衡 Ribbon

一、Ribbon简介 是Netfix发布的负载均衡&#xff0c;Eureka一般配合Ribbon进行使用&#xff0c;基于HTTP和TCP的客户端负载均衡工具。 只有负载均衡的能力&#xff0c;不具有发送请求的能力&#xff0c;要配合服务通信组件。 RestTemplate 针对各种类型的 HTTP 请求都提供了相…