资讯专栏INFORMATION COLUMN

几道题考考你 JavaScript 作用域(80%的人回答不对)

Ilikewhite / 3341人阅读

摘要:定义变量如果不使用则变量为为全局作用域。当然严格模式是禁止这样做的。遵循词法作用域原则,其中后两题来源于权威指南。非箭头函数下的指向运行时所在作用域。中逗号操作符会从左到右计算它的操作数,返回最后一个操作数的值。原文发表于我的博客

(function(){
    var a = b =1;
})()
console.log(b)

答案:1。定义变量如果不使用 var 则变量为为全局作用域。当然严格模式是禁止这样做的。

var a =20;
function t1(){
    console.log(a)
}
(function t2() {
    var a = 10;
    t1()
})()
var scope = "global scope";
function checkscope(){
    var scope = "local scope";
    function f(){
        return scope;
    }
    return f();
}
checkscope();
var scope = "global scope";
function checkscope(){
    var scope = "local scope";
    function f(){
        return scope;
    }
    return f;
}
checkscope()();

答案:20, "local scope" , "local scope"。JS 遵循词法作用域原则,其中后两题来源于《JavaScript权威指南》。

var a = 20;

var obj = {
    a: 40,
    test() {
        var a = 10;
        console.log(this.a)
    }
}
// Q1
obj.test();
// Q2
var t = obj.test;
t();
// Q3
(obj.test)();
// Q4
(obj.test, obj.test)()

答案:40,20,40,20。非箭头函数下的 this 指向运行时所在作用域。Q4 中逗号操作符会从左到右计算它的操作数,返回最后一个操作数的值。

原文发表于我的 GitHub 博客

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/88872.html

相关文章

  • 2017-10-07 前端日报

    摘要:前端日报精选常用知识点概述深入浅出妙用中再学习异步流程控制中文系列文章对象字面量一步前端系列文章模板字符串一步前端与介绍掘金定义组件模板的七种方式教程组件通讯单个组件组件教程几道题考考你作用域的人回答不对阿德英文 2017-10-07 前端日报 精选 ES6常用知识点概述深入浅出妙用 Javascript 中 apply、call、bindjavascript再学习Promise 异步...

    weizx 评论0 收藏0
  • 几道MySQL索引相关的重点面试题

    摘要:如果我们要进行范围查找,例如查找为的人,哈希表同样不支持,只能遍历全表。索引字段通过哈希映射成哈希码,如果很多字段都刚好映射到相同值的哈希码的话,那么形成的索引结构将会是一条很长的链表,这样的话,查找的时间就会大大增加。MySQL 索引你真的懂吗?这几道题带你了解索引的几个重要知识点 1. 什么是最左前缀原则? 以下回答全部是基于MySQL的InnoDB引擎 例如对于下面这一张表 sh...

    hidogs 评论0 收藏0
  • 开开心心做几道JavaScript机试题 - 02

    摘要:前集回顾我们在开开心心做几道机试题中吐了槽,也顺势展开了机试题之旅,本章我们暂时压抑自己的吐槽之心,继续就题目前行。其实和都是构造函数,可以直接调用的。请尝试完成一个解析模块本题考查对的理解,各部分都是什么意思。 前集回顾 我们在开开心心做几道JavaScript机试题 - 01中吐了槽,也顺势展开了机试题之旅,本章我们暂时压抑自己的吐槽之心,继续就题目前行。仍然希望对各位正确认识Ja...

    seal_de 评论0 收藏0
  • 几道前端面试题小记

    摘要:全局环境调用函数的对象实际为,所以函数内的指向构造函数通过构造函造函数生成了一个新对象,指向这个新对象。学习前端一个月,上一周面试了大概多家,收获的却是寥寥。为了效率,前端各方面的内容都有涉猎,深度却相当不足,面试时暴露各种问题。 最近面试了不少家,苦于前端经验薄弱,被各种血虐。做了不少家面试题,把各种不会的回来再做一遍,作为经验总结吧。 1.如何最优性能去重一个数组? 方法有好多,比...

    tulayang 评论0 收藏0
  • 几道前端面试题小记

    摘要:全局环境调用函数的对象实际为,所以函数内的指向构造函数通过构造函造函数生成了一个新对象,指向这个新对象。学习前端一个月,上一周面试了大概多家,收获的却是寥寥。为了效率,前端各方面的内容都有涉猎,深度却相当不足,面试时暴露各种问题。 最近面试了不少家,苦于前端经验薄弱,被各种血虐。做了不少家面试题,把各种不会的回来再做一遍,作为经验总结吧。 1.如何最优性能去重一个数组? 方法有好多,比...

    yhaolpz 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<