ES6快速入门

这篇具有很好参考价值的文章主要介绍了ES6快速入门。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、ECMAScript 6.0简介

ES6快速入门,es6,javascript,开发语言
ES6快速入门,es6,javascript,开发语言

二、ES6新特性-let&字符串

ES6快速入门,es6,javascript,开发语言

1 <script>
2 const a=3
3 a=4
4 //Uncaught TypeError: Assignment to constant variable. at let&const.html:36
5
6 </script>


1 <script>
2 //var声明的变量往往会越域
3 //let声明的变量有严格的局部作用域
4 {
5 var a=1
6 let b=2
7 }
8 console.log(a)
9 console.log(b)
10 //Uncaught ReferenceError: b is not defined at let&const.html:19
11 </script>


1 <script>
2 //var可以声明多次,let只可以声明一次
3 var a=1
4 var a=3
5 let b=2
6 let b=4
7 console.log(a)
8 console.log(b)
9 //Uncaught SyntaxError: Identifier 'b' has already been declared
10 </script>


1 <script>
2 //var会变量提升
3 //let不会变量提升
4 console.log(a)
5 var a=1
6 console.log(b)
7 let b=2
8 //let&const.html:33 Uncaught ReferenceError: b is not defined at let&const.html:33
9 </script>

三、ES6新特性-结构&字符串

1 <script>
2 //数组解构
3 let arr=[1,2,3];
4
5 let d=arr[0];
6 let b=arr[1];
7 let c=arr[2];
8 let [d,b,c]=arr;
9 console.log(d,b,c);
10 </script>
1 <script>
2 //对象解构
3 let person={
4 name: "jack",
5 age: 21,
6 language: ['java','js','css'],
7
8 }
9 let {name,age,language}=person
10 console.log(name,age,language)
11 </script>
1 <script>
2 //字符串扩展
3 let str="hello.vue";
4 console.log(str.startsWith("hello"))//true
5 console.log(str.endsWith(".vue"))//true
6 console.log(str.includes("e"));//true
7 console.log(str.includes("hello"))//true
8 </script>
1 <script>
2 //字符串模板
3 let ss=`<div>
4 <a>11</a>
5 </div>`
6 console.log(ss)//<div><a>11</a></div>
7
8
9
10 </script>
1 <script>
2 let person={
3 name: "jack",
4 age: 21,
5 language: ['java','js','css'],
6
7 }
8
9 let {name,age,language}=person
10 console.log(name,age,language)
11
12 //字符串插入变量和表达式.变量名写在${},${}中可以放入js表达式
13 function fun(){
14 return "这是一个函数"
15 }
16
17 let info=`我是${name},今年${age+10},我想说${fun()}`
18 console.log(info)
19 </script>

四、ES6新特性-箭头函数

1 <script>
2
3 //函数默认值
4 //在ES6以前,我们无法给一个函数参数设置默认值,只能采用变通写法:
5 function add(a, b) {
6 // 判断b是否为空,为空就给默认值1
7 b = b || 1;
8 return a + b;
9 }
10 // 传一个参数
11 console.log(add(10));
12
13
14 //现在可以这么写:直接给参数写上默认值,没传就会自动使用默认值
15 function add2(a, b = 1) {
16 return a + b;
17 }
18 console.log(add2(20));
19
20 //可变长度参数
21 function fun(...values){
22 console.log(values.length)
23 }
24 fun(5)
25 fun(5,5,6)
26 //简单的箭头函数
27 function fun(a,b){
28 return a+b;
29 }
30 var sum=(a,b) => a+b
31 console.log(sum(11,11))
32
33
34
35 //箭头函数
36 const person={
37 name: "jack",
38 age: 21,
39 language: ['java','js','css'],
40
41 }
42 function hello (person) {
43 console.log(person.name)
44 }
45
46 let hellos=(obj) => console.log(obj.name)
47 hellos(person)//jack
48 </script>

五、ES6新特性-对象优化

