前言数据类型转换是我们在前端开发中经常遇到的场景,一般而言,在JavaScript中类型转换有三种情况:转换为数字(调用Number(),parseInt(),parseFloat()方法)转换
前言
数据类型转换是我们在前端开发中经常遇到的场景,一般而言,在 JavaScript 中类型转换有三种情况:
- 转换为数字(调用 Number(),parseInt(),parseFloat()方法)
- 转换为字符串(调用.toString()或 String()方法)
- 转换为布尔值(调用 Boolean()方法)
需要注意的是:null、undefined 没有.toString() 方法。
转换为数字
Number(string) 方法
Number() 可以把任意值转换成数字,如果要转换的目标对象(一般是字符串)中有不是数字的值,则会返回 NaN。
<span>Number</span>(<span>\'1\'</span>) <span>// 1</span><span>Number</span>(<span>true</span>) <span>// 1</span><span>Number</span>(<span>\'123s\'</span>) <span>// NaN</span><span>Number</span>({}) <span>//NaN</span>
parseInt(string, radix)
解析一个字符串并返回指定基数的十进制整数,radix 是 2-36 之间的整数,表示被解析字符串的基数。
<span>parseInt</span>(<span>\'2\'</span>) <span>//2</span><span>parseInt</span>(<span>\'2\'</span>,<span>10</span>) <span>// 2</span><span>parseInt</span>(<span>\'2\'</span>,<span>2</span>) <span>// NaN</span><span>parseInt</span>(<span>\'a123\'</span>) <span>// NaN 如果第一个字符不是数字或者符号就返回NaN</span><span>parseInt</span>(<span>\'123a\'</span>) <span>// 123</span>
parseFloat(string)
解析一个参数并返回一个浮点数。
<span>parseFloat</span>(<span>\'123a\'</span>)<span>//123</span><span>parseFloat</span>(<span>\'123a.01\'</span>)<span>//123</span><span>parseFloat</span>(<span>\'123.01\'</span>)<span>//123.01</span><span>parseFloat</span>(<span>\'123.01.1\'</span>)<span>//123.01</span>
隐式转换
<span>let</span> <span>str</span> = \'<span>123</span>\'-<span>str</span><span>// -123</span><span>str</span>+<span>1</span> <span>// \'1231\'</span>+<span>str</span>+<span>1</span> <span>// 124</span><span>let</span> res = <span>str</span> - <span>1</span> <span>//122</span>
转换为字符串
toString()
将目标对象转换为字符串。
注意:null,undefined 不能调用。
<span>Number</span>(<span>123</span>)<span>.toString</span>()<span>//\'123\'</span><span>[]</span><span>.toString</span>()<span>//\'\'</span><span>true</span><span>.toString</span>()<span>//\'true\'</span>
String()
String() 的作用比较强大,它可以将任何传入的值都转为字符串。
<span>String</span>(<span>123</span>)<span>//\'123\'</span><span>String</span>(<span>true</span>)<span>//\'true\'</span><span>String</span>([])<span>//\'\'</span><span>String</span>(<span>null</span>)<span>//\'null\'</span><span>String</span>(<span>undefined</span>)<span>//\'undefined\'</span><span>String</span>({})<span>//\'[object Object]\'</span>
隐式转换
当 + 两边有一个是字符串,另一个是其它类型时,会先把其它类型转换为字符串再进行字符串拼接,返回字符串:
<span>let</span> a = 1a + <span>\'\'</span>// <span>\'1\'</span>
转换为布尔值
Boolean()
Boolean() 方法会将以下值转换为 false:
- 0
- “”
- null
- undefined
- NaN
其余的所有值都会被转换为 true。
<span>Boolean</span>(<span>\'\'</span>) <span>//false</span><span>Boolean</span>(<span>0</span>) <span>//false</span><span>Boolean</span>(<span>1</span>) <span>//true</span><span>Boolean</span>(<span>null</span>) <span>//false</span><span>Boolean</span>(<span>undefined</span>) <span>//false</span><span>Boolean</span>(<span>NaN</span>) <span>//false</span><span>Boolean</span>({}) <span>//true</span><span>Boolean</span>([]) <span>//true</span>
条件语句
在条件语句中,我们一般不会主动进行布尔转换。
<span><span>let</span> a<span>if</span>(<span>a</span>)</span> { <span>//... //这里a为undefined,会转为false,所以该条件语句内部不会执行</span>}
隐式转换
<span>let</span> str = <span>\'111\'</span><span>console</span>.log(!!str) <span>// true</span>
总结
以上就是 JavaScript 基本数据类型转换相关的知识总结,其中最需要注意的是隐士转换。
~
本站部分文章来自网络或用户投稿,如无特殊说明或标注,均为本站原创发布。涉及资源下载的,本站旨在共享仅供大家学习与参考,如您想商用请获取官网版权,如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。