送你43道JS面试题(收藏)(7)

21. 下面代码的输出是什么?

const sum = eval("10*10+5");

A: 105

B: "105"

C: TypeError

D: "10*10+5"

答案: A

eval会为字符串传递的代码求值。 如果它是一个表达式,就像在这种情况下一样,它会计算表达式。 表达式为10 * 10 + 5计算得到105。

22. cool_secret可以访问多长时间?

sessionStorage.setItem("cool_secret", 123);

A:永远,数据不会丢失。

B:用户关闭选项卡时。

C:当用户关闭整个浏览器时,不仅是选项卡。

D:用户关闭计算机时。

答案: B

关闭选项卡后,将删除存储在sessionStorage中的数据。

如果使用localStorage,数据将永远存在,除非例如调用localStorage.clear()。

23. 下面代码的输出是什么?

var num = 8;
var num = 10;

console.log(num);

A: 8

B: 10

C: SyntaxError

D: ReferenceError

答案: B

使用var关键字,您可以用相同的名称声明多个变量。然后变量将保存最新的值。

您不能使用let或const来实现这一点,因为它们是块作用域的。

24. 下面代码的输出是什么?

const obj = { 1: "a", 2: "b", 3: "c" };
const set = new Set([1, 2, 3, 4, 5]);

obj.hasOwnProperty("1");
obj.hasOwnProperty(1);
set.has("1");
set.has(1);

A: false true false true

B: false true true true

C: true true false true

D: true true true true

答案: C

所有对象键(不包括Symbols)都会被存储为字符串,即使你没有给定字符串类型的键。 这就是为什么obj.hasOwnProperty('1')也返回true。

上面的说法不适用于Set。 在我们的Set中没有“1”:set.has('1')返回false。 它有数字类型1,set.has(1)返回true。

25. 下面代码的输出是什么?

const obj = { a: "one", b: "two", a: "three" };
console.log(obj);

A: { a: "one", b: "two" }

B: { b: "two", a: "three" }

C: { a: "three", b: "two" }

D: SyntaxError

答案: C

如果对象有两个具有相同名称的键,则将替前面的键。它仍将处于第一个位置,但具有最后指定的值。

26. JavaScript全局执行上下文为你创建了两个东西:全局对象和this关键字.

A: 对

B: 错误

C: 视情况而定

答案: A

基本执行上下文是全局执行上下文:它是代码中随处可访问的内容。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/97.html