1 <script>
2 // 对象的内置函数
3 const person = {
4 name: "jack",
5 age: 21,
6 language: ['java', 'js', 'css']
7 }
8
9 console.log(Object.keys(person));//["name", "age", "language"]
10 console.log(Object.values(person));//["jack", 21, Array(3)]
11 console.log(Object.entries(person));//[Array(2), Array(2), Array(2)]
12
13 // 对象合并
14 const target = { a: 1 };
15 const source1 = { b: 2 };
16 const source2 = { c: 3 };
17
18 //{a:1,b:2,c:3}
19 Object.assign(target, source1, source2);
20
21 console.log(target);//{a:1,b:2,c:3}
1 //2)、声明对象简写
2 const age = 23
3 const name = ""
4 const person1 = { age: age, name: name }
5
6 const person2 = { age, name }
7 console.log(person2);
1
2 //3)、声明对象书写方式
3 let person={
4 name: "xushu",
5 eat: function(food){
6 console.log("我吃了"+food)
7 },
8 eat1: food => console.log("我吃了"+food),
9 eat3(food){
10 console.log("我吃了"+food)
11
12 }
13 }
14 person.eat("香蕉")
15 person.eat1("苹果")
16 person.eat3("肥肠")
17 </script>
18 //对象优化.html:12 我吃了香蕉
19 //对象优化.html:14 我吃了苹果
20 ///对象优化.html:16 我吃了肥肠
1 //4)、对象拓展运算符
2 <script>
3 //拷贝对象
4 let p1={
5 name: "zlj",
6 age: 19
7 }
8 let someone={...p1}
9 console.log(someone)
10 //{name: "zlj", age: 19}
11 </script>
1 <script>
2 //对象合并
3 let name={name: "zlj"}
4 let age={age: 19}
5
6 let someone={...name,...age}
7 console.log(someone)
8 //{name: "zlj", age: 19}
9 </script>

六、map、reduce

1. map

map()方法:map,映射,即原数组映射成一个新的数组;
map方法接受一个新参数,这个参数就是将原数组变成新数组的映射关系。

1 //map():接收一个函数,将原数组中的所有元素用这个函数处理后放入新数组返回。
2 let arr = [1, 20,5, 3];
3
4 arr = arr.map((item)=>{
5 return item*2
6 });
7 arr = arr.map(item=> item*2);

2. reduce

语法:

1 arr.reduce(callback,[initialValue])

reduce为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:
初始值(或者上一次回调函数的返回值),当前元素值,当前索引,调用reduce 的数组。
callback ( 执行数组中每个值的函数,包含四个参数)
1、previousValue ( 上一次调用回调返回的值,或者是提供的初始值(initialalue) )
2、currentValue (数组中当前被处理的元素)
3、index (当前元素在数组中的索引)
4、array (调用reduce 的数组)
initialValue (作为第 一次调用callback 的第一个参数。 )

1 <script>
2 //map():接受一个函数,将原来这个数组中的所有元素处理以后返回
3
4 let arr=[1,2,3]
5 arr1=arr.map(item => item*2)
6 console.log(arr1)
7
8
9 //reduce():维数组中的每一个元素依次执行回调函数(不包括已删除的)
10 arr=arr.reduce((a,b) => {
11 console.log("上一次处理后:"+a)
12 console.log("当前正在处理:"+b)
13 return a+b
14 },1)
15 console.log(arr)
16 </script>
1 (3) [2, 4, 6]
2 map,reduce.html:18 上一次处理后:1
3 map,reduce.html:19 当前正在处理:1
4 map,reduce.html:18 上一次处理后:11
5 map,reduce.html:19 当前正在处理:2
6 map,reduce.html:18 上一次处理后:112
7 map,reduce.html:19 当前正在处理:3
8 map,reduce.html:22 1123

七、promise异步编排

ES6快速入门,es6,javascript,开发语言
ES6快速入门,es6,javascript,开发语言
ES6快速入门,es6,javascript,开发语言
ES6快速入门,es6,javascript,开发语言
我们作如上的操作发现是非常复杂的嵌套程序,无限嵌套的方式总是让人感觉到非常凌乱,不工整,我们希望
有一种操作来给他们从新编排一下,让我们感觉到操作的顺序性,逻辑性,es6就给我提供了promise功能,
如下演示

