javascript - 为什么“var name=42;” 创建一个字符串而不是一个数字?
问题描述
我刚刚读了一本关于 JavaScript 的网络漫画,看起来像个笑话:
>>> var x = 42;
>>> x+1;
43
>>> var name = 42;
>>> name+1;
"421"
事实证明,这不是玩笑,而是 JavaScript 的实际行为。为什么具有 namex
和 name的变量name
在这里表现不同?
有趣的是,Node.js 会产生除浏览器之外的其他结果:在 Firefox 和 Edge 中,结果name+1
是"421"
,但在 Node.js 中,结果是43
。
解决方案
推荐阅读
- android - 如何在活动之间传递可包裹对象的二维数组(T 实现 Parcelable)[][]?
- python - Python Matplotlib FuncAnimation:在两个移动点之间绘制一条线
- elixir - ecto 中的复合主键
- php - CORS 标头在浏览器中被更改,导致内容被阻止
- php - Woocommerce 基于重量的自定义运费计算
- python - 在 abc 范围内将移位的 ASCII 值转换为 char
- mysql - 在 MySQL 上将值拆分为多行
- spring-cloud - 如何在 Feign 中使用 http2 以获得更好的 RPC 性能?
- excel - 如何为 Excel 创建满足特定要求的唯一 ID
- spring - 发生错误时如何不使用 JMS 消息