1.从下列选项中找出正确的打印值
const name="Lydia";
age = 21;
console.log(delete name);
console.log(delete age);
A.'false','true'
B.'"Lydia"','21'
C.'true','true'
D.'undefined','undefined'
解析:
const name="Lydia";
age = 21; // - window.age=21 非严格模式下
console.log(delete name); // - false
console.log(delete age); // - true
注:const、let、var声明的变量在使用delete关键字进行删除时是无效的,且其返回值是false。
正确答案:A
2.从下列选项中找出正确的打印值
const user ={name:"Lydia",age:21};
const admin={admin:true,...user};
console.log(admin);
A.{admin:true,user:{name:"Lydia",age:21}}
B.{admin:true,name:"Lydia",age:21}
C.{admin:true,user:["Lydia",age:21]}
D.{admin:true}
解析:
const user ={name:"Lydia",age:21};
const admin={admin:true,...user}; // - {admin:true,name:"Lydia",age:21};
console.log(admin);
注:...user使用的是ES6的扩展运算符,默认作用是将user的属性展开平铺,并且和admin:true组成一个新的对象。
如果const user ={name:"Lydia",age:21,admin:false};和前面的属性有重名时,...扩展运算符会把前面的属性覆盖掉。打印结果就会为:{admin:false,name:"Lydia",age:21}
正确答案:B
3.从下列选项中找出正确的打印值
// counter.js
let counter =10;
export default counter;
// index.js
import myCounter from "./counter.js";
myCounter += 1;
console.log(myCounter);
A.10
B.11
C.Error
D.NaN
解析:从模块导出的变量是不能被修改的,只能作为一个只读的变量进行其他文件引入使用。
正确答案:C
4.从下列选项中找出正确的打印值
const set = new Set([1,1,2,3,4]);
console.log(set);
A.[1,1,2,3,4]
B.[1,2,3,4]
C.{1,1,2,3,4}
D.{1,2,3,4}
解析:
const set = new Set([1,1,2,3,4]); // - Set是ES6提供的新的数据结构,参数是一个数组的结构,输出是Set的结构
console.log(set);
注:Set具有唯一性,输出时会默认过滤掉重复项。Set是一种新的数据结构并不是数组。
数组的去重、找唯一值都可以利用Set形式
正确答案:D
5.从下列选项中找出正确的打印值
class Dog{
constructor(name){
this.name = name;
}
}
Dog.prototype.bark = function (){
console.log(`Woof I am ${this.name}`);
}
const pet = new Dog("Mara");
pet.bark();
delete Dog.prototype.bark;
pet.bark();
A."Woof I am Mara",TypeError
B."Woof I am Mara","Woof I am Mara"
C."Woof I am Mara",undefined
D.TypeError,TypeError
解析:
class Dog{
constructor(name){
this.name = name;
}
}
Dog.prototype.bark = function (){
console.log(`Woof I am ${this.name}`); // this是什么要看执行的时候谁调用了这个函数
}
const pet = new Dog("Mara"); // -{name:'Mara'};
pet.bark();
delete Dog.prototype.bark;
pet.bark();
注:
正确答案:A
6.从下列选项中找出正确的打印值
(() => {
let x = (y = 10);
}());
console.log(typeof x);
console.log(typeof y);
A."undefined","number"
B."number","number"
C."object","number"
D."number","undefined"
解析:
// "use strict" ——严格模式
// - 匿名自定义函数
(() => {
// - 函数作用域
let x = (y = 10); // - 非严格模式情况下,没有关键字声明的变量,默认为 window 下的属性
}());
console.log(typeof x); // - undefined
console.log(typeof y); // - number
正确答案:A
7.从下列选项中找出正确的打印值
function Car (){
this.make = "Lamborghini";
return { make:"Maserrati" };
}
const myCar = new Car();
console.log(myCar.make);
A.Lamborghini
B."Maserati"
C.ReferenceError
D.TypeError
解析:
function Car (){
this.make = "Lamborghini";
return { make:"Maserrati" }; // - 返回对象
// return "hello world"; // - 返回基本类型
}
const myCar = new Car(); // - new操作符:规定this指向,指向创建出来的新对象,规定原型链,将这个空对象进行输出;
// - 如果构造函数有返回值且返回值是对象的话,就会忽略前面的操作,不考虑new操作符本身的操作,而直接将返回值作为myCar的值 { make:"Maserrati" };
// - 如果构造函数有返回值且返回值为基本类型的话,就会忽略return返回值,而直接进行new操作符的操作。
console.log(myCar.make);
正确答案:B
8.从下列选项中找出正确的打印值
function greeting() {
throw "Hello world!";
}
function sayHi() {
try {
const data = greeting();
console.log("It worked!",data);
} catch (e) {
console.log("Oh no an error:",e);
}
}
sayHi();
A. "It worked! Hello world!"
B. "Oh no an error: undefined"
C. SyntaxError: can only throw error objects
D. "Oh no an Error: Hello world!"
解析:
function greeting() {
throw "Hello world!"; // - 抛出错误字符串
}
function sayHi() {
try {
const data = greeting(); // - 已经发生了错误,下面语句不再执行
console.log("It worked!",data);
} catch (e) {
console.log("Oh no an error:",e); // - carch 捕捉try里面的错误,e形参代表错误描述
}
}
sayHi();
正确答案:D
- 从下列选项中找出正确的打印值
const arr = [1,2,3].map(num => {
if ( typeof num === "number" ) return;
return num * 2;
});
console.log(arr);
A. []
B. [null,null,null]
C. [undefined, undefined,undefined]
D. [3 × empty]
解析:
const arr = [1,2,3].map(num => { // - map()本身具有遍历特性,根据条件,生成一个新的数组
if ( typeof num === "number" ) return; // - return后面没有跟任何值,默认返回undefined
return num * 2;
});
console.log(arr);
正确答案:C
10.从下列选项中找出正确的打印值
const num = parseInt("7*6",10);
console.log(num);
A. 42
B. "42"
C. 7
D. NaN
解析:
parseInt(string, radix)函数解析字符串并返回整数。
radix 参数用于指定使用哪种数字系统,例如基数为 16(十六进制)表示字符串中的数字应从十六进制数解析为十进制数。
如果 radix 参数被省略,JavaScript 假定如下:
如果字符串以 "0x" 开头,则基数为 16(十六进制) 如果字符串以 "0" 开头,则基数为 8(八进制)。此特性已弃用 如果字符串以任何其他值开头,则基数为 10(十进制)注意:只返回字符串中的第一个数字!
注释:允许前导和尾随空格。
注释:如果第一个字符不能转换为数字,parseInt() 返回 NaN。
注释:旧浏览器将导致 parseInt("010") 为 8,因为旧版本的 ECMAScript(比 ECMAScript 5 旧)当字符串以 "0" 开头时使用八进制基数 (8) 作为默认值。从 ECMAScript 5 开始,默认值为十进制基数 (10)。
禁止转载