文章目录
前言
一:强制类型转换
1:强制类型转换为String
(一):方式一:调用被转换类型的toString()方法
(二):方式二:调用String函数
2:强制类型转换为Number
(一):方式一:调用Number函数
(二):方式二:这种方式专门对付字符串
前言
JS中数据类型有6种,基本数据类型有5种。String,Number,Boolean,Null,Undifined。Object属于引用数据类型。
一:强制类型转换
首先,我们强制类型转换的角色是,String,Number,Boolean。不会有人转换为Null和Undefined的,因为确实没啥意义。
1:强制类型转换为String
(一):方式一:调用被转换类型的toString()方法
var a = 123;
a.toString();
console.log(typeOf a);//number
toString()不会影响值本身,需要使用他的返回值
var a = 123;
var b = a.toString();
console.log(typeOf b);//string
这么干,也行!
var a = 123;
a = a.toString();
console.log(typeOf a);//string
//
var a = 123;
a = null;
a = a.toString() //这一行会报错
console.log(typeOf a);//object
报错如下:
Uncaught TypeError: Cannot read properties of null (reading 'toString')
at <anonymous>:1:21
(匿名) @ VM102:1
需要注意的是,null和undefined没有toString()方法。
也就是方式一是有局限性的,只适用于Boolean、String、Number
(二):方式二:调用String函数
调用什么什么函数,就直接写xxxx()就完事了。被转换数据作为参数。
var a = 123;
a = String(a);
console.log(typeOf a); // String
var a = null;
a = String(a);
console.log(typeOf a); // string
console.log(a); //null
var a = undefined;
a = String(a);
console.log(typeOf a); // string
console.log(a); //undefined
String()函数转字符串时,对于Number、Boolean实际上调用的就是toString()方法。但是对null和undefined直接转换为他俩的字符串。
2:强制类型转换为Number
值得注意的是,没有toNumber()方法
var a = "123";
console.log(typeOf a); //string
console.log(a); //a
(一):方式一:调用Number函数
字符串转数值,如果是纯数字字符串,可以直接转换。
var a = "123";
a = Number(a);
console.log(typeOf a); // number
如果字符串中有非数字内容,就直接转换为NaN
如果字符串字符串中是一个空串或者是全是空格,转换为0
a = true;
a = Number(a);
console.log(a);//1
布尔转数字是固定的,false转0,ture转1;
a = null;
a = Number(a);
console.log(a);//0
a = undefined;
a = Number(a);
console.log(a);//0
null和undefined转数字都是0
var a = 123px;
console.log(a);//123px
(二):方式二:这种方式专门对付字符串
parseInt()把一个字符换转换为一个整数,parseFloat()把一个字符换转换为一个浮点数
var a = "123px";
a = parseInt(a);
console.log(typeOf a);//number
console.log(a);//123
parseInt()方法从左到右去读数字,遇到第一个不是数字的内容停止读取,并且返回前面的数字。123.456px到小数点就完事了。
var a = "123.456px";
a = parseFloat(a);
console.log(a);//123.456
这个特点就是,遇到小数点.不停止,继续往下读。 值得注意的是,如果对非String类型使用parseInt()和parseFloat()会先将他转换为String在进行操作!