题1(剩余参数)
下面输出的是
答案:SyntaxError
这道题考察的是:
- 剩余参数:…args是剩余参数,剩余参数的值是一个包含所有剩余参数的数组,并且只能作为最后一个参数。上述示例中,剩余参数是第二个参数,这是不可能的,并会抛出语法错误
题2(NaN, Number.isNaN)
下面输出的是:
答案:false false true false
这道题考察的是:
- NaN:NaN 属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。可以把 Number 对象设置为该值,来指示其不是数字值。NaN 与所有值都不相等,包括它自己。
- Number.isNaN:方法Number.isNaN,可以检测传递的值是否为数字值并且是否等价于NaN。方法isNaN,可以检测传递的值是否为数字
题3(TypeError)
下面输出的是:
答案:TypeError
这道题主要考察:
- TypeError: 变量name保存字符串的值,而不是函数,当值不是预期类型的时候,会抛出TypeErrors, TypeError:name is not a function
题4(自动分号插入)
下面输出的是
答案:a is bigger, undefined and b is bigger, undefined
这道题主要考察:
- 自动分号插入:在javascript中,我们不必显式地编写分号(; ),但是javascript引擎仍然在语句之后自动添加引号。在这里,我们在新的一行上写了一个return语句和另一个值a+b,引擎会在return后加;,而不是a+b后。这意味着永远不会到达a+b
题5(Symbol)
下面输出的是
答案:{Symbol(‘a’): ‘b’} and []
这道题主要考察:
- Symbol: Symbol提供完全唯一的值,Symbol类型是不可枚举的,Object.keys方法返回对象上的所有的可枚举的键属性。Symbol类型是不可见的,并返回一个空数组,而记录整个对象时,所有属性都是可见的,甚至不可枚举的属性
题8(ReferenceError)
下面输出的是
答案:ReferenceError
这道题主要考察:
- ReferenceError: 这里用解构赋值给myName赋值了,但是name是一个未定义的变量,调用一个未定义的变量会引起语法错误,也就是ReferenceError
题10(Array.prototype)
下面哪些方法修改了原数组
答案:splice
这道题主要考察:
- Array.prototype: 数组原型中能修改原数组的方法,除了push,pop,shift, unshifit这些推入推出的方法,还有reverse和sort使得数组排序的方法以外,就只有splice会修改原数组