数据类型转换
表单 prompt 获取过来的数据默认是字符型的,此时就不能直接简单的进行加法运算, 此时需要转换。
就是把一种数据类型的变量转换成另外一种数据类型。
通过调用系统函数进行类型转换,主要分3类:转 字符串
、转 数值
、转 布尔值
1 转换为字符串
方式 | 说明 | 案例 |
---|---|---|
toString() | 把变量转成字符串 | var num= 1; alert(num.toString()); |
String() 强制转换 | 把特殊值转成字符串 | String(undefined); |
加号拼接字符串 | 和字符串拼接的结果都是字符串 | var str = 215 + "我是字符串"; |
-
toString() 方法
toString() 方法可把一个逻辑值转换为字符串,并返回结果
布尔类型的 toString() 只会输出 "true" 和 "false"
var isFound = false; alert(isFound.toString()); // 输出"false"
var num01 = 27; // alert(num01)输出"27" var num02 = 27.37; // alert(num02)输出"27.37" console.log(num01.toString())
-
String() 方法
String()函数存在的意义:有些值没有toString(),这个时候可以使用String()。
var timer = null; console.log(String(timer));
-
加号拼接字符串
当 + 两边 一个是
字符串类型
,另一个是其它类型
的时候,会先把其它类型
转换成字符串
再进行字符串拼接,最后返回字符串alert(21 + "小白"); // 输出"21小白" alert(false + "小白"); // 输出"false小白"
2 转换为数值
我们前面说过,表单获取过来的数据默认是字符型,我们需要转换为数值型。
方式 | 说明 | 案例 |
---|---|---|
parseInt(string) 函数 | 将string类型参数转成整数 | parseInt('78') |
parseFloat(string) 函数 | 将string类型参数转成浮点数 | parseFloat('78.21') |
Number() 强制转换函数 | ||
js 隐式转换 | 利用算术运算隐式转换 | - * / |
-
parseInt(string) 函数
概念: 将 数值字符串 转成 整数数值
var numAge = parseInt("912"); // 912
执行规则:
//规则1.永远记住它是取整函数 var numLove = parseInt(18.08); // 18 var numLove = parseInt(18.88); // 18 //规则2.如果第一个字符不是数字符号或者负号,返回NaN var numLove = parseInt("aboard211"); // NaN //规则3.如果第一个字符是数字,则继续解析直至字符串解析完毕 或者 遇到一个非数字符号为止 var numLove = parseInt("520littlecat"); // 520
-
parseFloat(string)函数 猩猩
概念: 将 浮点数值字符串 转成 浮点数值
var num = parseFloat("12.3abc"); // 12.3
注意:parseFloat函数如果用来转换 整型数值字符串,则也是返回 整型数值
var num = parseFloat("12"); // 12,而不是 12.0
-
Number() 强制转换函数
-
里面如果只要出现非数字字符或者undefined, 则就返回 NaN
-
如果该值是空字符串、数字0、或null、false 则返回 0 如果是 true 则返回 1
-
-
利用js隐式转换
利用了js的弱类型的特点,进行算术运算,实现了字符串到数字的类型转换,我们也成为隐式转换。
var str= '123 '; var x = str-0; var x = x*1;
6.3 转换为Boolean值
方式 | 说明 | 案例 |
---|---|---|
Boolean()函数 | 将布尔字符串转成布尔值 | Boolean('true'); |
-
代表 空、否定的值 会被转换为 false 有五种""、0、NaN、null、undefined
-
其余任何值都会被转换为 true
var res = Boolean(''); // false res = Boolean(0); // false res = Boolean(NaN); // false res = Boolean(null); // false res = Boolean(undefined); // false var res2 = Boolean('小白'); // true var res2 = Boolean(12); // true