广告
返回顶部
首页 > 资讯 > 前端开发 > VUE >一道面试题考验JS的基本功
  • 482
分享到

一道面试题考验JS的基本功

2024-04-02 19:04:59 482人浏览 泡泡鱼
摘要

这篇文章主要讲解了“一道面试题考验js的基本功”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“一道面试题考验JS的基本功”吧!// 求出如下题目结果

这篇文章主要讲解了“一道面试题考验js的基本功”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“一道面试题考验JS的基本功”吧!

// 求出如下题目结果 ({} + {}).length ([] + []).length (function() {}).length

这道题目乍一看可能会让你有点懵,你可能会想:一个对象和一个对象相加能得到什么?还能求出其长度?

其实这道题目相当考验了作为一位WEB前端开发工程师的基本功

在看到这个题目之后,我们首先分析一下情况:

1、({} + {}).length

两个空对象相加,肯定不是数值运算,那么只有可能是字符串连接了,那你可能会得到 “{}{}”  这样的结果,其实不然,因为你忽视了字符串在连接时默认会调用相应的toString()方法

一个空对象调用toString()方法会得到什么?

({}).toString() // "[object Object]"

得到是 “[object Object]” 这样的字符串,长度为15,那么两个空对象相加之后,其长度则为30

({} + {}).length // 相当于 ({}.toString() + {}.toString()).length // 也就是 "[object Object][object Object]",求得这个字符串长度为30

2、([] + []).length

有了第一道题的经验,那么你可能会这么想:两个空数组相加,一定也是字符串连接,也会调用其toString()方法,最终相当于求 “[object  Array][object Array]” 这个字符串的长度,从而得出最终结果28

但是,数组的toString()方法是被重写过的

[1, 2, 3].toString() // 得到的是 "1,2,3" 这样由逗号分割元素的字符串

如果一个空数组调用toString()方法,得到的只会是空字符串“”

所以,这道题的最终结果为0

3、(function() {}).length

有了前两道题目的经验,那你可能会很自然的想到:这里的function也是会调用toString()方法的。如果你这样想,那就是被前两道题目误导了:函数的长度是其形参的个数,所以最终结果是0

感谢各位的阅读,以上就是“一道面试题考验JS的基本功”的内容了,经过本文的学习后,相信大家对一道面试题考验JS的基本功这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 一道面试题考验JS的基本功

本文链接: https://www.lsjlt.com/news/84368.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 一道面试题考验JS的基本功
    这篇文章主要讲解了“一道面试题考验JS的基本功”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“一道面试题考验JS的基本功”吧!// 求出如下题目结果...
    99+
    2022-10-19
  • 一道超经典js面试题Foo.getName()的故事
    目录一、解析:1.Foo.getName()二、解析:2.getName()三、解析:3.Foo().getName()四、解析:4.getName()五、解析:5.new Foo....
    99+
    2022-11-13
  • 一道值得深入思考的iOS面试题详解
    前言 最近在群里看到有人发的一道面试题,题目如下: @interface Spark : NSObject @property(nonatomic,copy) NSStr...
    99+
    2022-05-22
    ios 面试题
  • 深入解答关于Python的11道基本面试题
    前言 本文给大家深入的解答了关于Python的11道基本面试题,通过这些面试题大家能对python进一步的了解和学习,下面话不多说,来看看详细的介绍吧。 一、单引号,双引号,三引号的区别 分别阐述3种引号...
    99+
    2022-06-04
    面试题 Python
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作