文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

问题来了!5个JavaScript问答测试你的技能熟练程度

2024-12-11 20:44

关注

[[331133]]

问题1:数组排序比较

思考以下数组和条件,你认为结果如何?


答案 


现在我们知道了结果,让我们解释一下原因。对于前两个输出,说明非常简单,该sort()方法对原始数组进行排序并返回对相同对象arr1.sort()的引用,因此实际上是对相同对象的引用arr1。

对于第三个输出,arr1.sort() === arr2.sort()即使每个数组上的元素相同,=== 也不会测试数组的元素,而是测试每个对象的引用(在这种情况下是不同的),因此返回false。

问题2:对象可变性

对于这种情况,我想模拟一个代表作者的对象以及有关他的网站的信息。然后,我们使用这个方法,Object.freeze()以便无法对其进行更改,并将其进行测试。你认为结果如何?


答案


如果你做对了,恭喜!如果没有,请不要担心。让我们解释发生了什么。当我们调用该方法时,Object.freeze()冻结了对象,这意味着不能再更改对象;冻结对象可以防止向其添加新属性,也可以防止现有属性被删除或更改。

但是,为什么我们能够更改对象?实际上我们没有,这就是窍门。出于各种目的,可变author网站中是对对象的引用,并且该引用在整个代码中保持不变。我们确实更改了website对象内部的一个属性,但这并没有更改对对象本身的引用。

如果你想知道如果尝试更改author对象的属性会发生什么,那么有两种可能的答案。让我们从第一个开始:


在第一种情况下,即使我们更改属性,name也没有真正更改,也没有错误,没有警告,就像那行代码永远不会执行一样。第二种答案是在严格模式下


在严格模式下,如果尝试修改冻结的对象,则会得到TypeError。比以前好多了。

问题3:递归

给定以下递归函数,当我们使用“ blog”作为参数调用它时,你认为结果是什么?


答案


对于这个问题,没有技巧,只是递归函数的基本用法,它将继续调用自身,直到字符串中只有一个元素为止str,在这种情况下,将打印原始字符串的最后一个字符g。递归函数很重要,并且可以通过非常有趣的方式解决问题,因此理解它们很重要。

问题4:范围

你认为控制台的输出是什么,为什么?


答案


但是,如何在封闭函数的范围之外b进行定义?诀窍是,最多是一个全局变量。但仍保留在功能的封闭之下。请注意,在严格模式下,这将生成一个ReferenceError: b is not defined。

问题5:有关闭包的更多信息

以下代码段是一个实际的流行访谈问题,问题是,你认为输出结果是什么?


答案


答对了吗?这样做的原因是,在循环中执行的每个函数都将在整个循环完成后执行,因此所有函数都将引用存储在中的最后一个值i,即5。闭包可以通过为每次迭代创建一个唯一的作用域,将变量的每个唯一值存储在其作用域中来防止此问题,如下所示:


ES2015提供的另一个选项是使用let代替var:


最后

希望你能像我一样开心并从中学到东西,这是一篇特别有趣的文章,将来我可能会做更多这样的事情。

来源:今日头条内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