es6选择题(带答案)
es6选择题
1.下⾯不属于ECMAScript规范的范围的是:( )
A、数据类型
B、语法
C、DOM事件
D、内置对象和函数的标准库
答案:C
解析:DOM事件不属于ECMAScript的部分;ECMAScript定义的内容:语法、类型、原型和继承、内置对象和函数的标准库。
考点: ECMAScript定义规范的理解,来⾃《第⼀节:什么是ES6?新⼿该如何理解》的内容。
2.下⾯不属于关键字let的特点的是:( )
A、只在 let 命令所在的代码块内有效
B、会产⽣变量提升现象
C、同⼀个作⽤域,不能重复声明同⼀个变量
D、不能在函数内部重新声明参数
答案:B
解析:使⽤var关键字才会产⽣变量提升的现象。关键字let不会产⽣变量提升现象,所以必须先声明定义后使⽤,否则程序抛出异常。考点:关键字let的使⽤注意事项,来⾃《第⼆节:ES6新增了let关键字,⼲嘛⽤的?》的内容。
3.关于关键字const,下列说法错误的是:()
A、⽤于声明常量,声明后不可修改
B、不会发⽣变量提升现象
C、不能重复声明同⼀个变量
D、可以先声明,不赋值。
答案:D
解析:声明后必须赋值,负责程序会抛出异常。
考点:关键字const的使⽤注意事项,来⾃ 《第三节:ES6中另⼀个不得不说的关键字const》的内容。
4.在数组的解构赋值中,var [ a,b,c ] = [ 1,2 ]结果中,a、b、c的值分别是:()
A、1 2 null
B、1 2 undefined
C、1 2 2
D、抛出异常
答案:B
解析:在解构赋值过程中,赋值不成功,变量的值会变成undefined,不会抛出异常。
考点:数组的结构赋值使⽤注意事项。来⾃ 《第五节:⼀个令⼈兴奋的ES6新特性:解构赋值》的内容。
5.在对象的解构赋值中,var {a,b,c} = { “c”:10, ”b”:9, ”a”:8 } 结果中,a、b、c的值分别是:()
A、10 9 8
B、8 9 10
C、undefined 9 undefined
D、null 9 null
答案:B
解析:对象的解构赋值不会受到属性的排列次序影响。
考点:对象解构赋值和数组解构赋值的区别。来⾃ 《第五节:⼀个令⼈兴奋的ES6新特性:解构赋值》的内容。
6.关于模板字符串,下列说法不正确的是:()
A、使⽤反引号标识
B、插⼊变量的时候使⽤${ }
C、所有的空格和缩进都会被保留在输出中
D、${ }中的表达式不能是函数的调⽤
答案:D
解析:${ }中可以放任意的JavaScript表达式,包括运算表达式、对象属性、函数调⽤等。
考点:模板字符串的特点。来⾃《第六节:ES6为字符串String带来哪些好玩的特性?》的内容。
7.关于字符串扩展的新函数,下⾯描述错误的是:()
A、includes函数⽤于判断字符串中是否含有指定的⼦字符串
B、repeat函数将⽬标字符串重复N次,⽬标字符串被修改
C、startsWidth函数判断指定的⼦字符串是否出现在⽬标字符串头部位置
D、endWidth函数判断指定的⼦字符串是否出现在⽬标字符串尾部位置
答案:B
解析:repeat函数将⽬标字符串重复N次,会返回⼀个新的字符串,不影响⽬标字符串。
考点:String字符串的新特性repeat函数的使⽤。来⾃《第六节:ES6为字符串String带来哪些好玩的特性?》的内容。
8.关于数值的扩展,window.isNaN(“abc”) 和Number.isNaN(“abc”)的结果分别是:()
A、true false
B、false true
C、true true
D、false false
答案:A
解析:window.isNaN函数会把⾮数值的参数转化成数值再进⾏判断,⽽Number. isNaN只对数值类型有效,⾮数值类型的参数⼀律返回false。
考点:isNaN函数从全局函数移植到Number对象后的区别。来⾃《第七节:ES6为数值做了哪些扩展?》的内容。
9.关于数值扩展的Number.isInteger函数,下⾯说法错误的是:()
A、⽤来判断是否是整数,返回布尔值。
B、Number.isInteger(3);结果为:true
C、Number.isInteger(3.0);结果为:false
D、Number.isInteger(3.01);结果为:false
答案:C
解析:在JavaScript内部对整数和浮点数采⽤⼀样的存储⽅式,因此⼩数点后如果都是0的浮点数,都会被认为是整数。考点:Number.isInteger函数使⽤的注意事项。来⾃《第七节:ES6为数值做了哪些扩展?》的内容。
10.数组扩展的fill( )函数,[1,2,3].fill(4)的结果是:()
A、[4]
B、[1,2,3,4]
C、[4,1,2,3]
D、[4,4,4]
答案:D
解析:fill函数的参数会把原数组的每个元素填充成指定的参数。
考点:对fill( )函数的了解和使⽤。来⾃《第⼋节:ES6为数组做了哪些扩展?》的内容。
11.数组的扩展中,不属于⽤于数组遍历的函数的是:()
A、keys( )
B、entries( )
C、values( )
D、find( )
答案:D
解析:find函数⽤于出数组中符合条件的第⼀个元素,并不是⽤于遍历数组。
考点:利⽤数组的新特性来实现数组的遍历。来⾃《第⼋节:ES6为数组做了哪些扩展?》的内容。
12.关于对象的扩展,错误的是:()
A、ES6中对象的表⽰法更加简洁
B、对象的属性名可以是表达式
C、对象的⽅法名不可以是表达式
D、当属性名为表达式的时候,需要使⽤[ ]标识
答案:C
解析:对象的⽅法名同样可以是表达式,使⽤[ ]标识。
考点:对象的新特性的使⽤注意事项。来⾃《第九节:ES6为对象做了哪些扩展?》的内容。
13.关于对象的Object.is函数,错误的是:()
A、⽤于判断两个值是否严格相等
B、⽤于判断两个值是否抽象相等
C、Object.is(3,‘3’) 结果是:false
D、Object.is(3,3.0) 结果是:true
答案:B
解析:Object.is函数判断两个值是否严格相等,或者说全等,作⽤等同于全等符号:===
考点:Object.is函数的了解和使⽤注意事项。来⾃《第九节:ES6为对象做了哪些扩展?》的内容。
14.函数的扩展中,关于rest参数的描述,正确的是:()
A、获取函数剩下部分的参数
B、rest参数不可以是函数的最后⼀个参数
C、获取函数的第⼀个参数
D、⼀个名叫rest的参数
答案:A
解析:rest参数⽤于表⽰且必须是函数的最后⼀个函数,后⾯不可以再跟其他参数,故B选项是错的。它的表⽰法表⽰法使⽤…(三个点)+ ⾃定义的参数名,故D选项是错的
考点:rest参数的理解和使⽤。来⾃《第⼗节:ES6为函数做了哪些扩展?》的内容。
15.关于箭头函数的描述,错误的是:()
A、使⽤箭头符号=>定义
B、参数超过1个的话,需要⽤⼩括号()括起来
C、函数体语句超过1条的时候,需要⽤⼤括号{ }括起来,⽤return语句返回
D、函数体内的 this 对象,绑定使⽤时所在的对象
答案:D
解析:函数体内的 this 对象,绑定定义时所在的对象,⽽不是使⽤时所在的对象。这点很重要,连载第⼗节的时候还特意加了⼀节讲这个内容。
考点:箭头函数的使⽤注意事项。来⾃《第⼗节(补课):函数的扩展 — 箭头函数的this使⽤》的内容。
16.关于Symbol,错误的说法是:()
A、是ES6新增的⼀种数据类型
B、Symbol() === Symbol() 结果为false
C、Symbol(‘same’) === Symbol(‘same’) 结果为true
D、当symbol值作为对象的属性名的时候,不能⽤点运算符获取对应的值。
答案:C
解析:symbol是独⼀⽆⼆的值,虽然它们的描述都是“‘same’”,但是对应的值还是不⼀样的,所以结果为:false。
解析:关于Symbol的使⽤注意事项,来⾃《第⼗⼀节:JavaScript有了⼀种全新的数据类型:Symbol》的内容。
17.下⾯运算结果,结果为true的是:()
A、Symbol.for(‘name’) == Symbol.for(‘name’)
B、Symbol(‘name’) == Symbol.for(‘name’)
C、Symbol(‘name’) == Symbol(‘name’)
D、Symbol.for(‘name’) == Symbol(‘name’)
答案:A
解析:Symbol.for函数会根据参数名,去全局环境中搜索是否有以该参数为名的symbol值,有就返回它,没有就以该参数名来创建⼀个新的symbol值,并登记在全局环境中,⽽Symbol每次都会创建⼀个独⼀⽆⼆的值,不会登记在全局环境中。
解析:Symbol和Symbol.for创建变量的区别,来⾃《第⼗⼀节:JavaScript有了⼀种全新的数据类型:Symbol》的内容。
18.关于Proxy代理,下⾯说法错误的是:()
A、可以理解成在⽬标对象之前,架设⼀层“拦截”
B、Proxy的get ⽅法⽤于拦截某个属性的读取操作。
javascript全局数组C、Proxy的set⽅法⽤于拦截对对象的写操作。
D、⼀旦对象设置Proxy代理后不可取消,所以要谨慎操作
答案:D
解析:可以⽤vocable( )来取消代理,并不是不可以取消的。
考点:Proxy代理的设置和取消代理,来⾃《第⼗⼆节:ES6 Proxy代理 和 去银⾏存款有什么关系?》的内容。
19.关于for…of的简述,说法错误的是:()
A、它可以遍历所有具有iterator 接⼝的数据结构
B、不可以⽤break来终⽌循环
C、使⽤continue可以跳过当前循环
D、可以遍历DOM list对象
答案:B
解析:for…of可以⽤break来终⽌循环,⽽传统的forEach则不可以⽤break终⽌循环,这正是for…of相对forEach的优势
考点:for…of遍历相对于传统便利⽅式的优势,来⾃《第⼗三节:易学⼜实⽤的新特性:for…of》的内容。
20.关于set结构,下⾯说法错误的是:()
A、创建⼀个实例需要⽤new关键字
B、结构成员都是唯⼀的,不允许重复
C、使⽤add⽅法添加已经存在的成员会报错
D、初始化的时候接受数组作为参数
答案:C
解析:使⽤add⽅法添加已经存在的成员,会⾃动忽略相同的值,相同的值保留⼀个。
考点:set结构的特点,来⾃《第⼗六节:ES6新增的 Set 和 WeakSet 是什么东西?》的内容。
21.关于Set结构的实例⽅法,下⾯说法错误的是:()
A、set⽅法⽤于添加成员
B、clear⽅法⽤于清除所有成员。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论