?? 作者主页:Dianc的博客
?? 简介:没有什么远大的理想,做自己喜欢的事情就好~
?? 拒绝白嫖,欢迎 点赞、收藏、留言( 感谢支持~ヾ(≧▽≦*)o )
?? 扫码关注微信公众号: >>> Dianc小助手 <<<
?? 前端学习路线图、面试刷题、二次元壁纸珍藏,Dianc小助手后续会持续完善。
?? 大家的积极参与和讨论,是Dianc推送更多优质内容的动力~
前言: 题目来源于腾讯课堂的渡一教育的题目8-18-19。
为了方便做题,不会像之前那样直接放图片,这次我会把源码发出来(如果不是选择题,我会直接放出答案),小伙伴们如果做不出可以先试着输出一下,如果不懂可以看看我自己总结的解题思路。
第一题
源码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
var a = [1, [2, [3, 4, 5]]]
function flatten(arr) {
let result = []
for (var i = 0; i < arr.length; i++) {
if (Array.isArray(arr[i])) {
result = result.concat(flatten(arr[i]))
}
else {
result.push(arr[i])
}
}
return result;
}
console.log(flatten(a));
</script>
</body>
</html>
解题思路:
首先要理解扁平化是什么意思,顾名思义就是减少复杂性装饰,使其事物本身更简洁、简单,突出主题。即要把多余的嵌套去除,递归判断条件就是如果不是数组那么结束,抛出答案,即扁平化的数组。
第二题
源码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
let a = { n: 1 };
let b = a;
a.x = a = { n: 2 };
console.log(a.x)
console.log(b.x)
</script>
</body>
</html>
答案:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
let a = { n: 1 };
let b = a;
a.x = a = { n: 2 };
console.log(a.x)
console.log(b.x)
</script>
</body>
</html>
解题思路:
这一题涉及到赋值的优先级问题,a.x比等于号的赋值优先级高,所以会先将a.x赋值成{n:2},再将a的指针变成{n:2}。所以原本a.x是有值的,后来再进行赋值时找不到,就会输出undefined。
最后
其实大厂的题目有简单也有难点,甚至有考细节的地方,就和年轻时考的数学试卷一样,选择题总有送分的对吧,所以简单的题一定要拿下,但也不能掉以轻心。 如果上面的题目你还有不懂的建议参考解题思路去复习,查漏补缺,最后祝各位小伙伴都能进入自己理想的企业 !
热门文章推荐:
🥇 还不会搭建个人博客?手把手教你用Wordpress搭建只属于你的世界~ 🥈 PHP实现简易登陆注册系统全步骤 🥉php获取B站uid用户头像
|