作家
登录

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

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

  1. function foo1() { 
  2.  return { bar: "hello" };  
  3. }  
  4. function foo2() { 
  5.  return { bar: "hello" };  

进出意表的是,这两个函数返回的内容并不雷同。更确切地说是:

当调用一个函数的时刻,JavaScript不请求参数的数量匹配函数定义中的参数数量。如不雅传递的参数数量大年夜于函数定义中参数数量,那么多余参数将简单地被忽视。另一方面,如不雅传递的参数数量小于函数定义中的参数数量,那么缺氨赡参数在函数中被引用时将会给一个 undefined值。所以,在膳绫擎的例子中,简单地检查第2个参数是否不决义,就可以响应地肯定函数被调用以及进行的方法。

  1. console.log("foo1 returns:");  
  2. console.log(foo1());  
  3. console.log("foo2 returns:");  
  4. console.log(foo2()); 

1、应用 typeof bar === "object" 来肯定 bar 是否是对象的潜在陷阱是什么?若何避免这个陷阱?

  1. console.log((function f(n){return ((n > 1) ? n * f(n-1) : n)})(10)); 

将产生:

  1. true  
  2. false 
  1. foo1 returns:Object { 
  2.   bar: "hello" 
  3. foo2 returns:undefined 

这不仅是令人惊奇,并且特别让仁攀困惑的是, foo2()返回undefined却没有任何缺点抛出。

原因与如许一个事实有关,即分号在JavaScript中是一个可选项(尽管省略它们平日是异常糟糕的情势)。其结不雅就是,当碰着 foo2()中包含 return语句的代码行(代码行膳绫腔有其他任何代码),分号会急速主动插入到返回语句之后。

也不会抛掉足误,因为代码的其余部分是完全有效的,即使它没有获得调用或做任何工作(相当于它就是是一个未应用的代码块,定义了等同于字符串 "hello"的属性 bar)。

这种行动也支撑放置左括号于JavaScript代码行的末尾,而不是新代码行开首的商定。正如这里所示,这不仅仅只是JavaScript中的一个风格偏好。

(a)当用户点击“Button 4”的时刻会输出什么到控制台,为什么?(b)供给一个或多个备用的可按预期工作的实现筹划。

7. NaN 是什么?它的类型是什么?你若何靠得住地测试一个值是否等于 NaN ?

  1. (function(){ var a = b = 3; })();
  2. console.log("a defined? " + (typeof a !== 'undefined')); 
  3. console.log("b defined? " + (typeof b !== 'undefined')); 

NaN 属性代表一个“不是数字”的值。这个特别的值是因为运算不克不及履行而导致的,不克不及履行的原因要么是因为个中的运算对象之一非数字(例如, "abc" / 4),要么是因为运算的结不雅非数字(例如,除数为零)。

固然这看上去很简单,但 NaN 有一些令人惊奇的特点,如不雅你不知道它们的话,可能会导致令人头痛的bug。

起首,固然 NaN 意味着“不是数字”,然则它的类型,不管你信不信,是 Number:

  1. console.log(typeof NaN === "number"); // logs "true" 
  1. console.log(NaN === NaN); // logs "false"

      推荐阅读

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

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


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

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

关键词: 探索发现

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

网友点评
自媒体专栏

评论

热度

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