ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

前端面试题JavaScript篇——2022-09-16

2022-09-16 16:00:08  阅读:301  来源: 互联网

标签:面试题 console log 16 09 catch 代码执行 push obj


每日3题

1 以下代码执行后,控制台中的输出内容为?

// 以下代码执行后,浏览器的控制台中输出的内容是什么
var arr = [0, 1, 2];
arr[10] = 10;
var newArr = arr.filter((x) => x === undefined);

console.log(newArr);

2 以下代码执行后,控制台中的输出内容为?

// 以下代码执行后,控制台中输出的内容是什么
const obj = {
  2: 3,
  3: 4,
  length: 2,
  push: Array.prototype.push,
};
obj.push(1);
console.log(obj);

3 以下代码执行后,控制台中的输出内容为?

// 以下代码执行后,控制台中输出的内容是什么
let x;
try {
  throw new Error();
} catch (x) {
  x = 1;
  console.log(x);
}

console.log(x);
  • 公众号【今天也要写bug】更多前端面试题

答案及解析

1

// 答案:[]
// 考察 filter 方法
var arr = [0, 1, 2];
arr[10] = 10;
var newArr = arr.filter((x) => x === undefined);
// 传入 filter 方法的函数,只会在已经赋值的索引上被调用,对于那些已经被删除或者从未被赋值的索引不会被调用。
// 所以最终没有值通过测试
console.log(newArr);

2

// 答案:{ '2': 1, '3': 4, length: 3, push: [Function: push] }
// 考察 push 方法
// push 方法可以应用在类似数组的对象上
// push 方法根据 length 属性来决定从哪里开始插入给定的值
const obj = {
  2: 3,
  3: 4,
  length: 2,
  push: Array.prototype.push,
};
obj.push(1); // obj.length=2,所以 push 插入到索引 2 处,即 obj[2]=1
console.log(obj);

3

// 答案:1 undefined
// 考察 catch 和作用域
// catch块指定一个标识符(在下面为x),该标识符保存由throw语句指定的值。
// catch块是唯一的,因为当输入catch块时,JavaScript 会创建此标识符,并将其添加到当前作用域;
// 标识符仅在catch块执行时存在;catch块执行完成后,标识符不再可用。
let x;
try {
  throw new Error();
} catch (x) {
  // x 仅在 catch 块中可用
  x = 1;
  console.log(x); // 输出 1
}

console.log(x); // x 从未赋值,输出 undefined

标签:面试题,console,log,16,09,catch,代码执行,push,obj
来源: https://www.cnblogs.com/bidong/p/16700224.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有