为啥 Banana 在 JavaScript 中打印? [复制]
Posted
技术标签:
【中文标题】为啥 Banana 在 JavaScript 中打印? [复制]【英文标题】:Why does Banana is printing in JavaScript? [duplicate]为什么 Banana 在 JavaScript 中打印? [复制] 【发布时间】:2022-01-06 22:32:41 【问题描述】:今天我尝试使用 nodejs 打印随机字母,不知何故我试图在日志中打印“香蕉”,但不幸的是我错过了 n
(字母)来记录,但它仍然可以正常工作。为什么它打印整个 banana
而不是 'baaa'?
('b' + 'a' + + 'a' + 'a').toLowerCase();
输出是banana
,但为什么呢?即使+ +
(空字符)生成NaN
,它仍然应该打印bananaa
,而不仅仅是banana
。
截图:
【问题讨论】:
它尝试添加为数字并获取 NaN 并将其余部分添加为字符串,并且 NaN.toString 是 NaN,因此它变为baNaNa
而没有 toLowerCase。当你在 + + 符号之后的第二个字母上使用 'b' + 'a' + + 'c' + 'a'
这个或任何其他字符时,也没关系
如果您不使用toLowercase()
,您可以在其中看到NaN
,它告诉您您正在使用的数学运算 (+ + 'a'
) 导致的结果不是号码。
【参考方案1】:
额外的+
在后面的“a”上充当一元运算符,并尝试将其强制为一个数字,从而导致 NaN。其余的+
符号都被解释为字符串连接,这导致NaN
被强制转换为字符串,即。 ('b' + 'a' + + 'a' + 'a') = ('b' + 'a' + NaN + 'a') = ('baNaNa')
.
【讨论】:
你的意思是a
和NaN
也需要第二个?因为它有 3 个a
没有NaN
中间的 'a' 被前面的 +
强制转换为 NaN,然后其余的正常连接。如果您在开发控制台中评估 + 'a'
,您会看到它的评估结果为 NaN。
我明白了,我只是为了好玩而把它放出来,你得到了无限量的支持 :) 祝你有美好的一天。请修改答案,也许它会帮助其他人。【参考方案2】:
有趣!!
console.log(('b' + 'a' + + 'a' + 'a').toLowerCase());
console.log(('b' + 'a' + + 'a' + 'a'));
console.log(( 'a' + + 'b' ));
//output
banana
baNaNa
aNaN
在第三条语句中,'b' 不打印为 + + 'b' = NaN //not a number
并且
.toLowerCase()
使它成为 nan
因此单词 banana
【讨论】:
谢谢兄弟,现在大家都明白了:)我已经接受了一个答案。感谢您的宝贵时间。【参考方案3】:由于您什么都不添加,因此很可能返回 NaN
【讨论】:
以上是关于为啥 Banana 在 JavaScript 中打印? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
为啥即使我的数据库已连接,我的 Heroku 应用程序在其他设备中打开时也没有加载任何数据?