js 学习【三】

输出是什么?

const numbers = [1, 2, 3]

numbers[10] = 11

console.log(numbers)

  • A: [1, 2, 3, 7 x null, 11]

  • B: [1, 2, 3, 11]

  • C: [1, 2, 3, 7 x empty, 11]

  • D: SyntaxError

答案: C

当你为数组设置超过数组长度的值的时候, JavaScript 会创建名为 “empty slots” 的东西。它们的值实际上是 undefined。你会看到以下场景:

[1, 2, 3, 7 x empty, 11]

这取决于你的运行环境(每个浏览器,以及 node 环境,都有可能不同)

JavaScript 中的一切都是?

A: 基本类型与对象

B: 函数与对象

C: 只有对象

D: 数字与对象

答案: A

JavaScript 只有基本类型和对象。

基本类型包括 booleannullundefinedbigintnumberstringsymbol

输出是什么?

!!null

!!‘’

!!1

  • A: false true false

  • B: false false true

  • C: false true true

  • D: true true false

B

null 是 fasle。 !null 的值是 true。 !true 的值是 false

"" 是 fasle。 !"" 的值是 true。 !true 的值是 false

1 是 true。 !1 的值是 false。 !false 的值是 true

setInterval 方法的返回值是什么?

A: 一个唯一的id

B: 该方法指定的毫秒数

C: 传递的函数

D: undefined

答案: A

setInterval 返回一个唯一的 id。此 id 可被用于 clearInterval 函数来取消定时。

输出是什么?

[…‘Lydia’]

A: [“L”, “y”, “d”, “i”, “a”]

B: [“Lydia”]

C: [[], “Lydia”]

D: [[“L”, “y”, “d”, “i”, “a”]]

答案: A

string 类型是可迭代的。扩展运算符将迭代的每个字符映射成一个元素。

输出是什么?

let person = { name: “Lydia” };

const members = [person];

person = null;

console.log(members);

  • A: null

  • B: [null]

  • C: [{}]

  • D: [{ name: "Lydia" }]

首先我们声明了一个拥有name属性的对象 person。然后我们又声明了一个变量members. 将首个元素赋值为变量person。 当设置两个对象彼此相等时,它们会通过 引用 进行交互。但是当你将引用从一个变量分配至另一个变量时,其实只是执行了一个 复制 操作。(注意一点,他们的引用 并不相同!),接下来我们让person等于null。我们没有修改数组第一个元素的值,而只是修改了变量person的值,因为元素(复制而来)的引用与person不同。members的第一个元素仍然保持着对原始对象的引用。当我们输出members数组时,第一个元素会将引用的对象打印出来。

输出是什么?

const person = {

name: “Lydia”,

age: 21

};

for (const item in person) {

console.log(item);

}

  • A: { name: "Lydia" }, { age: 21 }

  • B: "name", "age"

  • C: "Lydia", 21

  • D: ["name", "Lydia"], ["age", 21]

答案: B

for-in循环中,通过循环key,也就是这里的nameage。在底层,对象的key都是字符串(如果他们不是Symbol的话)。在每次循环中,我们将item设定为当前遍历到的key.所以一开始,itemname,之后 item输出的则是age

输出是什么?

console.log(3 + 4 + “5”);

  • A: "345"

  • B: "75"

  • C: 12

  • D: "12"

答案: B

当所有运算符的 优先级 相同时,计算表达式需要确定运算符的结合顺序,即从右到左还是从左往右。在这个例子中,我们只有一类运算符+,对于加法来说,结合顺序就是从左到右。

3 + 4首先计算,得到数字7.

由于类型的强制转换,7 + '5'的结果是"75". JavaScript将7转换成了字符串,可以参考问题15.我们可以用+号把两个字符串连接起来。 "7" + "5" 就得到了"75".

num的值是什么?

const num = parseInt(“7*6”, 10);

  • A: 42

  • B: "42"

  • C: 7

  • D: NaN

只返回了字符串中第一个字母. 设定了 进制 后 (也就是第二个参数,指定需要解析的数字是什么进制: 十进制、十六机制、八进制、二进制等等……),parseInt 检查字符串中的字符是否合法. 一旦遇到一个在指定进制中不合法的字符后,立即停止解析并且忽略后面所有的字符。

*就是不合法的数字字符。所以只解析到"7",并将其解析为十进制的7num的值即为7.

输出是什么?

function Car() {

this.make = “Lamborghini”;

return { make: “Maserati” };

}

const myCar = new Car();

console.log(myCar.make);

  • A: "Lamborghini"

  • B: "Maserati"

  • C: ReferenceError

  • D: TypeError

答案: B

返回属性的时候,属性的值等于 返回的 值,而不是构造函数中设定的值。我们返回了字符串 "Maserati",所以 myCar.make等于"Maserati".

输出是什么?

const set = new Set([1, 1, 2, 3, 4]);

console.log(set);

  • A: [1, 1, 2, 3, 4]

  • B: [1, 2, 3, 4]

  • C: {1, 1, 2, 3, 4}

  • D: {1, 2, 3, 4}

答案: D

Set对象是独一无二的值的集合:也就是说同一个值在其中仅出现一次。

我们传入了数组[1, 1, 2, 3, 4],他有一个重复值1.以为一个集合里不能有两个重复的值,其中一个就被移除了。所以结果是 {1, 2, 3, 4}.

输出是什么?

// counter.js

let counter = 10;

export default counter;

// index.js

import myCounter from “./counter”;

myCounter += 1;

console.log(myCounter);

  • A: 10

  • B: 11

  • C: Error

  • D: NaN

答案: C

引入的模块是 只读 的: 你不能修改引入的模块。只有导出他们的模块才能修改其值。

当我们给myCounter增加一个值的时候会抛出一个异常: myCounter是只读的,不能被修改。

输出是什么?

web浏览器中的javascript

window对象

  • 计时器

  • 浏览器定位和导航

  • 浏览历史

  • 浏览器和屏幕信息

  • 对话框

  • 错误处理

  • 作为window对象属性的文档元素

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值