【问题标题】:Why does parseInt() sometimes return a string? [duplicate]为什么 parseInt() 有时会返回一个字符串? [复制]
【发布时间】:2016-10-16 20:12:40
【问题描述】:

这是从 javascript 控制台直接复制/粘贴到 chrome 中的新选项卡上:

> var name = parseInt(prompt("enter a number"), 10);
undefined
> name
"77"
> var x = parseInt(prompt("Enter a number"), 10);
undefined
> x
77

由于某种原因,这似乎只有在我使用变量名“name”时才会发生。即使在常规分配中它仍然是一个字符串:

>name
"453"
>name = 77;
77
>name
"77"

【问题讨论】:

  • 始终在隔离环境中测试代码。全球环境不是孤立的。此外,由于您已确定问题不在于 parseInt,因此标题具有误导性。

标签: javascript type-conversion parseint


【解决方案1】:

global variable name is a special variable in browsers,代表当前窗口的名称,始终是一个字符串。

根据经验,将脚本包装在an IIFE 中通常是个好主意,这样它们就具有本地范围,并且您不会与来自其他脚本和浏览器的变量发生冲突。这样做可以避免这个问题。

【讨论】:

    猜你喜欢
    • 2011-09-18
    • 1970-01-01
    • 2012-02-04
    • 2014-06-06
    • 1970-01-01
    • 2013-04-09
    • 2013-10-22
    • 2012-03-15
    相关资源
    最近更新 更多