首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

北妈每日一题:+【+【=多少?

喜欢我的都关注我了

北妈每日一题

在社区或者群里,总不定时收到各种“奇葩+天秀的js问题”,比如 []+[]+[] 答案,1+“1”+【】怎么解啊?等等

我不知道这些天才是对编程真爱,还是因为时间很多,但提出这种问题还不算什么,牛鼻的是解答这些问题的牛人们。

下面跟着小北哥哥看每日一题:++[[]][+[]]+[+[]] = ?

这个问题我是不会的,真的,解这类题,要翻很多JS基础属性资料,但不代表牛人们不会或者不想解答,下面来看看牛人的庖丁解牛

这是一个Javascript 语言题目,一个完全有效的等式,不信自己可以试一下,下面看看高人的题解:

如果把这段表达式拆分开来,它相等于:

在 JavaScript 里, 是完全正确的。 会把一些字符转化成数字,在这里,这个式子会变成 或 。

因此,我们可以简化一下( 比 有更高的优先级):

因为 的意思是:获取 的第一个元素,这就得出了下面的结果:

返回内部数组 ()。根据语言规范,我们说 是不正确的,但让我们把这个内部数组称作 A,以避免错误的写法。

, 因为 的意思是”加一”。

;换句话说,你得到的永远是个数值( 并不一定得到的是个数值,但 一定是)。

同样,我们可以把这一堆代码简化的更清晰。让我们把 A 换回成 :

在 JavaScript 里,这也是正确的:,因为 (这相当于一个空的数组的内部元素连接),于是:

让我们再次简化一下:

同样,在 Javascript 里,这是正确的:,因为这是相当于一个有一个元素的数组的内部元素的连接。 各元素会使用,分隔。 当只有一个元素时,你可以推论出这个过程的结果就是它自身的第一个元素。

所以,最终我们得到 (数字 + 字符串 = 字符串):

牛鼻不?佩服不,我去验证和查了犀牛书,还真的是,大神基础扎实不得不服啊,也希望各位不单单要钻

牛角尖,而是在钻研的过程中,掌握更多的基础。

觉得有帮助,

就尽快转发、传播吧!

每天只想听你们说:小北最帅!

前端你别闹

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181112G1CQPW00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券