E9二开文档@Author: 福州ebu 杨文杰
1. 前端开发根底1.1 ECMAScript6 的应用ECMAScript 和 JavaScript 的关系是:前者是后者的规格,后者是前者的一种实现。
ES6 既是一个历史名词,也是一个泛指,含意是 5.1 版当前的 JavaScript 的下一代规范,涵盖了 ES2015、ES2016、ES2017 等等,而 ES2015 则是正式名称,特指该年公布的正式版本的语言规范。本书中提到 ES6 的中央,个别是指 ES2015 规范,但有时也是泛指 “下一代 JavaScript 语言”。
1.2 ES6常见的语法1.2.1 let 和 const 命令ES6 新增了let命令,用来申明变量。它的用法相似于var,然而所申明的变量,只在let命令所在的代码块内无效。
{ let a = 10; var b = 1;}a // ReferenceError: a is not defined.b // 1const申明一个只读的常量。一旦申明,常量的值就不能扭转。
const PI = 3.1415;PI // 3.1415PI = 3;// TypeError: Assignment to constant variable.1.2.2 变量的解构赋值ES6 容许依照肯定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)
如果解构不胜利,变量的值就等于undefined
数组的解构赋值let [foo, [[bar], baz]] = [1, [[2], 3]];foo // 1bar // 2baz // 3let [ , , third] = ["foo", "bar", "baz"];third // "baz"let [x, , y] = [1, 2, 3];x // 1y // 3let [head, ...tail] = [1, 2, 3, 4];head // 1tail // [2, 3, 4]let [x, y, ...z] = ['a'];x // "a"y // undefinedz // []对象的解构赋值// 常见用法let { bar, foo, baz } = { foo: 'aaa', bar: 'bbb' };foo // "aaa"bar // "bbb"baz // undefined// foo是匹配的模式,baz才是变量。真正被赋值的是变量baz,而不是模式foolet { foo: baz } = { foo: 'aaa', bar: 'bbb' };baz // "aaa"foo // error: foo is not defined// 嵌套应用let obj = { p: [ 'Hello', { y: 'World' } ]};// 第一个p作为变量,则进行赋值,第二个p作为模式,不会进行赋值let { p, p: [x, { y }] } = obj;x // "Hello"y // "World"p // ["Hello", {y: "World"}]1.2.3 ... 运算符函数 rest 参数的应用function f(a, ...b) { console.log(a, b)}f(1,2,3,4,5) // 1 [2,3,4,5]数组拆解const a = [1,2,3]const b = [4,5,6]const c = [...a, ...b]c // [1,2,3,4,5,6]对象拆解const obj = { a: 111, b:222 }const copyObj = { ...obj, c: 333 }copyObj // { a: 111, b:222, c: 333 }1.2.4 函数的扩大参数默认值:ES6 容许为函数的参数设置默认值,即间接写在参数定义的前面。// 根本用法function log(x, y = 'World') { console.log(x, y);}log('Hello') // Hello Worldlog('Hello', 'China') // Hello Chinalog('Hello', '') // Hello// 参数默认值能够与解构赋值的默认值,联合起来应用。function foo({x, y = 5}) { console.log(x, y);}foo({}) // undefined 5foo({x: 1}) // 1 5foo({x: 1, y: 2}) // 1 2foo() // TypeError: Cannot read property 'x' of undefined箭头函数:ES6 容许应用(=>)定义函数。// 根本用法var f = v => v;// 等同于var f = function (v) { return v;};// 箭头函数能够与变量解构联合应用。const full = ({ first, last }) => first + ' ' + last;// 等同于function full(person) { return person.first + ' ' + person.last;}// rest 参数与箭头函数联合const numbers = (...nums) => nums;numbers(1, 2, 3, 4, 5) // [1,2,3,4,5]const headAndTail = (head, ...tail) => [head, tail];headAndTail(1, 2, 3, 4, 5) // [1,[2,3,4,5]]1.3 React根底React 是一个用于构建用户界面的 Javascript 库。
...