有空就来做两道前端面试题题,你就是下一个大佬~
Posted Dian'C
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有空就来做两道前端面试题题,你就是下一个大佬~ 相关的知识,希望对你有一定的参考价值。
|
前言
❤️ 作者主页:https://hongweblog.blog.csdn.net/
❤️ 简介:没有什么远大的理想,做自己喜欢的事情就好~
❤️ 扫码关注微信公众号: >>> Dianc小助手 <<<
❤️ 前端学习路线图、面试刷题、二次元壁纸珍藏,Dianc小助手后续会持续完善。
❤️ 大家的积极参与和讨论,是Dianc推送更多优质内容的动力~
前言:
题目来源于腾讯课堂的渡一教育的题目9-21-22。
为了方便做题,不会像之前那样直接放图片,这次我会把源码发出来(如果不是选择题,我会直接放出答案),小伙伴们如果做不出可以先试着输出一下,如果不懂可以看看我自己总结的解题思路。
第一题
说出下列的执行结果,并解释原因
源码:
<!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 fullName = 'a';
var obj = {
fullName: 'b',
prop: {
fullName: 'c',
getFullName: function() {
return this.fullName;
}
}
}
console.log(obj.prop.getFullName());
var test = obj.prop.getFullName;
console.log(test());
</script>
</body>
</html>
解题思路
首先这题考察this的指向,那么我们看清楚第一次控制台输出的时候函数是直接对象执行,所以第一次输出的fullName应该指向父级prop的fullName,即c。
第二次并不是直接使用对象执行函数,所以应该翻译成window.test();那么全局的fullName即是a,所以答案就出来了。
第二题
说出下列的执行结果,并解释原因
源码:
<!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 foo = {
bar: function() {
return this.baz;
},
baz: 1
}
console.log(typeof(f = foo.bar)());
</script>
</body>
</html>
解题思路
首先我们需要知道输出的时候后面有(),说明要执行函数,此时我们发现f其实是全局的,所以调用起来应该是window.f(),那么foo.bar的this应该就指向window,往上找不到bar的属性,所以应该输出undefined。
|
热门文章推荐:
🥇 这样配置学习VSCode,写前端代码想不快都难(❤️精心准备多动图,建议收藏噢~❤️)
🥈 还不会搭建个人博客?手把手教你用Wordpress搭建只属于你的世界~
🥉 Hexo的准备工作(手把手教你搭建Node.js/Git环境)
以上是关于有空就来做两道前端面试题题,你就是下一个大佬~ 的主要内容,如果未能解决你的问题,请参考以下文章