📜  JavaScript类型转换

📅  最后修改于: 2020-09-27 07:47:04             🧑  作者: Mango

在本教程中,您将借助示例来学习JavaScript中的类型转换。

将一种数据类型转换为另一种数据类型的过程称为类型转换。 JavaScript有两种类型的类型转换。

  • 隐式转换
  • 显式转换

JavaScript隐式转换

在某些情况下,JavaScript会自动将一种数据类型转换为另一种数据类型(正确的类型)。这称为隐式转换。


示例1:隐式转换为字符串

// numeric string used with + gives string type
let result;

result = '3' + 2; 
console.log(result) // "32"

result = '3' + true; 
console.log(result); // "3true"

result = '3' + undefined; 
console.log(result); // "3undefined"

result = '3' + null; 
console.log(result); // "3null"

注意 :将数字添加到字符串,JavaScript会在连接前将数字转换为字符串 。


示例2:隐式转换为数字

// numeric string used with +, - , / , * results number type

let result;

result = '4' - '2'; 
console.log(result); // 2

result = '4' - 2;
console.log(result); // 2

result = '4' * 2;
console.log(result); // 8

result = '4' / 2;
console.log(result); // 2

示例3:非数字字符串结果NaN

// non-numeric string used with +, - , / , * results to NaN

let result;

result = 'hello' - 'world';
console.log(result); // NaN

result = '4' - 'hello';
console.log(result); // NaN

示例4:隐式布尔值转换为数字

// if boolean is used, true is 1, false is 0

let result;

result = '4' - true;
console.log(result); // 3

result = 4 + true;
console.log(result); // 5

result = 4 + false;
console.log(result); // 4

注意: JavaScript将0视为false并将所有非零数字视为true 。并且,如果将true转换为数字,则结果始终为1。


示例5:空转换为数字

// null is 0 when used with number
let result;

result = 4 + null;
console.log(result);  // 4

result = 4 - null;
console.log(result);  // 4

示例6:undefined与数字,布尔值或空值一起使用

// Arithmetic operation of undefined with number, boolean or null gives NaN

let result;

result = 4 + undefined;
console.log(result);  // NaN

result = 4 - undefined;
console.log(result);  // NaN

result = true + undefined;
console.log(result);  // NaN

result = null + undefined;
console.log(result);  // NaN

JavaScript显式转换

您还可以根据需要将一种数据类型转换为另一种数据类型。您手动执行的类型转换称为显式类型转换。

在JavaScript中,显式类型转换是使用内置方法完成的。

以下是常用的显式转换:

1.明确转换为数字

要将数字字符串和布尔值转换为数字,可以使用Number() 。例如,

let result;

// string to number
result = Number('324');
console.log(result); // 324

result = Number('324e-1')  
console.log(result); // 32.4

// boolean to number
result = Number(true);
console.log(result); // 1

result = Number(false);
console.log(result); // 0

在JavaScript中,空字符串和null值返回0 。例如,

let result;
result = Number(null);
console.log(result);  // 0

let result = Number(' ')
console.log(result);  // 0

如果字符串是无效数字,则结果将为NaN 。例如,

let result;
result = Number('hello');
console.log(result); // NaN

result = Number(undefined);
console.log(result); // NaN

result = Number(NaN);
console.log(result); // NaN

注意 :您还可以使用parseInt()parseFloat() ,一元运算运算符 +Math.floor()从字符串生成数字。例如,

let result;
result = parseInt('20.01');
console.log(result); // 20

result = parseFloat('20.01');
console.log(result); // 20.01

result = +'20.01';
console.log(result); // 20.01

result = Math.floor('20.01');
console.log(result); // 20

2.明确转换为字符串

要将其他数据类型转换为字符串,可以使用String()toString() 。例如,

//number to string
let result;
result = String(324);
console.log(result);  // "324"

result = String(2 + 4);
console.log(result); // "6"

//other data types to string
result = String(null);
console.log(result); // "null"

result = String(undefined);
console.log(result); // "undefined"

result = String(NaN);
console.log(result); // "NaN"

result = String(true);
console.log(result); // "true"

result = String(false);
console.log(result); // "false"

// using toString()
result = (324).toString();
console.log(result); // "324"

result = true.toString();
console.log(result); // "true"

3.明确转换为布尔值

要将其他数据类型转换为布尔值,可以使用Boolean().

在JavaScript中, undefinednull0NaN''转换为false 。例如,

let result;
result = Boolean('');
console.log(result); // false

result = Boolean(0);
console.log(result); // false

result = Boolean(undefined);
console.log(result); // false

result = Boolean(null);
console.log(result); // false

result = Boolean(NaN);
console.log(result); // false

所有其他值都为true 。例如,

result = Boolean(324);
console.log(result); // true

result = Boolean('hello');
console.log(result); // true

result = Boolean(' ');
console.log(result); // true

JavaScript类型转换表

该表显示了JavaScript中将不同的值转换为String,Number和Boolean的情况。

Value String Conversion Number Conversion Boolean Conversion
1 “1” 1 true
0 “0” 0 false
“1” “1” 1 true
“0” “0” 0 true
“ten” “ten” NaN true
true “true” 1 true
false “false” 0 false
null “null” 0 false
undefined “undefined” NaN false
“” 0 false
‘ ‘ ” “ 0 true

在后面的教程中,您将学习有关将对象和数组转换为其他数据类型的知识。


请访问以下示例以了解更多信息:

  • JavaScript日期到数字
  • JavaScript日期转换为字符串