Web前端模块化开发教程全套ppt课件最全电子教案完整版教学教程整套全书课件ppt.pptx
《Web前端模块化开发教程全套ppt课件最全电子教案完整版教学教程整套全书课件ppt.pptx》由会员分享,可在线阅读,更多相关《Web前端模块化开发教程全套ppt课件最全电子教案完整版教学教程整套全书课件ppt.pptx(1019页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第1章 ES6基础Web前端模块化开发教程(ES6+Node.js+Webpack)学习目标/Target 了解ES6的概念,能够对ES6有一个初步的认识 掌握let和const关键字的使用,能够选择合适的关键字声明变量 掌握解构赋值的使用,能够实现数组或对象的解构赋值 掌握箭头函数的使用,能够正确使用this关键字 掌握剩余参数的使用,能够正确获取剩余参数学习目标/Target 掌握扩展运算符的使用,能够实现数组合并,以及将伪数组转换为真正的数组 掌握模板字符串的使用,能够实现变量解析、换行和调用函数等操作 掌握ES6内置对象扩展的使用,能够实现数组和字符串的处理 掌握Set数据结构和Sym
2、bol的基本使用,能够实现数据的操作章节概述/ SummaryECMAScript是由ECMA国际标准化组织制定的一项脚本语言的标准化规范,ES6表示ECMAScript规范的第6版,它的正式名称为ECMAScript 2015,这个版本中新增了很多实用的语法规范。近几年,ECMAScript的更新速度很快,每年都会发布一个新版本。本章将详细讲解ES6常用的语法规范。目录/Contents010203初识ES6let和const关键字解构赋值0405箭头函数剩余参数目录/Contents060708扩展运算符模板字符串ES6的内置对象扩展0910Set数据结构初识Symbol初识ES61.1
3、先定一个小目标!了解ES6的概念,能够对ES6有一个初步的认识初识ES6初识ES6ES6的目标是使JavaScript语言可以适应更复杂的应用,实现代码库之间的共享,并迭代维护新版本,成为企业级开发语言。ECMAScript和JavaScript语言,两者之间存在的关系。简单来说,ECMAScript是JavaScript语言的国际标准,JavaScript是实现ECMAScript标准的脚本语言。ES6历史发展初识ES62011年,ECMA国际标准化组织在发布ECMAScript 5.1版本之后,就开始着手制定第6版规范。存在的问题:这个版本引入的语法功能太多,而且制定过程当中,还有很多组织
4、和个人不断提交新功能。很明显,在一个版本中不可能包含所有的要引入的新功能,这些功能要被发布在不同的版本中。解决方法:标准的制定者决定在每年的6月份发布一次新标准,并且使用年份作为版本号。初识ES6年份版本简称2015年6月ECMAScript 2015ES62016年6月ECMAScript 2016ES72017年6月ECMAScript 2017ES82018年6月ECMAScript 2018ES92019年6月ECMAScript 2019ES102020年6月ECMAScript 2020ES11ECMAScript各版本的发布时间let和const关键字1.2 先定一个小目标!掌握
5、let关键字,能够正确使用let关键字声明变量1.2.1 let关键字1.2.1 let关键字let是ES6中新增的用于声明变量的关键字。在ES6之前,我们使用var关键字来声明变量。与var关键字相比,let关键字有一些新的特性。let关键字的新的特性:l let关键字声明的变量只在所处的块级作用域有效。l let关键字声明的变量不存在变量提升。l let关键字声明的变量具有暂时性死区特性。1. let关键字声明的变量只在所处的块级作用域有效 if (true) let a = 10; console.log(a);/ 输出结果:10 console.log(a);/ 报错,a未定义1.2.
6、1 let关键字第1个好处:防止代码块内层变量覆盖外层变量 for (let i = 0; i 2; i+) console.log(i);/ 报错,i未定义1.2.1 let关键字第2个好处:防止循环变量变成全局变量1. let关键字声明的变量只在所处的块级作用域有效1.2.1 let关键字在使用var关键字声明变量时,变量可以先使用再声明,这种现象就是变量提升。但一般的编程习惯,变量应该在声明之后才可以使用。在ES6中,变量的使用规范更加严格,使用let关键字声明的变量只能在声明之后才可以使用,否则就会报错。2. let关键字声明的变量不存在变量提升 console.log(a);/ 报错
7、,a未初始化 let a = 10; 1.2.1 let关键字不存在变量提升的代码演示2. let关键字声明的变量不存在变量提升1.2.1 let关键字使用let关键字声明的变量具有暂时性死区特性。这是因为let关键字声明的变量不存在变量提升,其作用域都是块级作用域,在块级作用域内使用let关键字声明的变量会被整体绑定在这个块级作用域中形成封闭区域,不再受外部代码影响。所以在块级作用域内,使用let关键字声明变量之前,该变量都是不可用的。这在语法上,称为“暂时性死区”。3. let关键字声明的变量具有暂时性死区 var num = 10; if (true) console.log(num);
8、/ 报错,无法在初始化之前访问num let num = 20; 1.2.1 let关键字暂时性死区的代码演示3. let关键字声明的变量具有暂时性死区 先定一个小目标!掌握const关键字,能够利用const关键字声明常量1.2.2 const关键字1.2.2 const关键字const是ES6中新增的用于声明常量的关键字。所谓常量就是值(内存地址)不能变化的量。const关键字声明的常量的特点:l const关键字声明的常量具有块级作用域。l const关键字声明常量时必须赋值。l const关键字声明常量并赋值后常量的值不能修改。1. const关键字声明的常量具有块级作用域 if (t
9、rue) const a = 10; console.log(a);/ 输出结果:10 console.log(a);/ 报错,a未定义1.2.2 const关键字演示const关键字声明的常量块级作用域效果2. const关键字声明常量时必须赋值1.2.2 const关键字演示const关键字声明常量时不赋值的情况 const PI;/ 报错,常量PI未赋值 const PI = 3.14; PI = 100;/ 报错,无法对常量赋值3. const关键字声明常量并赋值后常量的值不能修改1.2.2 const关键字(1)对于基本数据类型(如数值、字符串),一旦赋值,值就不可修改。 const
10、 ary = 100, 200; ary0 = a; ary1 = b; console.log(ary); / 可以更改数组内部的值,结果为a, b ary = a, b; / 报错,无法对常量赋值1.2.2 const关键字(2)对于复杂数据类型(如数组、对象),虽然不能重新赋值,但是可以更改内部的值。3. const关键字声明常量并赋值后常量的值不能修改 先定一个小目标!了解let、const、var关键字之间的区别,能够说出3点区别1.2.3 let、const、var关键字之间的区别1.2.3 let、const、var关键字之间的区别使用var关键字声明的变量,其作用域为该语句所在
11、的函数内,且存在变量提升现象。使用let关键字声明的变量和使用const关键字声明的常量都具有块级作用域。变量的作用域范围不同使用var关键字声明的变量存在变量提升,可以先使用再声明。使用let关键字声明的变量和const关键字声明的常量不存在变量提升功能,只能先声明再使用。变量提升使用var关键字和let关键字声明的变量,可以更改变量的值,但使用const关键字声明的常量,不能更改常量值对应的内存地址。值是否可以更改let、const、var关键字之间的区别1.2.3 let、const、var关键字之间的区别在编写程序的过程中,如果要存储的数据不需要更改,建议使用const关键字,如函数的
12、定义、 值或数学公式中一些恒定不变的值。由于使用const声明的常量,其值不能更改,且JavaScript解析引擎不需要实时监控值的变化,所以使用const关键字要比let关键字效率更高。解构赋值1.3 先定一个小目标!掌握数组的解构赋值,能够对数组进行解构赋值操作1.3.1 数组的解构赋值1.3.1 数组的解构赋值解构表示对数据结构进行分解,赋值指变量的赋值。在ES6中,允许按照一一对应的方式,从数组或对象中提取值,然后将提取出来的值赋给变量。解构赋值的优点是它可以让编写的代码简洁易读,语义更加清晰,并且可以方便地从数组或对象中提取值。1.3.1 数组的解构赋值数组的解构赋值,就是将数组中的
13、值提取出来,然后赋值给另外的变量。 let a, b, c = 1, 2, 3; console.log(a);/ 输出结果:1 console.log(b);/ 输出结果:2 console.log(c);/ 输出结果:3变量的数量和数组中值的数量相一致的情况1.3.1 数组的解构赋值 let a, b, c, d = 1, 2, 3; console.log(a);/ 输出结果:1 console.log(b);/ 输出结果:2 console.log(c);/ 输出结果:3 console.log(d);/ 输出结果:undefined变量的数量和数组中值的数量不一致的情况 先定一个小目
14、标!掌握对象的解构赋值,能够为对象进行解构赋值操作1.3.2 对象的解构赋值1.3.2 对象的解构赋值对象解构允许使用变量的名字匹配对象中属性,如果匹配成功就将对象中属性的值赋值给变量。 let person = name: zhangsan, age: 20 ; let name, age = person;/ 解构赋值 console.log(name);/ 输出结果:zhangsan console.log(age);/ 输出结果:20对象解构的示例代码变量的名字具体被解构的对象1.3.2 对象的解构赋值使用另外一种形式去实现对象的解构赋值,该形式支持变量的名字和对象中属性的名字不一样的
15、情况,等号左边的大括号代表对象解构。 let person = name: zhangsan, age: 20, sex: 男 ; let name: myName = person; console.log(myName); / zhangsan对象解构的另一种形式属性名:变量名具体被解构的对象箭头函数1.4 先定一个小目标!熟悉箭头函数的语法,能够正确写出箭头函数1.4.1 箭头函数的语法1.4.1 箭头函数的语法箭头函数是ES6中新增的函数,它用于简化函数的定义语法,有自己的特殊语法,接收一定数量的参数,并在其封闭的作用域的上下文(即定义它们的函数或其他代码)中操作。() = 箭头函数基
16、本语法ES6中,箭头函数的基本语法1.4.1 箭头函数的语法箭头函数以小括号开头,在小括号中可以放置参数。小括号的后面要跟着箭头(=),箭头后面要写一个大括号来表示函数体,这是箭头函数的固定语法。箭头函数调用:因为箭头函数没有名字,我们通常的做法是把箭头函数赋值给一个变量,变量名就是函数名,然后通过变量名去调用函数即可。 const fn = () = console.log(123);/ 输出结果:123 ; fn();/ 函数调用定义没有参数的箭头函数1.4.1 箭头函数的语法 先定一个小目标!熟悉箭头函数的特点,能够说出箭头函数的具体特点1.4.2 箭头函数的特点1.4.2 箭头函数的特
17、点 const sum = (num1, num2) = num1 + num2; / 等价于 / const sum = (num1, num2) = / return num1 + num2; / ; const result = sum(10, 20); / 使用result接收sum()函数执行的结果 console.log(result); / 在控制台输出result值,结果为30计算两个数值相加的结果特点1: 省略大括号在箭头函数中,如果函数体中只有一句代码,且代码的执行结果就是函数的返回值,此时可以省略函数体大括号。1.4.2 箭头函数的特点 / 传统的函数定义方式 / fun
18、ction fn(v) / return v; / / ES6中函数定义方式 const fn = v = v;只有一个参数的函数定义方式特点2: 省略参数外部的小括号在箭头函数中,如果参数只有一个,可以省略参数外部的小括号。1.4.2 箭头函数的特点 const fn = v = alert(v); ; fn(20);示例代码定义带有一个参数的函数,并在浏览器的弹出框中弹出参数值。特点2: 省略参数外部的小括号 先定一个小目标!掌握箭头函数中的this关键字,能够在箭头函数中正确使用this关键字1.4.3 箭头函数中的this关键字1.4.3 箭头函数中的this关键字ES6前,JavaS
19、cript的this关键字指向的对象是在运行时基于函数的执行环境绑定的,在全局函数中,this指向的是window;当函数被作为某个对象的方法调用时,this就指向那个对象。ES6中,箭头函数不绑定this关键字,它没有自己的this关键字,如果在箭头函数中使用this关键字,那么this关键字指向的是箭头函数定义位置的上下文this。也就是说,箭头函数被定义在哪,箭头函数中的this就指向谁。1.4.3 箭头函数中的this关键字箭头函数解决了this执行环境所造成的一些问题,如解决了匿名函数this指向的问题(匿名函数的执行环境具有全局性),包括setTimeout()和setInterv
20、al()中使用this所造成的问题。 const obj = name: zhangsan ; function fn() console.log(this); / 输出结果:name: zhangsan return () = console.log(this); / 输出结果:name: zhangsan ; / call()方法可以改变函数内部的this指向,将函数fn()内部的this指向obj对象 const resFn = fn.call(obj); resFn();1.4.3 箭头函数中的this关键字演示ES6中this的指向,示例代码剩余参数1.5 先定一个小目标!熟悉剩余参
21、数的语法,能够在程序中正确获取剩余参数1.5.1 剩余参数的语法1.5.1 剩余参数的语法剩余参数是指在函数中,当函数实参个数大于形参个数时,剩余的实参可以存放到一个数组中。剩余参数语法允许将一个不确定数量的参数表示为数组。这种不确定参数的定义方式对于声明一个具有未知参数个数的函数非常方便。1.5.1 剩余参数的语法剩余参数是程序员自定义的一个普通标识符,接收剩余参数的变量是一个数组(Array的实例),能够直接使用所有的数组方法,如 sort()、map()、forEach()或pop()方法等。 function sum(first, .args) console.log(first);
22、/ 输出结果:10 console.log(args); / 输出结果:20, 30 sum(10, 20, 30);剩余参数代码演示接收剩余参数1.5.1 剩余参数的语法 const sum = (.args) = let total = 0; args.forEach(item) = total += item; ); / 等价于:args.forEach(item = total += item); return total; ; console.log(sum(10, 20); / 输出结果:30 console.log(sum(10, 20, 30); / 输出结果:60使用剩余参数
23、计算多个数值的求和结果 先定一个小目标!掌握剩余参数和解构赋值配合使用,能够在解构赋值时获取剩余参数1.5.2 剩余参数和解构赋值配合使用1.5.2 剩余参数和解构赋值配合使用 / 以数组的解构赋值为例 let students = 王五, 张三, 李四; let s1, .s2 = students; console.log(s1); / 输出结果:王五 console.log(s2); / 输出结果:张三, 李四演示剩余参数和解构的使用方法扩展运算符1.6 先定一个小目标!熟悉扩展运算符的语法,能够在程序中正确使用扩展运算符1.6.1 扩展运算符的语法扩展运算符和剩余参数的作用是相反的,扩
24、展运算符可以将数组或对象转换为用逗号分隔的参数序列。扩展运算符也用3个点“”表示。1.6.1 扩展运算符的语法 let ary = 1, 2, 3; / .ary相当于1, 2, 3 console.log(.ary);/ 输出结果:1 2 3 / 等价于 console.log(1, 2, 3);/ 输出结果:1 2 3扩展运算符在数组中的使用演示1.6.1 扩展运算符的语法小提示:使用扩展运算符将ary数组拆分成以逗号分隔的参数序列后,又将参数序列放在了console.log()方法中,此时参数序列中的逗号会被当成console.log()方法的参数分隔符,所以输出结果中没有逗号。 先定一
25、个小目标!掌握扩展运算符的应用,能够利用扩展运算符对数组进行操作1.6.2 扩展运算符的应用1.6.2 扩展运算符的应用 let ary1 = 1, 2, 3; let ary2 = 4, 5, 6; / .ary1 / 表示将ary1数组拆分成1, 2, 3 / .ary2 / 表示将ary2数组拆分成4, 5, 6 let ary3 = .ary1, .ary2; console.log(ary3);/ 输出结果:(6) 1, 2, 3, 4, 5, 6数组合并的第1种方法1. 利用扩展运算符合并数组1.6.2 扩展运算符的应用 let ary1 = 1, 2, 3; let ary2 =
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Web 前端 模块化 开发 教程 全套 ppt 课件 电子 教案 完整版 教学 整套 全书
限制150内