隐式类型转换与显示类型转换 - (不是官方给的内容)

隐式类型转换

1.转换为string类型 - 类型转换后内容不变 - 用法: + ''(单引)或 ""(双引)
代码示例图:

// 定义number类型,string类型和boolean类型的变量
var num = 100;
var str = '一花一世界';
var boo = false;

var result1 = '' + num;// 100
console.log(typeof result1);// string
var result2 = boo + '';// true
console.log(typeof result2);// string

控制台示例图:
图片描述


2.转换为number类型 - 用法: + 其他类型

  • string类型转换为number类型

    • 如果文本内容是普通的文本(非数字) -> 转换后的结果为
    • 如果文本内容是数字值 -> 转换后的结果为对应数字值
  • boolean类型转换为number类型

    • true转换为 1
    • false转换为 0

示例代码

var result3 = +str;
console.log(result3);
console.log(typeof result3);// number
var result4 = +boo;
console.log(result4);// true为1,false为0
console.log(typeof result4);// number

3.转换为boolean类型 - 用法: !! 其他类型

  • string类型转换为boolean类型

    • 空字符串(''或"")转换后的结果为false,其余情况都为true
  • number类型转换为boolean类型

    • 0或NaN转换后的结果为false,其余情况都为true
  • 注意: undefined或null转换后的结果为false

示例代码:

var result5 = !!str;
console.log(result5);// true
console.log(typeof result5);// boolean
var result6 = !!num;
console.log(result6);// true
console.log(typeof result6);// boolean

显示类型转换

  • Number() - 转换为数字值的类型
  • String() - 转换为字符串的类型
  • Boolean() - 转换为布尔值的类型
  • 注意: 这种写法很像包装类型,区别包装类型的定义方式是 new Number, new String和 new Boolean

1.转换为string类型 - 用法:其他类型加一个 (点) toString

  • String()函数 -> String(值)
  • toString()方法 -> 变量名.toString()

    • 对象的方法 -> 将变量当作是一个对象来使用
// 定义number类型、string类型以及boolean类型的变量
var num = 100;
var str = '一花一世界';
var str1 = '100';
var str2 = '100.7';
var boo = false;

var result1 = String(num);
console.log(typeof result1);// string
var result2 = num.toString();
console.log(typeof result2);// string

2.转换为number类型

  • Number()函数 -> Number(值)
  • parseInt()函数 -> parseInt(值)

    • 转换为number类型,转换为一个整数
  • parseFloat()函数 -> parseFloat(值)

    • 转换为number类型,转换为一个浮点数

示例代码:

var result3 = Number(boo);
console.log(typeof result3);// number

var result4 = parseInt(str1);
console.log(typeof result4);// 100
var result5 = parseFloat(str1);
console.log(result5);// 100

  • 注意:

    1. 如果用parseInt(转换整数)转换浮点数(100.1)JavaScript会自动取整数部分
    2. 如果用parseFloat(转换浮点)转换整数(100)JavaScript会自动去掉浮点

示例代码:

var result6 = parseInt(str2);
console.log(result6);// 如果当前值为小数的话,parseInt()后取整数部分 - 100
var result7 = parseFloat(str2);
console.log(result7);// 100.7

3.转换为boolean类型

  • Boolean()函数 -> Boolean(值)

示例代码:

var result8 = Boolean(str);
console.log(result8);// true

隐式类型转换与显示类型转换的区别

  • 显示类型转换

    • 优点 - 可读性高
    • 缺点 - 性能差
  • 隐式类型转换

    • 优点 - 性能好
    • 缺点 - 可读性差
  • 备注: 在代码量不是很多的情况下并且不影响性能 - 建议使用显示类型转换,因为可读性会好(代码的清晰度高)

a达达
21 声望5 粉丝