js学习笔记13——其他进制的数字
进制数格式
在js中,如何表示十进制以外的进制数呢?
<script type="text/javascript">
// 十进制
var a = 123;
console.log(a);
// 十六进制 0x开头
var b=0x123;
console.log(b);
// 八进制 0开头
var c=0123;
console.log(c);
// 二进制 0b开头
var d=0b10;
console.log(d);
</script>
这里可以看到,显示出来都转换为十进制。
注意:从八进制的写法可以看到,有时候不要画蛇添足给十进制数前面添加0,浏览器会把它当成八进制数。
还有,二进制兼容性不是很好。
八进制用parseInt
提这个的原因是有些浏览器的效果不一样。
<script type="text/javascript">
var a="020"
a=parseInt(a);
console.log(a);
</script>
从上面的代码可以看到,a原先是个字符串,当用parseInt函数后,是转为20呢还是16呢?
edge:
edge是直接当成10进制来看,转为了20,。
chrome:
chrome和edge一样。
低版本的ie:
是16。
这就很麻烦,没有统一好。如何统一?
给parseInt()再传递一个参数指定进制数。
<script type="text/javascript">
var a="020"
a=parseInt(a,10);
console.log(a);
</script>
ie7的效果也是20了。