本文详解JavaScript中数字与字符串的进制转换方法,重点解析parseInt的基数参数行为及toString的进制输出。同时介绍利用charCodeAt和fromCharCode实现ASCII码与字符的双向转换,并提供遍历Unicode编码表的完整示例代码。
JavaScript进制转换方法
定义变量a并赋值为字符串'11160'。
调用alert(parseInt(a,2))将字符串按二进制解析。由于'60'不符合二进制规范,parseInt从左至右仅转换合法的'111'部分,忽略后续非法字符。
调用alert(parseInt(a,16))将字符串按十六进制解析。此时字符串中所有字符均符合十六进制规范,因此全部参与转换计算。
基于上述逻辑,通过指定不同的基数参数,可以实现将字符串转换为任意指定的进制格式。
重新定义变量a,赋值为字符串'1110'。
执行alert(parseInt(a,10).toString(16)),首先将字符串'1110'按十进制解析为数值,随后调用toString(16)将该数值转换为十六进制字符串。此流程同样适用于其他进制之间的相互转换。
ASCII码与字符转换
接下来介绍ASCII码的相关处理方法。
定义函数test开始演示代码逻辑。
在函数内部定义变量a,赋值为字符串'ab'。
声明变量c,通过a.charCodeAt(1)获取字符串中索引为1的字符(即'b')的ASCII码值,结果为98。注意字符串索引从0开始计数。
声明变量char,通过String.fromCharCode(98)将ASCII码值98转换回对应的小写字符'b'。
}
以上为ASCII码转换的基础示例。
遍历Unicode编码表示例
定义函数test,用于输出ASCII码扩展集及Unicode编码范围内的字符。
在函数内部初始化空字符串变量c,用于拼接输出内容。
启动for循环,变量i从1开始递增,直至小于65536,遍历大部分常用字符编码。
在循环内部判断条件,若i除以10的余数为0。
当满足上述条件时,将当前编码值i、制表符'\t'、由String.fromCharCode(i)生成的对应字符以及换行符'\n'拼接至字符串c。
若不满足余数为0的条件,则将编码值i、制表符'\t'及对应字符拼接至字符串c,不换行。
}
循环结束后,获取ID为'abc'的DOM元素,将其innerText属性设置为拼接好的字符串c,从而在页面上显示所有遍历到的字符。
}
在HTML结构中插入一个div元素,设置其id为'abc',用于承载上述JavaScript代码输出的字符内容。