JavaScript 类型转换

    在本教程中,您将借助示例了解 JavaScript 中的类型转换。
    在编程中,类型转换是将一种类型的数据转换为另一种类型的过程。例如:将 String 数据转换为 Number。
    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 转换为数字
// 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 与 number、boolean 或 null 一起使用
// 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"

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

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 转换
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

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值