将一种数据类型转换为另一种数据类型的过程称为类型转换。 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中, undefined
, null
, 0
, NaN
, ''
转换为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日期转换为字符串