再学JS--数据类型转换之显式转换

JavaScript08

再学JS--数据类型转换之显式转换,第1张

在JavaScript中,只有6种值可以被转换为false,其他都会被转换为true

可以通过Number函数将类型转换成数字类型,如果不传参数的话,返回+0;如果参数无法被转换为数字,则返回NaN

如果通过Number转换函数传入一个字符串,它会试图将其转换成一个整数或浮点数,而且会忽略所有前导0,如果有一个字符不是数字,结果都会返回NaN。

parseInt只解析整数,parseFloat则可以解析整数和浮点数,如果字符串前缀是0x或0X,parseInt将其解释为十六进制数,parseInt和parseFloat都会跳过任意数量的前导空格,尽可能解析更多数值字符,并忽略后面的内容。如果第一个非空字符是非法的数字直接量,将最终返回NaN

使用String函数将类型转换成字符串类型,如果String不传参数,返回空字符串。

原始值到对象的转换非常简单,原始值通过调用String()、Number()或者Boolean()构造函数,转换为它们各自的包装对象。

null和undefined属于例外,当将它们用在期望是一个对象的地方都会造成一个类型错误,而不是执行正常的转换。

所有对象(包含数组和函数)都会被转换为true

JavaScript有两个不同的方法来执行转换,toString和valueOf

所有对象除了null和undefined之外的任何值都具有toString方法,通常情况下,它和使用String方法返回的结果是一致的。

然而JavaScript下的很多类根据各自的特点,定了更多版本的toString方法,例如:

另一个转换对象的函数时valueOf,表示对象的原始值。默认的valueOf方法返回这个对象本身,数组、函数、正则简单的继承了这个方法,也会返回对象本身。日期是一个例外,它会返回它的一个内容表示:1970年1月1日以来的毫秒数

对象转字符串可以概括如下:

BigInt 数据类型的目的是比 Number 数据类型支持的范围更大的整数值。

BigInt构造函数:

Number 类型只能安全地表示-9007199254740991 ( -(2^53-1 )) 和9007199254740991( 2^53-1 )之间的整数

JS 提供 Number.MAX_SAFE_INTEGER 常量来表示 最大安全整数, Number.MIN_SAFE_INTEGER 常量表示最小安全整数:

不能使用严格相等运算符将 BigInt 与常规数字进行比较,因为它们的类型不同:

与 BigInt 操作数一起使用时,算术运算符应该返回 BigInt 值。因此,除法 (/) 运算符的结果会自动向下舍入到最接近的整数。例如:

BigInt和Number 执行算术计算,首先需要确定应该在哪个类型中执行该操作。为此,只需通过调用 Number()或BigInt() 来转换操作数:

当 Boolean 类型与 BigInt 类型相遇时, BigInt 的处理方式与 Number 类似,换句话说,只要不是 0n ,BigInt就被视为 truthy 的值:

位操作符如 |、&、<<、>>和^ 对 Bigint 的操作方式与 Number类似 。下面是一些例子

不能使用 Number 和 BigInt 操作数的 混合执行算术运算 ,需要通过显式转换其中的一种类型。 此外,出于兼容性原因,不允许在 BigInt 上使用一元加号 (+) 运算符。

不用转换,直接用,就可以了。

可以试试

var a ='\u5a92\u5927\u5b66'

alert(a)

document.body.innerHTML=a

不论是alert,还是直接放到innerHTML里,都可以用的,前提是要通过脚本来使用。