前端解析map_2020Web前端高频面试题解析3-前端面试

be968e4588c0e281a856b7f6c61cce22.png

Web面试题,Web前端面试题,开课吧Web前端

问题一:下面代码的输出结果是什么?

const arr = [1, 2, [3, 4, [5]]];

console.log(arr.flat(1));

A. [1, 2, [3, 4, [5]]];

B. [1, 2, 3, 4, [5]];

C. [1, 2, [3, 4, 5]];

D. [1, 2, 3, 4, 5];

解析:这里主要是考察Array.prototype.flat方法的使用,扁平化会创建一个新的,被扁平化的数组,扁平化的深度取决于传入的值;这里传入的是1也就是默认值,所以数组只会被扁平化一层,相当于[].concat([1,2], [3, 4, [5]]),故选B。

问题二:下面代码的输出结果是什么?

function sayHi() {

console.log(name);

console.log(age);

var name = 'Lydia';

let age = 21;

}

A. undefined 和 undefined;

B. Lydia 和 ReferenceError;

C. ReferenceError 和 21;

D. undefined 和 ReferenceError;

解析:本题的考点主要是var与let的区别以及var的预解析问题。var所声明的变量会被预解析,var name;提升到作用域最顶部,所以在开始的console.log(name)时,name已经存在,但是由于没有赋值,所以是undefined;而let会有暂时性死区,也就是在let声明变量之前,你都无法使用这个变量,会抛出一个错误,故选D。

问题三:判断一个给定的字符串是否是重构的。

解析:如果两个字符串是同构的,那么字符串 A 中所有出现的字符都可以用另一个字符替换,以便获得字符串B,而且必须保留字符的顺序。字符串 A 中的每个字符必须与字符串 B 的每个字符一对一对应。

paper 和 title 将返回 true。

egg 和 sad 将返回 false。

dgg 和 add 将返回 true。

isIsomorphic("egg", 'add'); // true

isIsomorphic("paper", 'title'); // true

isIsomorphic("kick", 'side'); // false

function isIsomorphic(firstString, secondString) {

// 检查长度是否相等,如果不相等, 它们不可能是同构的

if (firstString.length !== secondString.length) return false

var letterMap = {};

for (var i = 0; i < firstString.length; i++) {

var letterA = firstString[i],

letterB = secondString[i];

// 如果 letterA 不存在, 创建一个 map,并将 letterB 赋值给它

if (letterMap[letterA] === undefined) {

letterMap[letterA] = letterB;

} else if (letterMap[letterA] !== letterB) {

// 如果 letterA 在 map 中已存在, 但不是与 letterB 对应,

// 那么这意味着 letterA 与多个字符相对应。

return false;

}

}, , // 迭代完毕,如果满足条件,那么返回 true。

// 它们是同构的。

return true;

}

以上就是今天酷仔提供的Web面试题,以后酷仔每日均会提供Python及Web相关的习题,以上面试题内容由开课吧提供!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值