加入收藏 | 设为首页 | 会员中心 | 我要投稿 淮南站长网 (https://www.0554zz.cn/)- 管理运维、图像技术、智能营销、专属主机、5G!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

高德地图上线AR驾车导航

发布时间:2021-02-15 16:50:00 所属栏目:外闻 来源:互联网
导读:请注意,即使我们将索引传递给myCustomParseInt也不会造成任何问题。那是因为myCustomParseInt只会忽略它。将对象传递给函数的这种模式称为命名参数,它比位置参数更明确。 要更改基数,我们必须显式传递基数键。这意味着如果要解析以2为底的字符串,则必须

请注意,即使我们将索引传递给myCustomParseInt也不会造成任何问题。那是因为myCustomParseInt只会忽略它。将对象传递给函数的这种模式称为命名参数,它比位置参数更明确。

要更改基数,我们必须显式传递基数键。这意味着如果要解析以2为底的字符串,则必须转到文档并查看参数(基数)的确切名称。如果我们盲目地传递任何其他键,它将无济于事。这对我们来说很棒,因为它避免了意外行为。

(1) 具有解构的命名参数

不久前,JavaScript获得了称为解构的功能,让我们在myCustomParseInt实现中使用它。

 

惊讶吗?这种奇怪的输出的原因隐藏在位置参数的隐性背后。你会看到map和parseInt函数在显而易见的情况下隐藏了它们的一些秘密。

让我们再次查看代码 number.map(parseInt)。

这里到底发生了什么?

  • 我们在numbers数组上运行map函数。
  • map获取数组的第一项并将其传递给parseInt。
  • 现在,对于数组中的第一项(即1),它将执行 parseInt(1)。对...?错误!!!

实际上,map将三个参数传递给其回调函数。第一个是数组中的当前项目,第二个是项目的索引,第三个是整个数组。这本身没有问题,但真正的问题在于后一部分。

numbers.map(parseInt) 与 numbers.map((item) => parseInt(item)) 不同。你可以假设,由于回调函数仅接受item参数并将其传递给parseInt,因此我们可以跳过附加步骤。但是两者是不同的:在前者中,我们将所有数据从map传递到parseInt,而在后者中,我们仅传递项。

你可能不知道,但是parseInt的第二个参数称为基数。默认情况下,基数的值为10(以10为底,因为人类遵循十进制进行计数)。该代码出了问题,就是我们将当前项目的索引作为基数值传递给parseInt。这些是发生的实际函数调用:

 

你不能只提供firstName和lastName。当可选参数的数量增加到5个时,这个问题变得更加明显。现在,你必须提供5个null才能在这些参数之后提供参数。

(2) 将类型添加到位置参数不那么干净

如今,为你的实用程序添加类型变得非常普遍。使用位置参数,你别无选择,只能将类型与函数定义一起内联。这可能会使代码有点模糊,如果我们可以在一个块中声明所有参数的类型定义,那就更好了。

(3) 引起细微的错误

位置参数包装了很多隐性行为,这可能是造成微妙bug的原因。我们来看一个常见的JS技巧问题

 

7. 仅在发生异常情况时抛出异常。

8. 了解If-Else的合适替代方法。If-Else经常被过度使用,它是设计不良的早期迹象,事实上,许多设计模式都不需要If-Else语句。

9. 并非每个IF都需要ELSE IF或ELSE。

10. 重构就是重构。在进行重构时,请勿尝试添加新功能,相信我,结果不会很好。

11. 当识别垃圾代码时,花点时间把它清理干净,使其变得更好——无论“更好”在特定情况下意味着什么。

12. 若不学习设计模式将会遇到困难。它们无处不在,学习它们可以使工作更轻松。

13. 应用设计模式很可能会改进代码。

14. 抨击别人的代码不会让你成为更好的程序员,也不能彰显你的资历。初学者抨击其他开发人员的代码的主要原因是,即使是简单的概念,他们有时也会很难理解。

15. 在需要界面之前不要先创建界面,从具体的类开始就完全可以了。

16. 确定字段/属性/方法需要公开吗?不,将其私有化或内部化即可。

17. 超级简单的类(就像简单的方法一样)是正确的方法。

18. 为简单问题编写简单代码。

19. 确保对重构的每一部分都进行测试,否则你将不知道自己的问题所在。

20. 刚刚记下的代码并不比具有1100万次下载量的NPM / NuGet / pip程序包更好,下载f * kn程序包并继续。

21. 不要害怕为复杂的问题提出复杂的解决方案,只是要把握好大方向。


(编辑:淮南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读