JavaScript 类型转换

x33g5p2x  于2022-04-06 转载在 Java  
字(4.2k)|赞(0)|评价(0)|浏览(404)

在本教程中,您将借助示例了解 JavaScript 中的类型转换。
    在编程中,类型转换是将一种类型的数据转换为另一种类型的过程。例如:将 String 数据转换为 Number。
    JavaScript 中有两种类型的类型转换。

  • 隐式转换 - 自动类型转换
  • 显式转换 - 手动类型转换
JavaScript 隐式转换

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

示例 1:隐式转换为字符串
  1. // numeric string used with + gives string type
  2. let result;
  3. result = '3' + 2;
  4. console.log(result) // "32"
  5. result = '3' + true;
  6. console.log(result); // "3true"
  7. result = '3' + undefined;
  8. console.log(result); // "3undefined"
  9. result = '3' + null;
  10. console.log(result); // "3null"

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

示例 2:隐式转换为数字
  1. // numeric string used with - , / , * results number type
  2. let result;
  3. result = '4' - '2';
  4. console.log(result); // 2
  5. result = '4' - 2;
  6. console.log(result); // 2
  7. result = '4' * 2;
  8. console.log(result); // 8
  9. result = '4' / 2;
  10. console.log(result); // 2
示例 3:非数字字符串结果转换为 NaN
  1. // non-numeric string used with - , / , * results to NaN
  2. let result;
  3. result = 'hello' - 'world';
  4. console.log(result); // NaN
  5. result = '4' - 'hello';
  6. console.log(result); // NaN
示例 4:隐式布尔转换为数字
  1. // if boolean is used, true is 1, false is 0
  2. let result;
  3. result = '4' - true;
  4. console.log(result); // 3
  5. result = 4 + true;
  6. console.log(result); // 5
  7. result = 4 + false;
  8. console.log(result); // 4

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

示例 5:null 转换为数字
  1. // null is 0 when used with number
  2. let result;
  3. result = 4 + null;
  4. console.log(result); // 4
  5. result = 4 - null;
  6. console.log(result); // 4
示例 6:undefined 与 number、boolean 或 null 一起使用
  1. // Arithmetic operation of undefined with number, boolean or null gives NaN
  2. let result;
  3. result = 4 + undefined;
  4. console.log(result); // NaN
  5. result = 4 - undefined;
  6. console.log(result); // NaN
  7. result = true + undefined;
  8. console.log(result); // NaN
  9. result = null + undefined;
  10. console.log(result); // NaN
JavaScript 显式转换

您还可以根据需要将一种数据类型转换为另一种数据类型。您手动执行的类型转换称为显式类型转换。
    在 JavaScript 中,显式类型转换是使用内置方法完成的。
    以下是一些常见的显式转换方法。

1. 显式转换为数字

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

  1. let result;
  2. // string to number
  3. result = Number('324');
  4. console.log(result); // 324
  5. result = Number('324e-1')
  6. console.log(result); // 32.4
  7. // boolean to number
  8. result = Number(true);
  9. console.log(result); // 1
  10. result = Number(false);
  11. console.log(result); // 0

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

  1. let result;
  2. result = Number(null);
  3. console.log(result); // 0
  4. let result = Number(' ')
  5. console.log(result); // 0

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

  1. let result;
  2. result = Number('hello');
  3. console.log(result); // NaN
  4. result = Number(undefined);
  5. console.log(result); // NaN
  6. result = Number(NaN);
  7. console.log(result); // NaN

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

  1. let result;
  2. result = parseInt('20.01');
  3. console.log(result); // 20
  4. result = parseFloat('20.01');
  5. console.log(result); // 20.01
  6. result = +'20.01';
  7. console.log(result); // 20.01
  8. result = Math.floor('20.01');
  9. console.log(result); // 20
2. 显式转换为字符串

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

  1. //number to string
  2. let result;
  3. result = String(324);
  4. console.log(result); // "324"
  5. result = String(2 + 4);
  6. console.log(result); // "6"
  7. //other data types to string
  8. result = String(null);
  9. console.log(result); // "null"
  10. result = String(undefined);
  11. console.log(result); // "undefined"
  12. result = String(NaN);
  13. console.log(result); // "NaN"
  14. result = String(true);
  15. console.log(result); // "true"
  16. result = String(false);
  17. console.log(result); // "false"
  18. // using toString()
  19. result = (324).toString();
  20. console.log(result); // "324"
  21. result = true.toString();
  22. console.log(result); // "true"

注意:String() 接受 null 和 undefined,并将它们转换为String。但是,当传递 null 时,toString() 会给出错误。

3. 显式转换为布尔值

要将其他数据类型转换为布尔值,您可以使用 Boolean()。
    在 JavaScript 中,undefined, null, 0, NaN, ’ ’ 转换为 false。 例如,

  1. let result;
  2. result = Boolean('');
  3. console.log(result); // false
  4. result = Boolean(0);
  5. console.log(result); // false
  6. result = Boolean(undefined);
  7. console.log(result); // false
  8. result = Boolean(null);
  9. console.log(result); // false
  10. result = Boolean(NaN);
  11. console.log(result); // false

所有其他值给出 true。 例如,

  1. result = Boolean(324);
  2. console.log(result); // true
  3. result = Boolean('hello');
  4. console.log(result); // true
  5. result = Boolean(' ');
  6. console.log(result); // true
JavaScript 类型转换表

该表显示了 JavaScript 中不同值到字符串、数字和布尔值的转换。

String 转换Number 转换Boolean 转换
1“1”1true
0“0”0false
“1”“1”1true
“0”“0”0true
“ten”“ten”NaNtrue
true“true”1true
false“false”0false
null“null”0false
undefined“undefined”NaNfalse
‘’“”0false
’ ’" "0true

您将在后面的教程中了解对象和数组到其他数据类型的转换。
    相关示例:

上一教程 :JS Comments                                         下一教程 :JS Comparison Operator

参考文档

[1] Parewa Labs Pvt. Ltd. (2022, January 1). Getting Started With JavaScript, from Parewa Labs Pvt. Ltd: https://www.programiz.com/javascript/type-conversion

相关文章