JavaScript——类型转换

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/actionActivity/article/details/89788688

类型转换指的是将一个数据类型转换为其他的数据类型
将其他的数据类型转换为 StringNumberBoolean

将其他数据类型转换为 String

  1. 调用被转换类型toString() 方法
    该方法不会影响到元变量,会将转换的结果返回。
    注意:NullUndefined 没有 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);

控制台输出的结果为:
在这里插入图片描述

  1. 调用 String() 函数
    调用 String() 函数,并将被转换的数据类型当做参数传递给 String() 函数。
    使用 String() 函数做强制类型转换的时候,对于 NumberBoolean 实际上就是调用的 toString()方法。
    但是对于NullUndefined就不会调用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 的两种方式

  1. 使用 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));

控制台输出的结果:
在这里插入图片描述

  1. 使用 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
    

猜你喜欢

转载自blog.csdn.net/actionActivity/article/details/89788688