- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第
一文带你搞懂JavaScript中的进制与进制转换
目录进制介绍进制转换parseInt(str,radix)Number()+(一元运算符)Number.prototype.toString(radix)自定义转换十进制与十六进制转换十进制和二进制转换
进制介绍
JavaScript中提供的进制表示方法有四种:十进制、二进制、十六进制、八进制。
对于数值字面量,主要使用不同的前缀来区分:
十进制(Decimal):取值数字0-9;不用前缀。二进制(Binary):取值数字0和1;前缀0b或0B。十六进制(Hexadecimal):取值数字0-9和a-f;前缀0x或0X。八进制(Octal):取值数字0-7;前缀0o或0O(ES6规定)。
需要注意的是,非严格模式下浏览器支持:如果有前缀0并且后面只用到0-7八个数字的数值时,该数值视为八进制;但如果前缀0后面跟随的数字中有8或者9,则视为十进制。
严格模式下,如果数字加前缀0,则报错:UncaughtSyntaxError:Decimalswithleadingzerosarenotallowedinstrictmode。
各进制的数值,如果取值数字超过给定的范围,则会报错:UncaughtSyntaxError:Invalidorunexpectedtoken。
在JavaScript内部的默认情况下,二进制、十六进制、八进制字面量数值,都会自动转为十进制进行运算。
0x22//34
0b111//7
0o33//27
0x22+0b111//41
0o33+12//39
(0x33).toString()//51
(0x33).valueOf()//51
除了十进制是Javascript默认的数字进制以外,其他三种进制方式平时使用较少,主要在处理Blob数据、字节编码或者位运算、转义字符等等时候才会碰到。
进制转换
下文将主要讨论进制转换时的问题。
JavaScript提供了原生函数,进行十进制与其他各进制之间的相互转换。
其中,从其他进制转换成十进制,有三种方式:parseInt(),Number(),+(一元运算符)。这三种方式都只能转换整数。
从十进制转换成其他进制,可以使用Number.prototype.toString()。支持小数。
parseInt(str,radix)
第一个参数是需要解析的字符串;其他进制不加前缀。
第二个参数是一个进制基数,表示转换时按什么进制来理解这个字符串,默认值10,表示转十进制。
第二个参数如果非数字,则自动转数字,如无法转称数字则忽略该参数;是数字时,必须是2-36的整数,超出该范围,返回NaN。
parseInt(1111,2)//15
parseInt(1234,8)//668
parseInt(18af,16)//6319
parseInt(1111)//1111
如果不传入第二参数,则parseInt会默认使用十进制来解析字符串;但是,如果字符串以0x开头,会被认为是十六进制数。
而其他进制的字符串,0o21(八进制),0b11(二进制)不会以该进制基数自动转换,而是得到0。
所以,在使用parseInt进行进制转换时,为了保证运行结果的正确性和稳定性,第二个参数不能省略。
parseInt(0x21)//33
parseInt(0o21)//0
parseInt(0b11)//0
parseInt(111,add)//111
parseInt(111,787)//NaN
如果需要解析的字符串中存在对于当前进制基数无效的字符,则会从最高位取有效字符进行转换,没有效字符则返回NaN。
parseInt(88kk,16)//136,===0x88
parseInt(kk,16)//NaN
Number()
可以把字符串转为数字,支持其他进制的字符串,默认转成十进制数字。
字符串中如果存在无效的进制字符时,返回NaN。
记住,需要使用进制前缀,0b,0o,0x。
Number(0b11100)//28
Number(0o33)//27
Number(0x33)//51
Number(0x88kk)//NaN
+(一元运算符)
与Number()一样,可以把字符串转为数字,支持
您可能关注的文档
- 团结合作演讲稿小学生(27篇).docx
- 农村音乐教师音乐总结范文(28篇).docx
- 小学音乐教师个人工作总结怎么写(32篇).docx
- 2025幼儿园开学典礼领导讲话稿(3篇).docx
- 暑假个人学习计划(31篇).docx
- ReactNative中实现确认码组件示例详解.docx
- 公司领导年会精彩演讲稿范文(33篇).docx
- 环境卫生清洁总结(7篇).docx
- 关于借款合同模板集锦(30篇).docx
- 业务经理岗位竞聘演讲稿范文(29篇).docx
- 《2025年养老护理机器人技术发展与居家养老模式创新》.docx
- 2025年韩语口音测试题库及答案.doc
- 《2025年健康科普内容报告:用药常识传播与广告变现路径数据分析方法》.docx
- 2025年体育赛事行业IP打造的品牌授权商业化创新.docx
- 2025年食品添加剂检测市场需求预测报告.docx
- 2025年数字人民币在智慧零售场景普及趋势分析.docx
- 《风电装备大型化2025年趋势及海上风电产业链机遇创新研究报告》.docx
- 2025年韩语级考试题及答案.doc
- 《2025年铁路客运市场调研报告:高铁网络完善与定制化客运服务创新要素》.docx
- 2025年家庭储能运维中故障诊断技术发展趋势.docx
有哪些信誉好的足球投注网站
文档评论(0)