数据类型转换
首先,我们得知道什么是数据类型转换?
在我们前端界面,使用表单、prompt 获取过来的数据默认是字符串类型的,那么我们就不能直接简单的进行加法运算,而需要转换变量的数据类型。通俗来说,就是把一种数据类型的变量转换成另外一种数据类型。
通常需要会实现3种方式的转换:
转换为字符串(String)类型
转换为数值(Number)型
转换为布尔(Boolean)型
强制类型转换与隐式转换的区别
显然,强制类型转换是我们让其指定转换为对应的类型,而隐式转换是由JavaScript自动完成。
强制类型转换可能会导致数据精度的丢失,由大范围的数据类型被转换为小范围的数据类型时,小范围的数据类型无法存储大范围的数据。而隐式类型转换则不会导致数据精度的丢失。
其他类型转化为Number型
1.Number(参数)
2.parseInt(参数)—整数
3.parseFloat(参数)—浮点数(小数)
//1.Number(参数)
//1).字符串转数字 ''--0 ' '--0 '123hello' '123' NaN
let str='';
str=' ';
str=Number(str);
console.log(str,typeof str);//0 'number',所以空串/空格串为0
let str1='123';
st1=Number(str1);
console.log(str1,typeof str1);//123 'number'
let str2='123hello'
str2=Number(str2);
console.log(str2,typeof str2);//NaN 数字加字母NAN
//2).布尔转数字
let flag=true;
flag=Number(flag);
console.log(flag,typeof flag);//1 'number'
let flag1=false;
flag1=Number(flag1);
console.log(flag1,typeof flag1);//0 'number'
//3).null
let a=null;
a=Number(a);
console.log(a,typeof a);//0 'number'
//undefined
let b;
b=Number(b);
console.log(b,typeof b);//NaN 'number'
//2.parseInt(参数) 整数
let str='123'
console.log(parseInt(str));//结果123 如果是'123hello',提出的是123,如果提出的数值为小数,结果是提出整数部分;针对'123' '123hello' 形式结果为123,其他一律是NaN
let str1='123.56h'
console.log(parseFloat('str1'),parseInt);//结果123.56
console.log(parseFloat(''),parseFloat(' '),parseFloat('hello123'),parseFloat(null),parseFloat(underfined),parseFloat(true));//结果为NaN NaN NaN NaN NaN NaN
隐式转换参数
let num=prompt('请输入一个数字:');
console.log(num,typeof num);//20 string到这输入的数字为字符串类型
num=+num;//隐式转换100 'number'
//+'123'为123
console.log(num,typeof num);//20 'number'
console.log('123'*1,'123'/1, '123'%1,'123'-0)//减乘除行,加不行,加放在前面,注意引号与数值做运算不再为字符串类型,自动转换
其他类型转换为字符串型
强制类型转换
String(参数) —所有的都能转
参数.toString() —null和undefined没有此方法
//String(参数)
let num=123;
num=String(123);
console.log(num,typeof num);//123 'string'
let a=null;
a=String(a);
console.log(a,typeof a);//null 'string'
let a=undefined;
a=String(a);
console.log(a,typeof a);//undefined 'string'
let a=true;
a=String(a);
console.log(a,typeof a);//true 'string'
//toString方法
let num1=789;
num1=num1.toString();
console.log(num1,typeof num1);//789 'string'
//null和undefined用此方法,控制台输出报错
隐式转换
采用拼接
//拼接空串 123+''---输出结果'123'
let b=123;
b=b+'';
console.log(b,typeof b);
//parseFloat'123''123hello' 其他都是NaN
其他类型转Boolean类型
只有6种为假,其余全为真
6种为假情况:‘’ null undefined 0 NaN false
let a;
console.log(Boolean(''),Boolean(null),Boolean(undefined),Boolean(NaN),Boolean(0),Boolean(false));