JS错题集

作者: 小7丁 | 来源:发表于2018-12-07 17:05 被阅读5次
    var a = 1
    if(a = 3)
        console.log('a等于3')
    

    请问会打印出什么?

    • a等于3
    var a = 
    1
    

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

    1. 如果控制台报错:ReferenceError: x is not defined
      说明了什么问题?
    • 说明 x 没有定义就被使用了
    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 (对)

    相关文章

      网友评论

        本文标题:JS错题集

        本文链接:https://www.haomeiwen.com/subject/qmfxhqtx.html