1 <head>
2 <meta charset="utf‐8">
3 //要导入script
4 <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
5 </head>
6 <script >
7 //1.promise可以封装异步操作
8 //resolve操作成功以后解析数据
9 //reject操作失败来拒绝
10 let p=new Promise((resolve,reject) => {
11 //1.异步操作
12 $.ajax({
13 url: "/mock/user.json",
14 //操作成功以后解析数据
15 sucess:function(data){
16 console.log("查询用户成功:"+data)
17 resolve(data)
18 },
19 //操作失败来拒绝
20 failure:function(err){
21 console.log("查询用户失败:"+err)
22
23 reject(err)
24 }
25 });
26 });
27 p.then((obj) => {
28 return new promise((resolve,reject) => {
29 console.log("接受到前面传来的信息:"+obj);
30 $.ajax({
31 url: "mock/user_corse_${obj.id}.json",
32 //操作成功以后解析数据
33 sucess:function(data){
34 console.log("查询用户课程成功:"+data)
35 resolve(data)
36 },
37 //操作失败来拒绝
38 failure:function(err){
39 console.log("查询用户课程失败:"+data)
40
41 reject(err)
42 }
43 })
44 })
45
46 }).then((data) => {
47 console.log("上一步的结果"+data)
48 $.ajax({
49 url: "mock/user_score_${data.id}.json",
50 //操作成功以后解析数据
51 sucess:function(data){
52 console.log("查询用户课程分数成功:"+data)
53 resolve(data)
54 },
55 //操作失败来拒绝
56 failure:function(err){
57 console.log("查询用户课程分数失败:"+data)
58
59 reject(err)
60 }
61 })
62 })
63 </script>

我们对上面的方法进行改造,把ajax的请求封装成一个方法,并返回.

1 <script>
2 //对上面的方法进行封装
3 function get(url,data){
4 return new Promise((resolve,reject) => {
5 $.ajax({
6 url: url,
7 data: data,
8 //操作成功以后解析数据
9 sucess:function(data){
10 console.log("查询用户课程分数成功:"+data)
11 resolve(data)
12 },
13 //操作失败来拒绝
14 failure:function(err){
15 console.log("查询用户课程分数失败:"+data)
16
17 reject(err)
18 }
19 })
20 })
21 }
22
23 get("mock/user.json")
24 .then( (data) => {
25 console.log("用户查询成功‐‐‐‐‐")
26 return get("mock/user_corse_${data.id}",data)
27 })
28 .then((data) => {
29 console.log("用户课程查询成功‐‐‐‐‐‐")
30 return get("mock/user_score_${data.id}",data)
31 })
32 .then((data)=>{
33 console.log("用户课程成绩查询成功‐‐‐‐‐‐‐")
34
35 })
36 </script>

八、模块化

1. 什么是模块化

