Do.toString(16)总是返回小写字母
Does .toString(16) always return lowercase?
使用.toString(base)
将十进制数转换为10以上的基数时,似乎总是得到一个小写字符串我能相信这个吗?大写字符串是正确的,尽管我的应用程序需要转换。
引用规范中定义这一点的部分(我看了看,但找不到(和任何反例(返回大写字母的浏览器(都是额外的功劳。
示例:
(12648430).toString(16) // returns: "c0ffee". Not "C0FFEE"
是,总是小写。自2009年第5版起,规范中就对其进行了定义。以下是5.1规范中的说明;5.0不能直接链接,但它说的基本相同:
如果ToInteger(基数(不是介于2和36之间(包括2和36(的整数,则引发RangeError异常。如果ToInteger(基数(是从2到36的整数,但不是10,则结果是使用指定基数表示该数值的字符串字母a-z用于值为10到35的数字。如果基数不是10,则精确算法取决于实现,但该算法应为9.8.1中规定的算法的推广。
(我强调(
当前规范继续使用a-z
进行指定(小写(。
此前,1999年的第三版规范(没有第四版(没有这么说,只是说:
如果基数是从2到36的整数,但不是10,则结果是一个字符串,其选择取决于实现。
但现在,当第三版规范是当前规范时创建的浏览器已经完全消失了,你可以相信它是小写的。事实上,即使在2013年首次发布这个答案时,你也可能做到,因为如果有重要的已知实现做了一些不同的事情,他们通常不会在规范中添加这种东西。
只是为了好玩,这里有一个快速检查:
const str = (12648430).toString(16);
console.log(`${str} === c0ffee? ${str === "c0ffee"}`);
(12648430(.toString(16(将始终返回:"c0ffee";。不是";C0FFEE";,在用一些浏览器检查后,我发现了一个确认:
Number对象覆盖object对象的toString((方法;它没有
inherit Object.protype.toString((。对于Number对象,toString((方法返回以指定基数表示对象的字符串。toString((方法解析其第一个参数,并尝试返回一个字符串
以指定基数(基数(表示。对于10以上的基数字母表表示大于9的数字。例如对于十六进制数(以16为基数(,使用a到f。
"对于十六进制数(以16为基数(使用a到f
参见参考资料:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toString。
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 如何从服务器端控制器返回或调用已签名的小程序的方法
- Angular小部件中的Angular Grid返回错误:[$injector:unp]未知提供程序:
- webpack优化最小化返回布尔值,而不是工厂值
- 使用Javascript将拖动的小程序返回到浏览器窗口
- 比较字符串,如果存在小的拼写错误,则返回 true
- 从显示为文本的范围中返回最小和最大数字
- jQuery Range 滑块 grep 返回具有最小值和最大值的项目
- 如何从JarClassLoader和返回字符串数据的applet Launcher调用小程序中的方法
- '滑块角度'单击小图像会返回相应的大图像
- Java小程序调用javascript函数返回值
- 在Javascript中使用Math.min.apply()获取数组的最小值返回NaN
- bisectDate只返回最大或最小的i
- ESRI JavaScript API -从LocateButton小部件返回坐标
- JavaScript数学.最小返回错误的值
- 如何从jquery小部件函数中获取返回值
- 按该顺序返回数组的最大值/最小值/平均值
- Java小程序:调用JavaScript-JSObject.getWindow(this)总是返回null
- 我如何得到这个脚本运行返回所需的值的最小,最大和总和
- toLocaleTimeString()返回24小时或12小时的时间