题目1
在下列Promise所提供的方法中,用来向成功或者失败的回调函数队列中添加回调函数的是( )
A: done
B: fail
C: always
D: then
-
答案
- D
-
解析
-
A没有,B也不存在,C为一个扩展(不管有没有成功失败都会调用),D的回调有二个参数,第一个是成功回调,第二个是失败回调
<script> const promise1 = new Promise((resolve, reject) => { resolve("事情解决"); }); //promise对象.then(成功回调,失败回调); promise1.then((value) => { console.log("我是成功回调", value); }, (reason) => { console.log("我是失败回调", value); }) </script>
-
至于C选项,是一个扩展,可以安装npm ``install
//always(data, error) data: resolve的数据。 error: reject的数据。 require("es6-promise-always") axios.get("/").then(()=>{ //处理逻辑 }).always(()=>{ console.log("请求结束") hideLoading(); })
//Promise杂烩示例 axios("www.baidu.com").then(function(data) { if(50>10) { return data.json(); } throw new TypeError("出错了!"); }) .then(function(data) { console.log("我要处理返回的数据") }) .catch(function(error) { console.log("失败原因",error); }) .finally(function() { console.log("不管怎么样我都要执行") });
-
题目2
以下符合 ES6 写法的有
A: class Foo
{
constructor() {return Object.create(null);}
}
Foo()
B: var m=1;
export m;
C: export var firstName=’Michael’;
D: 在A模块中export{readFile}后,在B模块中import readFile from ‘A’可以获取到readFile
-
答案
- C
-
解析
-
A: Fun() 把 class 当成方法来用? var fun = new Func() 这样用就对了
-
B :暴露方式不对
1. 分别暴露 export let length="100";export function add(){console.log("干饭")} 引入: export {length,add} from "./module.js"; 2. 统一暴露 export {暴露的数据键值对} 比如:var a = 10; export { a }; 引入: export {length,add} from "./module.js"; 3. 默认暴露 export default 暴露的数据,比如export default var a = 10; 引入:import a from "./module.js";
-
C: 正确的,分别暴露
-
D: 缺少了 { } 符号,正确应该为import {readFile} from ‘A’
-
题目3
以下代码执行后,array 的结果是?
let array = [,1,,2,,3];
array = array.map((i) => ++i)
A: [,2,,3,,4]
B: [NaN,2,NaN,3,NaN,4]
C: [1,2,1,3,1,4]
D: [null,2,null,3,null,4]
- 答案
- A
- 解析
- orEach(), filter(), reduce(), every() 和some()都会跳过空位。
- map()会跳过空位,但会保留这个值。
- join()和toString()会将空位视为undefined,而undefined和null会被处理成空字符串。
- ES6 中都会将空位当做undefined
题目4
以下哪些方法会返回一个数组?(多选)
A: Object.keys()
B: String.prototype.split()
C: Array.prototype.join()
D: Promise.all()
-
答案
- A,B
-
解析
- A: Object.keys()返回对象的key值所组成的数组(key要为可枚举)
- B: String.prototype.split()分割字符串,返回分割后的数组
- C: Array.prototype.join()方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。如果数组只有一个项目,那么将返回该项目而不使用分隔符。
- D: Promise.all(iterable) 方法返回一个 Promise 实例,此实例在 iterable 参数内所有的 promise 都“完成(resolved)”或参数中不包含 promise 时回调完成(resolve);
如果参数中 promise 有一个失败(rejected),此实例回调失败(reject),失败原因的是第一个失败 promise 的结果。
<script> var obj = { name:"李白", age:1000, }; Object.defineProperty(obj,"sex",{ value:"男", enumerable:false }); console.log(obj);//{name: '李白', age: 1000, sex: '男'} console.log(Object.keys(obj));//['name', 'age'] </script>