小甲鱼 发表于 2024-7-7 17:42:01

Number() -- 将各种类型的值转换为数值类型

Number() -- 将各种类型的值转换为数值类型

函数概述

Number() 函数用于将各种类型的值转换为数值类型(即 Number 类型)。


函数语法

Number(value)

参数解析


参数 含义
value 将要转换的值


返回值

根据参数类型决定不同的返回值:


[*]布尔值:true 转换为 1,false 转换为 0。
[*]数值:如果参数本身就是一个数值,则返回该数值。
[*]字符串:如果字符串包含有效的数值表示法(包括浮点数),则转换为相应的数值。如果字符串不包含有效的数值表示法,则转换为 NaN(Not a Number)。
[*]对象:如果对象包含 valueOf() 方法并返回一个原始值,则调用该方法并将结果转换为数值。如果对象包含 toString() 方法并返回一个字符串(可以转换为有效的数值),则将其转换为数值。
[*]null:转换为 0。
[*]undefined:转换为 NaN。


基本用法

# 布尔值
console.log(Number(true));// 输出: 1
console.log(Number(false)); // 输出: 0

# 数值
console.log(Number(42));    // 输出: 42
console.log(Number(-3.14)); // 输出: -3.14

# 字符串
console.log(Number("123"));      // 输出: 123
console.log(Number("123.45"));   // 输出: 123.45
console.log(Number(" 123 "));    // 输出: 123(忽略前后空格)
console.log(Number("123abc"));   // 输出: NaN(无效数字)
console.log(Number("abc123"));   // 输出: NaN(无效数字)
console.log(Number(""));         // 输出: 0(空字符串)

# 对象
console.log(Number({}));                  // 输出: NaN
console.log(Number({valueOf: () => 5}));// 输出: 5
console.log(Number({toString: () => "6"})); // 输出: 6

# null 和 undefined
console.log(Number(null));      // 输出: 0
console.log(Number(undefined)); // 输出: NaN

注意事项

NaN 的处理:NaN 表示 “不是一个数字”,但是它的类型仍然是 Number。任何涉及 NaN 的算术操作都会返回 NaN。

字符串的处理:如果字符串包含非数字字符(除了前后的空格),Number() 函数将返回 NaN。

对象的处理顺序:Number() 函数首先尝试调用对象的 valueOf 方法,如果 valueOf 返回原始值,则使用该值进行转换;否则,调用 toString 方法,并尝试将返回的字符串转换为数字。


页: [1]
查看完整版本: Number() -- 将各种类型的值转换为数值类型