二十、答案

第一章

  1. 哪个国际组织维护 JavaScript 的官方规范?
    1. W3C
    2. Ecma International
    3. 网景
    4. 太阳
  2. 哪些后端可以与 JavaScript 通信?
    1. PHP
    2. Python
    3. Java
    4. All of the above
  3. 谁是 JavaScript 的最初作者?
    1. 蒂姆•伯纳斯-李
    2. Brendan Eich
    3. Linus Torvalds
    4. 比尔盖茨
  4. 什么是 DOM?
    1. JavaScript 在内存中对 HTML 的表示
    2. 允许 JavaScript 修改页面的 API
    3. Both of the above
    4. 以上都不是
  5. Ajax 的主要用途是什么?
    1. 与 DOM 通信
    2. DOM 的操作
    3. 监听用户输入
    4. 与后端通信

第二章

  1. Trueor false: Node.js 是单线程的。
  2. :Node.js 的架构不受分布式拒绝服务(DDoS)攻击的影响。
  3. 最初是谁创建了 Node.js?
    1. 布兰登服从指令
    2. Linux Torvalds
    3. Ada Lovelace
    4. Ryan Dahl
  4. :JavaScript 在服务器端本质上是不安全的,因为代码暴露在前端。
  5. :Node.js 本质上优于 Python。

第三章

  1. 下面哪个不是有效的 JavaScript 变量声明?
    1. var myVar = 'hello';
    2. const myVar = "hello"
    3. String myVar = "hello";
    4. 让 myVar = "hello"
  2. 哪一个开始函数声明?
    1. 功能
    2. 常量
    3. 函数
    4. def
  3. 下面哪个不是基本循环类型?
    1. 对. .
    2. mapmap map
  4. JavaScript要求用分号分隔行:

    1. 真正的
  5. 在 JavaScript 中空格从不计数:

    1. 真正的

第四章

  1. JavaScript 本质上是:
    1. 同步
    2. 异步
    3. Both
  2. Afetch()调用返回 A:
    1. then
    2. next
    3. finally
    4. 承诺
  3. 使用原型继承,我们可以(选择所有应用的选项):
    1. 向基本数据类型添加方法
    2. 从基本数据类型中减去方法
    3. 重命名数据类型。
    4. 将我们的数据转换成另一种格式。
let x = !!1
console.log(x)
  1. 给定前面的代码,预期的输出是什么?
    1. 1
    2. 0
    3. true
const Officer = function(name, rank, posting) {
 this.name = name
 this.rank = rank
 this.posting = posting
 this.sayHello = () => {
 console.log(this.name)
 }
}

const Riker = new Officer("Will Riker", "Commander", "U.S.S. Enterprise")
  1. 根据这段代码,输出"威尔·瑞克"的最佳方式是什么?
    1. Riker.sayHello() *
    2. console.log(Riker.name)
    3. console.log(Riker.this.name)
    4. Officer.Riker.name()

第五章

考虑以下代码:

function someFunc() {
  let bar = 1;

  function zip() {
    alert(bar); // 1
    let beep = 2;

    function foo() {
      alert(bar); // 1
      alert(beep); // 2
    }
  }

  return zip
}

function sayHello(name) {
  const sayAlert = function() {
    alert(greeting)
  }

  const sayZip = function() {
    someFunc.zip()
  }

  let greeting = `Hello ${name}`
  return sayAlert
}
  1. 如何得到'Hello Bob'警报?
    1. sayHello()('Bob')
    2. sayHello('Bob')()*
    3. sayHello('Bob')
    4. someFunc()(sayHello('Bob'))
  2. 在前面的代码中,alert(greeting)将做什么?
    1. 'greeting'
    2. 'Hello Alice'
    3. 抛出错误
    4. 以上都不是
  3. 如何得到1的警告信息?
    1. someFunc()()*
    2. sayHello().sayZip()
    3. alert(someFunc.bar)
    4. sayZip()
  4. 如何得到2的警告信息?
    1. someFunc().foo()
    2. someFunc()().beep
    3. 不能,因为不在 scope 范围内
    4. 我们不能,因为它没有定义
  5. 如何将someFunc改为 alert 1 12 ?
    1. 我们不能。
    2. return zip之后加return foo
    3. return zip改为return foo
    4. foo声明之后添加return foo
  6. 给出上述问题的正确答案,我们如何得到三个 1,1,2 警告?
    1. someFunc()()()*
    2. someFunc()().foo()
    3. someFunc.foo()
    4. alert(someFunc)

