关于JavaScript中的toString()方法的奇怪问题
vara=255;document.write(a.toString(16));这段代码输出ff。是正确的,在javascript中会自动把值类型的数据转换为其对应的封装...
var a=255;
document.write(a.toString(16));这段代码输出ff。是正确的,在javascript中会自动把值类型的数据转换为其对应的封装类型,以便调用它的方法。
那么下面的程序为什么报错呢?
document.write(255.toString(16));
报告错误?
而如果改成下面的有正确了:
document.write((255).toString(16));
只不过在255上加了一个括号而已。
百思不得其解,希望各位大虾给出一个合理的回答。
用"255".toString(16)我试过了,不能正确转换为16进制。而是输出255
貌似xifo 的回答稍微要合理一些,但不知道是不是正确的哦。还请各位在替我想想哦。
但不要说什么解释器不是万能的之类的话,
如果这样,document.write((255).toString(16)); 这句代码怎么又是正确的呢?也不过是多了一个括号而已。。 展开
document.write(a.toString(16));这段代码输出ff。是正确的,在javascript中会自动把值类型的数据转换为其对应的封装类型,以便调用它的方法。
那么下面的程序为什么报错呢?
document.write(255.toString(16));
报告错误?
而如果改成下面的有正确了:
document.write((255).toString(16));
只不过在255上加了一个括号而已。
百思不得其解,希望各位大虾给出一个合理的回答。
用"255".toString(16)我试过了,不能正确转换为16进制。而是输出255
貌似xifo 的回答稍微要合理一些,但不知道是不是正确的哦。还请各位在替我想想哦。
但不要说什么解释器不是万能的之类的话,
如果这样,document.write((255).toString(16)); 这句代码怎么又是正确的呢?也不过是多了一个括号而已。。 展开
4个回答
展开全部
事情是这样的,想通了就明白了:
JavaScript是一种面向对象的脚本语言,对象不是完全面向对象。你用
var a = 255;
实际上创建了一个Number类型的对象,你
document.write(a.toString(16));
实际上是调用了Number对象的toString()方法。
而255在JavaScript里只是一个数值型的常量,所以255.toString(16)会出现解析错误,原因是JavaScript中并非“一切皆是对象”,而完全面向对象的Ruby就可以使用类似的用法。
但是,(255).toString(16)多了一对括号,在解析.toString(16)之前,已经把前面的部分转换成了一个Number对象,所以可以正常调用。
JavaScript是一种面向对象的脚本语言,对象不是完全面向对象。你用
var a = 255;
实际上创建了一个Number类型的对象,你
document.write(a.toString(16));
实际上是调用了Number对象的toString()方法。
而255在JavaScript里只是一个数值型的常量,所以255.toString(16)会出现解析错误,原因是JavaScript中并非“一切皆是对象”,而完全面向对象的Ruby就可以使用类似的用法。
但是,(255).toString(16)多了一对括号,在解析.toString(16)之前,已经把前面的部分转换成了一个Number对象,所以可以正常调用。
展开全部
定义和用法:
toString() 方法可把一个逻辑值转换为字符串,并返回结果。
语法:
booleanObject.toString()
返回值:
根据原始布尔值或者 booleanObject 对象的值返回字符串 "true" 或 "false"。
抛出:
如果调用该方法的对象不是 Boolean,则抛出异常 TypeError。
提示和注释:
注释:在 Boolean 对象被用于字符串环境中时,此方法会被自动调用。
实例:
在本例中,将创建一个 Boolean 对象,并把它转换成字符串:
<script type="text/javascript">
var boo = new Boolean(true)
document.write(boo.toString())
</script>
输出:
true
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
说得很轻松,你想让js 解析器怎么处理 255.toString(16) ?
分析的时候 255.xx 肯定是试着被解析为 255.00 之类的float类型更为合理
解析器也是程序,并不是万能的,如果要兼容这种写法,复杂度得高多少?.划算吗?
分析的时候 255.xx 肯定是试着被解析为 255.00 之类的float类型更为合理
解析器也是程序,并不是万能的,如果要兼容这种写法,复杂度得高多少?.划算吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用"255".toString(16)试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询