将 数据 转为 数字类型 有 如下 四种方法 , 使用 parseInt() 和 parseFloat() 函数 是 最常用的两种方法 , 需要重点掌握 ;
parseInt() 函数 : 解析字符串并返回一个整数 , 将 string 类型字符串 转为 整型 number 数字类型 ;
let intFromStr = parseInt("10");
console.log(intFromStr) // 输出 : 10
parseFloat() 函数 : 解析并返回一个浮点数 , 将 string 类型字符串 转为 浮点型 number 数字类型 ;
let floatFromStr = parseFloat("10.00");
console.log(floatFromStr) // 输出 : 10
如果 解析的 字符串 , 前面部分是数字 , 后面是非数字 , 则只解析 前半部分 数字部分的字符串 , 后面的字符串部分 直接丢弃 ;
// parseInt 解析 字符串 , 会停止在第一个非数字字符
let intNotANum = parseInt("20px");
console.log(intNotANum) // 输出 : 20
如果 解析的 字符串 , 都是非数字 , 转换结果是 NaN 非数字 ;
// 传入非数字字符串 , 得到 NaN
let notANum = parseFloat("hello");
console.log(notANum) // 输出 : NaN
完整代码示例 :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!-- 设置 meta 视口标签 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no,maximum-scale=1.0,minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>JavaScript</title>
<style></style>
<script>
// 将 字符串类型 转为 数字类型
let intFromStr = parseInt("10");
console.log(intFromStr) // 输出 : 10
let floatFromStr = parseFloat("10.00");
console.log(floatFromStr) // 输出 : 10
// parseInt 解析 字符串 , 会停止在第一个非数字字符
let intNotANum = parseInt("20px");
console.log(intNotANum) // 输出 : 20
// 传入非数字字符串 , 得到 NaN
let notANum = parseFloat("hello");
console.log(notANum) // 输出 : NaN
</script>
</head>
<body>
</body>
</html>
展示效果 :
Number() 函数 : 调用 Number() 强制转换函数 , 将 string 字符串类型 转为 number 数字类型 ;
Number() 是一个内建的 JavaScript 函数 , 用于将对象转换为数字 , 如果被转换的 字符串 不是数字 无法转换 , 则返回 NaN 非数字值 ;
代码示例 :
let str = "123";
let num = Number(str);
console.log(num) // 输出 : 123
let notANum = Number("hello");
console.log(notANum) // 输出 : NaN
完整代码示例 :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!-- 设置 meta 视口标签 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no,maximum-scale=1.0,minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>JavaScript</title>
<style></style>
<script>
// 将 字符串类型 转为 数字类型
let str = "123";
let num = Number(str);
console.log(num) // 输出 : 123
let notANum = Number("hello");
console.log(notANum) // 输出 : NaN
</script>
</head>
<body>
</body>
</html>
展示效果 :
在对 string 字符串类型 进行 算术运算时 , JavaScript 会 尝试 将 操作数转换为数字 ;
算术运算符 -
, *
, /
会有 隐式转换 , 在 字符串前面 单独使用 +
( 加号前面不能有元素 ) 也会有 隐式转换 ;
下面的 减 0 算术运算操作 , 会 尝试将 字符串转换为数字 ;
let str = "5";
// 减 0 算术运算操作 会 尝试将 字符串转换为数字
let num = str - 0;
console.log(num) // 输出 : 5
console.log(typeof num) // 输出 : number
在字符串前面加上加号 , 会尝试将 字符串转换为数字 ;
// 在字符串前面加上加号 , 会尝试将 字符串转换为数字
let nmu2 = +str;
console.log(nmu2) // 输出 : 5
console.log(typeof nmu2) // 输出 : number
完整代码示例 :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!-- 设置 meta 视口标签 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no,maximum-scale=1.0,minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>JavaScript</title>
<style></style>
<script>
// 将 字符串类型 转为 数字类型
let str = "5";
// 算术运算操作 会 尝试将 字符串转换为数字
let num = str - 0;
console.log(num) // 输出 : 5
console.log(typeof num) // 输出 : number
// 在字符串前面加上加号 , 会尝试将 字符串转换为数字
let nmu2 = +str;
console.log(nmu2) // 输出 : 5
console.log(typeof nmu2) // 输出 : number
</script>
</head>
<body>
</body>
</html>
展示效果 :