logo资料库

ES6总结及面试题集合.docx

第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
资料共12页,剩余部分请下载后查看
ES
在ES6中定义一个对象
基本知识点
1. var let const
2. 箭头函数
3. 字符串
4. 模板字符串
5.解构
6.模块
7.参数
8.rest参数
9.展开操作
10.类
11.Maps
12.Promises
13.Generators
面试题
1、let、const和var的区别
2、声明变量的方式
3、函数声明
4.使用解构赋值,实现两个变量的值的交换(编程题)。
6.使用解构赋值,完成函数的参数默认值(编程题)。
7.利用数组推导,计算出数组 [1,2,3,4] 每一个元素的平方并组成新的数组。(编程题)
8.使用模板字符串改写下面的代码。(ES5 to ES6改写题)
9.用对象的简洁表示法改写下面的代码。(ES5 to ES6改写题)
10.用箭头函数的形式改写下面的代码。(ES5 to ES6改写题)
11.设计一个对象,键名的类型至少包含一个symbol类型,并且实现遍历所有key。(编程题)
12.有一本书的属性为:{“name”:“《ES6基础系列》”, ”price”:56 };要求使用
13.阅读下面的代码,并用for...of改成它。(ES5 to ES6改写题)
14.关于Set结构,阅读下面的代码,回答问题。(代码阅读题)。
15.关于Map结构,阅读下面的代码,回答问题。(代码阅读题)
16.定义一个类Animal,通过传参初始化它的类型,如:“猫科类”。它有一个实例方法:run,ru
17.基于第12题的Animal类,定义一个子类Cat并继承Animal类。初始化Cat类的昵称na
18.利用module模块,实现两个模块A和B,A模块导出变量name,age和say方法。B模块只
ES 在 ES6 中定义一个对象 class Person{ strict info={ name:”李白”, age:18 } } Var p1=new Person() 基本知识点 原文链接:https://blog.csdn.net/caijunfen/article/details/81001752 1. var let const let,const 具有块级作用域,不具有变量提升 const 用于不能被重新赋值的变量 2. 箭头函数 我们经常要给回调函数给一个父级的 this 常用办法就是 var self = this 定义一个变量接住他 使用 箭头函数,this 将不会受到影响,可以直接用 this 调用父级的 this
3. 字符串 includes: const string = 'food'; const substring = 'foo'; console.log(string.includes(substring)); 返回的是布尔值。 string.repeat(str,count) 如果 string.length < count 即插入 str 到 count == string.length 为止 4. 模板字符串 const name = 'Tiger'; const age = 13; console.log(`My cat is named ${name} and is ${age} years old.`); 5.解构 结构数组: let [a, b, c, d] = [1, 2, 3, 4]; console.log(a); console.log(b); 结构对象: var luke = { occupation: 'jedi', father: 'anakin' };
var occupation = luke.occupation; var father = luke.father; ------------------------------------------------------------- let luke = { occupation: 'jedi', father: 'anakin' }; let {occupation, father} = luke; console.log(occupation); console.log(father); 6.模块 暴露对象: function sumThree(a, b, c) { return a + b + c; } export { sumThree }; 引入: import { sumThree } from 'math/addition'; 7.参数 es6 支持设置默认值: function addTwoNumbers(x=0, y=0) { return x + y;
} 8.rest 参数 处理不定数目参数: function logArguments(...args) { for (let arg of args) { console.log(arg); } } 9.展开操作 可以展示数组: Math.max(...[-1, 100, 9001, -32]); let cities = ['San Francisco', 'Los Angeles']; let places = ['Miami', ...cities, 'Chicago']; // ['Miami', 'San Francisco', 'Los Angeles', 'Chicago'] 10.类 创造类: class Person {
constructor(name, age, gender) { this.name = name; this.age = age; this.gender = gender; } incrementAge() { this.age += 1; } } 11.Maps 可以理解成键值对 let map = new Map(); map.set('name', 'david'); map.get('name'); map.has('name'); 12.Promises 远离回调地狱,可以转换成垂直代码 func1(value1) .then(func2)
.then(func3) .then(func4) .then(func5, value5 => { }); 13.Generators 用同步的代码风格来写异步代码 function* genFunc() { // (A) console.log('First'); yield; //(B) console.log('Second'); //(C) } 面试题 本文链接:https://blog.csdn.net/yaocong1993/article/details/87956042 1、let、const 和 var 的区别 let 用于声明变量,const 声明常量。const 声明常量时,必须在声明的同时赋值;对普通常 量声明后不能再修改;对引用类型的常量,指向对象存储地址的指针,可以修改其中的内容。 let 和 const 不存在变量提升、重复声明变量、使用未经声明的变量(ES6 强制开启严格模式) 都会报错。var 有变量提升、可以重复声明变量。 let 和 const 只在块作用域中有效。
2、声明变量的方式 ES5:var a; var b=1; function add(a){} ES6:let a; let b=1; const b=1; class Point{} import { foo } from 'my_module'; 2、Object.assign()函数的作用及用法,举例说明 Object.assign 方法用于对象的合并,将源对象的所有可枚举属性,复制到目标对象。第一个 参数是目标对象,后面的参数都是源对象。如果目标对象与源对象或多个源对象有同名属性, 则后面的属性会覆盖前面的属性。 如果只有一个参数,Object.assign 会直接返回该参数。如果该参数不是对象,则会先转成对 象,然后返回。由于 undefined 和 null 无法转成对象,所以如果它们作为参数,就会报错。 如果非对象参数非首参数,那么处理规则有所不同。这些参数都会转成对象,如果无法转成 对象,就会跳过。这意味着,如果 undefined 和 null 不在首参数,就不会报错。数值、字符 串和布尔值,除了字符串会以数组形式,拷贝入目标对象,其它值都不会产生效果。 只拷贝源对象的自身属性,不拷贝继承属性,也不拷贝不可枚举的属性。 浅拷贝,而不是深拷贝,如果源对象某个属性的值是对象,那么目标对象拷贝得到的是这个 对象的引用。 只能进行值的复制,如果要复制的值是一个取值函数,那么将求值后再复制。 深拷贝和浅拷贝 3、函数声明 const add=(a,b)=>{return a+b} // ES6 const add=(a,b)=>a+b // ES6 function add(a,b){return a+b;} const add=function(a,b){return a+b}; 箭头函数 Promise
4.使用解构赋值,实现两个变量的值的交换(编程题)。 答: let a = 1; let b = 2; [a,b] = [b,a]; 6.使用解构赋值,完成函数的参数默认值(编程题)。 function demo({name="王德发"}){ console.log(name); } 7.利用数组推导,计算出数组 [1,2,3,4] 每一个元素的平方并组成新 的数组。(编程题) var arr1 = [1, 2, 3, 4]; var arr2 = [for (i of arr1) i * i]; console.log(arr2); 8.使用模板字符串改写下面的代码。(ES5 to ES6 改写题) let iam = "我是"; let name = "王德发"; let str = "大家好,"+iam+name+",多指教。"; 改: let iam = `我是`; let name = `王德发`; let str = `大家好,${iam+name},多指教。`; 9.用对象的简洁表示法改写下面的代码。(ES5 to ES6 改写题)
分享到:
收藏