第六章

考虑以下代码:

  <button>Click me!</button>
  1. 选择按钮的正确语法是什么?
    1. 文档。 querySelector(点击我!)
    2. document.querySelector(“.button”)
    3. document.querySelector 按钮(“#”)
    4. document.querySelector('button')

看看这段代码:

<button>Click me!</button>
<button>Click me two!</button>
<button>Click me three!</button>
<button>Click me four!</button>
  1. document.querySelector('button')将满足我们在每个按钮上放置一个点击处理程序的需求。
  2. 要把按钮的文字从“点击我!”变成“先点击我!”,我们应该怎么做?
    1. document.querySelectorAll('button')[0]。 innerHTML = "先点击我!"
    2. document.querySelector(“按钮”)[0]。 innerHTML = "先点击我!"
    3. document.querySelector(“按钮”)。 innerHTML = "先点击我!"
    4. document.querySelectorAll 按钮(“#”)[0]。 innerHTML = "先点击我!"
  3. 我们可以用什么方法添加另一个按钮?
    1. document.appendChild(按钮)
    2. 文档。 appendChild('')
    3. document.appendChild(document.createElement('button'))
    4. document.appendChild (document.querySelector(“按钮”))
  4. 如何将第三个按钮的类改为“third”?
    1. document.querySelector(“按钮”)[3]。 className = '第三'
    2. document.querySelectorAll('button')[2]。 className = 'third'
    3. document.querySelector(“按钮[2]”)。 className = '第三'
    4. document.querySelectorAll(“按钮”)[3]。 className = '第三'

第七章

回答以下问题来衡量你对事件的理解:

  1. 下面哪个是事件生命周期的第二阶段?
    1. 捕捉
    2. 靶向
    3. 冒泡
  2. (选择所有正确答案)这个事件对象给我们提供了什么?
    1. 被触发的事件类型
    2. 目标 DOM 节点,如果适用
    3. 鼠标坐标,如适用
    4. 父 DOM 节点(如果适用)

请看下面的代码:

container.addEventListener('click', (e) => {
  if (e.target.className === 'box') {
    document.querySelector('#color').innerHTML = e.target.style.backgroundColor
    document.querySelector('#message').innerHTML = e.target.innerHTML
    messageBox.style.visibility = 'visible'
    document.querySelector('#delete').addEventListener('click', (event) => {
      messageBox.style.visibility = 'hidden'
      e.target.remove()
    })
  }
})
  1. 它使用了哪些 JavaScript 特性? 选择所有适用的答案:
    1. DOM 操作
    2. 活动代表团
    3. 事件注册
    4. 风格变化
  2. 当容器被点击时会发生什么?

    1. box将是可见的。
    2. #color将是红色的。
    3. 选项 1 和 2。
    4. 没有足够的上下文来说明。
  3. 我们通常在事件生命周期的哪个阶段采取行动?

    1. 靶向
    2. 捕捉
    3. 冒泡

第九章

  1. 内存问题的根本原因是什么?

    1. 程序中的变量是全局的。
    2. 低效代码。
    3. JavaScript 的性能限制。
    4. 硬件不足。
  2. 当使用 DOM 元素时,应该在本地存储对它们的引用,而不是总是访问 DOM。

    1. 真正的
    2. 多次使用时正确
  3. JavaScript 是在服务器端进行预处理的,因此比 Python 更高效。
    1. 真正的
  4. 设置断点不能发现内存泄漏。
    1. 真正的
  5. 将所有变量存储在全局名称空间中是个好主意,因为引用它们更有效。
    1. 真正的