模块化就是把代码进行拆分,方便重复利用。类似java中的导包:要使用一一个包,必须先导包。而JS中没有包
的概念,换来的是模块。
在ES6中每一个模块即是一个文件,在文件中定义的变量,函数,对象在外部是无法获取的模块功能主要由两个命令构成: ‘export’ 和import’。
'export’命令用于规定模块的对外接口,如果你希望外部可以读取模块当中的内容,就必须使用
export来对其进行暴露(输出)
export`不仅可以导出对象,一切JS变量都可以导出。比如:基本类型
变量、函数、数组、对象。
import 命令永固导入模块
hello.js

1 // 到处指定组件
2 export const util = {
3 sum(a, b) {
4 return a + b;
5 }
6 }
7
8 // 到处默认组件
9 export default {
10 sum(a, b) {
11 return a + b;
12 }
13 }

user.js

1 var name = "jack"
2 var age = 21
3 function add(a,b){
4 return a + b;
5 }
6
7 export {name,age,add}

main.js

1 import abc from "./hello.js"
2 import {name,add} from "./user.js"
3
4 abc.sum(1,2);
5 console.log(name);
6 add(1,3);

注:
1.模块化一定要以web服务器方式运行
2.如果要在html中运行要在<script 加上 type=“module”文章来源地址https://www.toymoban.com/news/detail-796049.html

到了这里,关于ES6快速入门的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JavaScript Es6_3笔记

    了解构造函数原型对象的语法特征,掌握 JavaScript 中面向对象编程的实现方式,基于面向对象编程思想实现 DOM 操作的封装。 了解面向对象编程的一般特征 掌握基于构造函数原型对象的逻辑封装 掌握基于原型对象实现的继承 理解什么原型链及其作用 能够处理程序异常提升程

    2024年02月11日
    浏览(51)
  • 【ES6】JavaScript中的Symbol

    Symbol是JavaScript中的一种特殊的、不可变的、不可枚举的数据类型。它通常用于表示一个唯一的标识符,可以作为对象的属性键,确保对象的属性键的唯一性和不可变性。 Symbol.for()是Symbol的一个方法,它用于创建一个已经注册的Symbol对象。当使用Symbol.for()创建Symbol对象时,会

    2024年02月10日
    浏览(45)
  • JavaScript版本ES5/ES6及后续版本

    Brendan Eich在短短10天内创建了JavaScript的第一个版本。它被称为摩卡,但已经具备了现代JavaScript的许多基本特性! 为了吸引Java开发人员,Mocha先是更改为LiveScript,然后又更改为JavaScript然而,JavaScript与Java几乎没有任何关系; 微软推出了IE,从网景复制JavaScript,并称之为JScript; 由

    2024年02月13日
    浏览(48)
  • JavaScript:ES6中类与继承

    在JavaScript编程中,ES6引入了一种更现代、更清晰的方式来定义对象和实现继承,那就是通过类和继承机制。本文将以通俗易懂的方式解释ES6中类与继承的概念,帮助你更好地理解和应用这些特性。 1. 类的创建与使用 类是一种模板,用于创建对象。在ES6中,我们可以使用 cl

    2024年02月13日
    浏览(44)
  • JavaScript之ES6高级语法(一)

    本文是我在学习过程中记录学习的点点滴滴,目的是为了学完之后巩固一下顺便也和大家分享一下,日后忘记了也可以方便快速的复习。 今天学习的主要是关于ES6新语法知识的理解和应用 栈负责存放简单数据类型,堆负责存放复杂数据类型,但是复杂数据类型会把内容存在

    2024年02月09日
    浏览(52)
  • 【Javascript】ES6新增之类的认识

    在现代编程语言中,类是面向对象编程范式中的核心概念之一。 与函数类似,类本质上是一种特殊的函数,它允许我们将数据和操作封装在一起,以创建具有共同行为和状态的对象。 在类的世界里,我们有类表达式和类声明,它们各自具有自己的特性和用途。 ✨ 类本质上是

    2024年02月13日
    浏览(44)
  • JavaScript学习笔记01(包含ES6语法)

    Js 最初被创建的目的是“使网页更生动”。 Js 写出来的程序被称为 脚本 ,Js 是一门脚本语言。 被直接写在网页的 HTML 中,在页面加载的时候自动执行 脚本被以纯文本的形式提供和执行,不需要特殊的准备或编译即可运行(JIN compiler) Js 不仅可以在浏览器中执行,也可以在

    2024年02月16日
    浏览(54)
  • 【ES6】 JavaScript 中的Object.assign

    Object.assign() 是 JavaScript 中的一个方法,它用于复制源对象的所有可枚举属性到目标对象。该方法会返回目标对象。 这是其基本用法: 在这个例子中,source 对象的所有可枚举属性都被复制到了 target 对象。 需要注意的是,Object.assign() 是浅复制(shallow copy),意味着如果源对

    2024年02月10日
    浏览(53)
  • 15 JavaScript ES6中的箭头函数

    15 JavaScript ES6中的箭头函数 什么是箭头函数 ES6中允许使用=来定义函数。箭头函数相当于匿名函数,并简化了函数定义。 基本语法 箭头函数在语法上比普通函数简洁多。箭头函数就是采用箭头=来定义函数,省去function。 函数的参数放在=前面的括号中,函数体跟在=后的

    2024年02月12日
    浏览(49)
  • JavaScript、TypeScript、ES5、ES6之间的联系和区别

    ECMAScript:  一个由 ECMA International 进行标准化,TC39 委员会进行监督的语言。通常用于指代标准本身。 JavaScript:  ECMAScript 标准的各种实现的最常用称呼。这个术语并不局限于某个特定版本的 ECMAScript 规范,并且可能被用于任何不同程度的任意版本的 ECMAScript 的实现。 ECMAS

    2024年02月13日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包