重写Javascript's to字符串表示数字
Override Javascript's toString for numbers
我将为javascript中的数字重写toString
方法,因为我需要它为NaN
值返回""
,而不是默认的"NaN"
:
Number.prototype.original_toString = Number.prototype.toString;
Number.prototype.toString = function(radix) {
var originalValue = this.original_toString(radix);
if (originalValue == "NaN") {
return "";
} else {
return originalValue;
}
};
然后我得到以下行为:
(3).toString() => "3"
Number.NaN.toString() => ""
没关系。问题是当我用以下方式将数字转换为字符串时:
"" + 3 => "3"
"" + Number.NaN => "NaN" # This is not what I expected
正如您所看到的,在这种情况下,没有使用重写的方法。有没有其他方法可以做到这一点,以便在这两种情况下都能正常工作?我还尝试过覆盖Number.prototype.toLocaleString
,但没有成功。这里有一个jsfiddle可以玩:http://jsfiddle.net/tmjf8cao/3/
问题是,Num.NAN
是一个静态变量(而不是"数字"属于数字),这意味着你没有覆盖它的toString()方法。您可以尝试覆盖Number。CCD_ 7。
我认为隐式toString方法可能根本无法重写。
即
Number.prototype.toString = function() { return "hello world!" };
(3).toString() => "hello world!"
3 + "" => "3"
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- jQuery中是否内置了任何字符串格式化函数
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- ng打开空字符串
- 正则表达式在字符串中找到base64
- 如何将字符串值从php页面发送到java脚本页面
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- 对id以某个字符串开头的元素进行计数
- Javascript逻辑运算符和字符串/数字
- 反向字符串比较
- 如何有效地将游戏数据存储在URL查询字符串中
- 重写Javascript's to字符串表示数字
- 如何将javascript yml字符串移动到数据库to ruby数组
- Regexp to和from字符串
- 如何从控制台日志中读取,以及错误是否包含字符串"up-to-data"通过'if'循
- Grunt在识别失败时发出警告:" warning: Arguments to path.Join必须是字符串
- If语句有一个字符串和其他字符串(Make-To-List)
- 什么是jquery正则表达式来匹配这个字符串“http://path/to/file/file-name-123x123