当前位置:  首页>> 技术小册>> JavaScript面试指南

JavaScript中的类型转换机制可以分为隐式类型转换和显式类型转换两种。

隐式类型转换
当JavaScript在运行时需要将某个类型的值转换为另一个类型时,就会进行隐式类型转换。以下是一些常见的隐式类型转换情况:

字符串与数字之间的隐式类型转换
当字符串和数字进行运算时,JavaScript会将字符串自动转换为数字类型。

  1. console.log(1 + '2'); // "12"
  2. console.log('2' * 2); // 4

布尔值与数字之间的隐式类型转换
布尔值在进行运算时也会被自动转换为数字类型。

  1. console.log(true + 1); // 2
  2. console.log(false + 1); // 1

字符串、数字和布尔值之间的隐式类型转换
字符串、数字和布尔值在进行运算时也会被自动转换为布尔值。

  1. console.log(''); // false
  2. console.log(0); // false
  3. console.log(NaN); // false
  4. console.log(undefined); // false
  5. console.log(null); // false
  6. console.log('hello'); // true
  7. console.log(1); // true
  8. console.log(true); // true

显式类型转换
显式类型转换是通过一些内置函数来将一个类型的值转换为另一个类型。以下是一些常见的显式类型转换函数:

String()
String()函数可以将任何类型的值转换为字符串类型。

  1. console.log(String(123)); // "123"
  2. console.log(String(true)); // "true"
  3. console.log(String(null)); // "null"
  4. console.log(String(undefined)); // "undefined"

Number()
Number()函数可以将任何类型的值转换为数字类型。

  1. console.log(Number('123')); // 123
  2. console.log(Number('12.34')); // 12.34
  3. console.log(Number(true)); // 1
  4. console.log(Number(false)); // 0
  5. console.log(Number(null)); // 0
  6. console.log(Number(undefined)); // NaN

Boolean()
Boolean()函数可以将任何类型的值转换为布尔值类型。

  1. console.log(Boolean('hello')); // true
  2. console.log(Boolean(123)); // true
  3. console.log(Boolean(null)); // false
  4. console.log(Boolean(undefined)); // false
  5. console.log(Boolean(0)); // false

parseInt()
parseInt()函数可以将字符串类型的值转换为整数类型。注意,parseInt()函数只能将字符串的前面部分转换为整数,如果字符串的第一个字符不是数字或正负号,则会返回NaN。

  1. console.log(parseInt('123')); // 123
  2. console.log(parseInt('12.34')); // 12
  3. console.log(parseInt('hello')); // NaN
  4. console.log(parseInt('123hello')); // 123

parseFloat()
parseFloat()函数可以将字符串类型的值转换为浮点数类型。

  1. console.log(parseFloat('12.34')); // 12.34
  2. console.log(parseFloat('hello')); // NaN

该分类下的相关小册推荐: