正确答案和解析,最后揭晓。
(单选) 1. 在es6中,下面程序运行结果输出,选项结果正确的是
for(let i=0;i<12;i++){
}
console.log(i); // ?
const a = 12;
a = 13;
console.log(a); // ?
const g = {
b:3
};
console.log(g.b); // ?
g.b=12;
console.log(g.b); // ?
let [head,...tail] = [1,2,3,4];
conole.log(tail); // ?
A、11,13,3,12,[3,4]
B、i not defined ,TypeError,TypeErrpr,4
C、11,12,3,3,4
D、i not defined,TypeError,3,12,[2,3,4]
(单选)2. 如果不给cookie设置过期时间会怎么样?
A、立刻过期
B、永不过期
C、cookie 无法设置
D、在浏览器会话结束时过期
(单选)3. 假设document是HTML文档中的一个节点,点击该节点后会发生什么?
function test() {
this.flag = false;
this.change = () => {
this.flag = true;
console.log(button.flag);
};
}
const button = new test();
document.addEventListener("click", button.change);
A、输出true
B、输出false
C、输出undefined
D、报错
(单选)4. 执行以下选项中的程序,输出结果是undefined的是()
A
var o = {
age: 18,
a: {
fn: function () {
console.log(this.age);
}
}
}
o.a.fn();
B
class Animal {
constructor(color) {
this.color = color;
}
getColor() {
console.log("animal的颜色是" + this.color);
}
}
class Dog extends Animal {
constructor(color) {
this.color = color;
}
}
var dog = new Dog("黄色");
C
function fn() {
setTimeout(function () {
console.log(this);
}, 100)
}
fn();
D
var person = {
sex: "女",
fn: function () {
console.log(this.sex);
}
}
person.fn()
(多选题)5. 在ECMAScript6 中,Promise的状态有()
A、Pending
B、Pause
C、Resolved
D、Rejected
解析
- 正确答案:D
for(let i=0;i<12;i++){
}
console.log(i); // i not defined
const a = 12;
a = 13;
console.log(a); // TypeError
const g = {
b:3
};
console.log(g.b); // 3
g.b=12;
console.log(g.b); // 12
let [head,...tail] = [1,2,3,4];
conole.log(tail); // [2,3,4]
- let 与var不同,let存在块级作用域,在for循环中声明,循环之外销毁 所以
i not defined
. - const 声明一个常量无法更改,所以
TypeError
- const 声明的是
一个常量所以是无法更改
的,但是如果const出来的是一个对象的属性是可以更改
的。 - 解构赋值、扩展运算符如下,所以为
MDN-解构赋值
阮一峰ECMAScript6入门——变量的解构赋值
解构赋值语法是一种 Javascript 表达式。可以将数组中的值或对象的属性取出,赋值给其他变量。
阮一峰—扩展运算符
例如:
[a, b, ...rest] = [10, 20, 30, 40, 50];
console.log(rest);
// Expected output: Array [30, 40, 50]
- 正确答案:A
- cookie的有效时间默认为
-1
,如果不进行设置的话,就会默认在浏览器会话关闭时结束。 - 可以通过
setMaxAge()
方法设置cookie的生命期。 - 当
setMaxAge(0)
表示立刻删除该浏览器上指定的cookie
- 正确答案:A
首先需要明白addEventListener
的回调函数的函数上下文为触发事件的元素的引用。
如无意外则change
方法改变的flag
是节点上的flag
,和button
无关。
但是由于change
是箭头函数,this与构造函数绑定在一起了,所以改变的flag
是button
的flag
。 - 正确答案:A
A选项——fn()
方法内的this
指代对象a
,由于对象a
并没有age
属性,因此输出结果为undefined
,A选项符合题意;
B选项——子类对象调用父类getColor()
方法,方法内的this
指向子类对象,但当子类有自己的构造方法时,必须在其构造方法使用super
调用父类的构造方法,否则不能生成this
对象,因此B选项会抛出异常,不符合题意;
C选项——定时器中的this
指向window
对象,C选项不符合题意;
D选项——this
指向person
对象,由于person
对象有属性sex
,因此可以输出对应的属性值,D选项不符合题意。 - 正确答案:ACD
解释说明如下:Promise对象的状态