让前端飞前端面试

JavaScript 错题集 (一)

2018-12-10  本文已影响0人  小7丁
var a = 1
if(a = 3)
    console.log('a等于3')

请问会打印出什么?

var a = 
1

符合语法吗?
符合,等价于 var a = 1

  1. 如果控制台报错:ReferenceError: x is not defined
    说明了什么问题?
  1. a = 1,声明时不写 var 会怎样?

不写var,容易不知不觉地创建全局变量(对)
不写var,一定会不知不觉地创建全局变量(错)

  1. 关于 NaN 说法正确的是
    NaN 是一个数字(对)
    NaN 表示「非数」(对)
    5 - 'x' 的值就是 NaN(对)
    NaN 和 NaN 是相等的,即 NaN === NaN 为 true(错)

  2. "\""这个 JS 字符串的 length 是多少
    1

  3. parseInt('0x10') 的值是
    16 ,如果字符串以0x或0X开头,parseInt会将其按照十六进制数解析

  4. "\t\n1" 的 length 是
    3

  5. 标识符
    Var a = 9b是错的,数字不能在前面

 var obj = {
    '3+3': 'A',
    '6': 'B'
}

请问 obj[3+3] 的值为
'B'

  1. 关于 for…in 循环,正确的是
    for...in 循环用来遍历对象
    for...in 循环会跳过不可遍历的 key
    for…in 循环不仅遍历对象自身的属性,还遍历继承的属性

  2. 我想知道变量 a 是否已经声明过(值为 undefined 不代表没有声明过),应该用什么代码
    if (a) {...}(错)
    if (window['a']) {...}(错)
    if (window.a) {...}(错)
    if ('a' in window) { ... }(对)

  3. 关于对象,正确的是
    简单说,对象就是一组“键值对”(key-value)的集合,是一种无序的复合数据集合。(对)
    简单说,对象就是一组“键值对”(key-value)的集合,是一种有序的复合数据集合。(错)
    var o1 = {}; 可以创建一个对象(对)
    var o2 = new Object(); 可以创建一个对象(对)
    var o3 = Object.create(Object.prototype); 可以创建一个对象(对)
    对象的所有键名不都是字符串,还可以是数字(错)

  4. 打印出的值为

var arr = [1, 2, 3]
console.log(arr.0)

语法错误

  1. 1.toString() 的结果是什么?
    '1' (错)
    语法错误(对)

  2. 1..toString() 的结果是什么?
    '1' (对)
    语法错误 (错)

15和16的原因是
.跟在一个数字后面就意味着这个数字是一个浮点数,在.后面JS等待着一个数字。
所以在调用.toString()之前,我们需要告诉JS这是就是我们要的数字。

  1. var n = 1
    n.xxx = 2
    console.log(n.xxx)
    打印出的是什么?

undefined

  1. var n = new Number(1)
    n.__proto__.__proto__.__proto__的值是多少?

Number.prototype
Object.prototype
null (对)

  1. [多选]如何获取一个元素的爸爸节点:
    var divParent = div._?_

如果不知道,请搜索 MDN parent

parentNode(对)
parentElement(对)
parent(错)

  1. var f1 = function f2(){}
    f1.name 是多少
    ‘f2’
上一篇 下一篇

猜你喜欢

热点阅读