ECMAScript 类型转换详解:字符串、数字与强制转换

作者:橙子

时间:2026-10-26

浏览:133

本文详细解析 ECMAScript 中的类型转换机制,涵盖对象转字符串的 toString 方法及其基模式、使用 parseInt 和 parseFloat 进行数值解析的规则与进制处理,以及 Boolean、Number 和 String 强制转换函数的具体行为与返回值判定。

文章目录

ECMAScript 类型转换概述

2.7 类型转换


转换为字符串:toString 方法

1、转换成字符串


在 ECMAScript 中,所有对象均具备 toString() 方法以实现字符串转换。需特别注意 Number 类型的 toString() 方法包含两种模式:默认模式与基模式。默认模式下,该方法仅输出对应的十进制数字字符串;而基模式允许指定基数,从而以不同进制输出数字。示例如下:


代码如下:

 
var iNum1=10;
var iNum2=10.0;
var iNum3=10;
alert(iNum1.toString()); //outpus "10"
alert(iNum2.toString()); //outpus "10"
alert(iNum3.toString(2)); //outpus "1010"
alert(iNum3.toString(8)); //outpus "12"
alert(iNum3.toString(16)); //outpus "A"

转换为数字:parseInt 与 parseFloat

2、转换成数字


ECMAScript 提供了两种将非数字原始值转换为数字的方法:parseInt() 和 parseFloat()。值得注意的是,parseInt() 会逐个字符进行转换,直至遇到非数字字符为止。示例程序如下:


代码如下:

 
var iNum1=parseInt("1234blue"); //returns 1234
var iNum2=parseInt("0xA"); //returns 10
var iNum3=parseInt("22.5"); //returns 22
var iNum4=parseInt("blue"); //returns NaN

parseInt() 方法还支持基模式,可将二进制、八进制、十六进制或其他进制的字符串转换为整数。基数由 parseInt() 的第二个参数指定,示例如下:


代码如下:

 
var iNum1=parseInt("AF",16); //returns 175
var iNum2=parseInt("10",2); //returns 2
var iNum3=parseInt("10",8); //returns 8
var iNum4=parseInt("10",10); //returns 10
//注意:如果十进制数有前导0要用基数模式
var iNum5=parseInt("010"); //returns 8
var iNum6=parseInt("010",8); //returns 8
var iNum7=parseInt("010",10); //returns 10

paraseFloat() 不支持基模式,其余特性与 parseInt() 大致相同,示例如下:


代码如下:

 
var fNum1=paraseFloat("1234blue"); //returns 1234.0
var fNum2=paraseFloat("0xA"); //returns NaN
var fNum3=paraseFloat("22.5"); //returns 22.5
var fNum4=paraseFloat("22.34.5"); //returns 22.34
var fNum5=paraseFloat("0908"); //returns 908
var fNum6=paraseFloat("blue"); //returns NaN

强制类型转换函数

3、强制类型转换


ECMAScript 中可用的强制类型转换函数如下:


Boolean(value)——把给定的值转换成Boolean型


Number(value)——把给定的值转换成数字(可以是整数或浮点数)


String(value)——把给定的值转换成字符串


示例:


代码如下:

 
var b1=Boolean(""); //false - empty string
var b2=Boolean("hi"); //true - not empty string
var b3=Boolean(100); //true - not zero number
var b4=Boolean(null); //false - null
var b5=Boolean(0); //false - zero
var b6=Boolean(new Object()); //true object
var i1=Number(false); //0
var i2=Number(true); //1
var i3=Number(undefined); //NaN
var i4=Number(null); //0
var f5=Number("5.5"); //5.5
var i6=Number("56"); //56
var i7=Number("5.6.7"); //NaN
var i8=Number(new Object()); //NaN
var i9=Number(100); //100

作者:天行健,自强不息

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章