童年原是一生最美妙的阶段,那时的孩子是一朵花,也是一颗果子,是一片懵懵懂懂的聪明,一种永远不息的活动,一股强烈的欲望。——巴尔扎克
现在位置:首页 > 资源宝库 > 技术教程 > 有空就来做两道前端面试题题,你就是下一个大佬~ (8)

有空就来做两道前端面试题题,你就是下一个大佬~ (8)

绿色资源网  技术教程  2021-9-29  691  0评论
    <link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/ck_htmledit_views-1a85854398.css">
来自专栏《前端面试题》

前言

❤️ 作者主页: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。


来自《往期优质文章》

热门文章推荐:

评论一下 分享本文 联系站长
绿色资源网
看完文章就评论一下!
挤眼 亲亲 咆哮 开心 想想 可怜 糗大了 委屈 哈哈 小声点 右哼哼 左哼哼 疑问 坏笑 赚钱啦 悲伤 耍酷 勾引 厉害 握手 耶 嘻嘻 害羞 鼓掌 馋嘴 抓狂 抱抱 围观 威武 给力
提交评论

清空信息
关闭评论