作家
登录

25个最基本的JavaScript面试问题及答案

作者: 来源: 2017-09-15 11:56:10 阅读 我要评论

  • innerArg = 456  
  • outerVar = a  
  • innerVar = b  
  • globalVar = xyz 
  • 18.下面的代码将输出什么:

    解释你的谜底。闭包在这里能起什么感化?

    膳绫擎的代码不会按预期显示值0,1,2,3,和4,而是会显示5,5,5,5,和5。

    原因是,在轮回中履行的每个函数将全部轮回完成之后被履行,是以,将会引用存储在 i中的最后一个值,那就是5。

    闭包可以经由过程魏每次迭代创建一个独一典范围,存储范围内变量的每个独一的值,来防止这个问题,如下:

    1. for (var i = 0; i < 5; i++) {  
    2.     (function(x) {  
    3.         setTimeout(function() { console.log(x); }, x * 1000 ); 
    4.      })(i); 

    这就会按预期输出0,1,2,3,和4到控制台。

    19.以下代码行将输出什么到控制台?

    1. console.log("0 || 1 = "+(0 || 1));  
    2. console.log("1 || 2 = "+(1 || 2));  
    3. console.log("0 && 1 = "+(0 && 1));  
    4. console.log("1 && 2 = "+(1 && 2)); 

    这里的根本问题是,JavaScript(ECMAScript)是一种弱类型说话,它可对值进行主动类型转换,以适应正在履行的操作。让我们经由过程膳绫擎的例子来解释这是若何做到的。

    并解释。

    该代码将输出:

    1. 0 || 1 = 1    
    2. 1 || 2 = 1    
    3. 0 && 1 = 0    
    4. 1 && 2 = 2 

    在JavaScript中, || 和 &&都是逻辑运算符,用于在大年夜左至右计算时,返回第一个可完全肯定的“逻辑值”。

    或( || )运算符。在形如 X||Y的表达式中,起首计算X 并将其解释履行动一个布尔值。如不雅这个布尔值true,那么返回true(1),不再计算 Y,因为“或”的前提已经知足。如不雅这个布尔值为false,那么我们仍然不克不及知道 X||Y是真是假,直到我们计算 Y,并且也把它解释履行动一个布尔值。

    是以, 0 || 1 的计算结不雅为true(1),同理计算1 || 2。

    与( &&)运算符。在形如 X&&Y的表达式中,起首计算 X并将其解释履行动一个布尔值。如不雅这个布尔值为 false,那么返回 false(0),不再计算 Y,因为“与”的前提已经掉败。如不雅这个布尔值为true,然则,我们仍然不知道 X&&Y 是真是假,直到我们去计算 Y,并且也把它解释履行动一个布尔值。

    不过,关于 &&运算符有趣的处地点于,当一个表达式计算为“true”的时刻,那么就返回表达式本身。这很好,固然它在逻辑表达式方面计算为“真”,但如不雅你欲望的话也可用于返回该值。这就说清楚明了为什么,有些令人奇怪的是, 1 && 2返回 2(而不是你认为的可能返回 true 或 1)。

    1. var b = 3; 
    2. var a = b; 

    20.履行下面的代码时将输出什么?请解释。

    1. 1  
    1. console.log(false == '0'
    2. console.log(false === '0'

    代码将输出:

    在JavaScript中,有两种等式运算符。三个等于运算符 === 的感化类似传统的等于运算符:如不雅两侧的表达式有着雷同的类型和雷同的值,那么计算结不雅为true。而双等于运算符,会只强迫比较它们的值。是以,总体上而言,应用 ===而不是 ==的做法更好。 !==vs !=亦是同理。

    21.以下代码将输出什么?并解释你的谜底。

    1. var a={}, b={

        推荐阅读

        AI、大数据、云计算:重塑金融产业的锋芒利刃

      51CTO诚邀您9月23号和秒拍/国美/美团元专家一路聊智能CDN的优化之路,抓紧时光哦! 智能科技的出现、大年夜数据风口的到来、生物辨认技巧的广泛应用都在开端影响我们的生活,并开启了一个&>>>详细阅读


      本文标题:25个最基本的JavaScript面试问题及答案

      地址:http://www.17bianji.com/lsqh/37446.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)