版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/actionActivity/article/details/89788688
类型转换指的是将一个数据类型转换为其他的数据类型
将其他的数据类型转换为String
、Number
、Boolean
将其他数据类型转换为 String
- 调用
被转换类型
的toString()
方法
该方法不会影响到元变量,会将转换的结果返回。
注意:Null
和Undefined
没有toString()
方法,如果调用他们的方法会报错。
// -- 将一个 Number 转换为 String
// 定义一个变量 a,它的值为 Number 类型的 123
var a = 123;
// 转换成String类型,并赋值给一个变量 result
var result = a.toString();
// 控制台输出
console.log("a 的值为:"+result+",这个值的类型为:"+typeof result);
// -- 将 Boolean 转换为 String
a = true; // 修改 a 的类型
console.log("a 的值为:"+ a.toString() +",这个值的类型为:"+typeof result);
控制台输出的结果为:
- 调用
String()
函数
调用String()
函数,并将被转换的数据类型当做参数传递给String()
函数。
使用String()
函数做强制类型转换的时候,对于Number
和Boolean
实际上就是调用的toString()
方法。
但是对于Null
和Undefined
就不会调用toString()
方法。它会直接将null
转换成"null"
,将undefined
直接转换成"undefined"
// 定义一个 Number 类型的变量 a.
var a = 10;
// 输出转换前后的类型.
console.log("a的初始类型为:" + typeof a + ",转换后为:" + typeof String(a) + ",转换后的值为:" + String(a));
a = true; // 把 a 修改为 Boolean 类型
// 输出转换前后的类型.
console.log("a的初始类型为:" + typeof a + ",转换后为:" + typeof String(a) + ",转换后的值为:" + String(a));
a = null; // 把 a 修改为 Null 类型
// 输出转换前后的类型.
console.log("a的初始类型为:" + typeof a + ",转换后为:" + typeof String(a) + ",转换后的值为:" + String(a));
a = undefined; // 把 a 修改为 Undefined 类型
// 输出转换前后的类型.
console.log("a的初始类型为:" + typeof a + ",转换后为:" + typeof String(a) + ",转换后的值为:" + String(a));
控制台输出的结果为:
将其他数据类型转换为 Number
字符串转换为 Number
的两种方式
- 使用
Number()
函数
如果是一个纯数字的字符串,将直接转换成数字
如果字符串中有非数字的内容,则转换为NaN
如果字符串是一个空串
或者是一个全是空格的字符串,则转换为0
// 定义一个 String 类型的变量 123
var a = "123";
// 输出转换前后的类型.
console.log("a的初始类型为:" + typeof a + ",转换后为:" + typeof Number(a) + ",转换后的值为:" + Number(a));
// 重新给 a 赋值,值为一个非纯数字的字符串
a = "123abc";
// 输出转换前后的类型.
console.log("a的初始类型为:" + typeof a + ",转换后为:" + typeof Number(a) + ",转换后的值为:" + Number(a));
// 重新给 a 赋值为空串
a = "";
console.log("a的初始类型为:" + typeof a + ",转换后为:" + typeof Number(a) + ",转换后的值为:" + Number(a));
// 重新给 a 赋值为多个空格
a = " ";
console.log("a的初始类型为:" + typeof a + ",转换后为:" + typeof Number(a) + ",转换后的值为:" + Number(a));
控制台输出的结果:
- 使用
parseInt()
函数或parseFloat()
函数,这种方式专门用来对付字符串
parseInt()
把一个字符串转换为整数
–parseInt()
可以把一个字符串中的有效的整数取出来,然后将其转换成数字。
parseFloat()
把一个字符串转换为小数
–parseFloat()
和parseInt()
类似,不同的是,parseFloat()
可以获取字符串中的有效的小数。
注意:如果对非 String
的类型使用parseInt()
或parseFloat()
则会先把它转换为String
,然后在操作。
// !-- parseInt()
// 定义一个 string 变量
var str = "123Hello";
// 转换前的输出
console.log("类型转换前:" + str + ",类型为:" + typeof str);
// 先把 str 转换成 Number,然后再赋值给 str
str = parseInt(str);
//转换完成后的输出
console.log("类型转换后:" + str + ",类型为:" + typeof str);
// !-- parseFloat()
// 定义一个 string 变量
var str1 = "123.21hello";
// 转换前的输出
console.log("类型转换前:" + str1 + ",类型为:" + typeof str1);
// 先把 str1 转换成 Number,然后再赋值给 str1
str1 = parseFloat(str1);
//转换完成后的输出
console.log("类型转换后:" + str1 + ",类型为:" + typeof str1);
控制台的输出结果:
Boolean
转换为 Number
true
-------1
false
-------0
//定义 Boolean 类型的值
var a = true;
// 转换前的输出
console.log("a的值为:" + a + ",类型为:" + typeof a);
//转换
a = Number(a);
//转换后的输出
console.log("a的值为:" + a + ",类型为:" + typeof a);
// false 的情况
var b = false;
console.log("a的值为:" + b + ",类型为:" + typeof b);
b = Number(b);
console.log("a的值为:" + b + ",类型为:" + typeof b);
控制台的运行结果:
Null
转换为 Number
后值为 0
Undefined
转换为 Number
后值为 NaN
//定义 Boolean 类型的值
var a = null;
// 转换前的输出
console.log("a的值为:" + a + ",类型为:" + typeof a);
//转换
a = Number(a);
//转换后的输出
console.log("a的值为:" + a + ",类型为:" + typeof a);
// undefined 的情况
var b = undefined;
console.log("a的值为:" + b + ",类型为:" + typeof b);
b = Number(b);
console.log("a的值为:" + b + ",类型为:" + typeof b);
控制台的输出结果:
将其他数据类型转换为 Boolean
-
使用
Boolean()
函数数字转换成布尔 除了 0 和 NaN 其余的都是 true 字符串转换成布尔 除了 空串,其余的都是 true Null 和 Undefined 都是转换成 false 对象也会转换为 True