3.JavaScript-数据类型转换为数值类型

2019-04-02  本文已影响0人  乄Denve彡

在JavaScript中如果想将以上的四种基本数据类型转换为数值类型,常用的方法有三种

第一种:通过Number(常量or变量);方式来转换

\color{red}{注意点}

  • 如果字符串中都是数值,那么就正常转换
  • 如果字符串中没有数据(空字符串)""/" ",那么转换的结果为0
  • 如果字符串中的数据不仅仅是数值,那么转换的结果是NaN
  • 如果是布尔类型的true,那么转换的结果是1
  • 如果是布尔类型的false,那么转换的结果是0
  • 如果是空类型(null),那么转换的结果是0
  • 如果是undefined(未定义)类型,那么转换的结果是NaN
// 如果字符串中都是数值,那么就正常转换
let str = "111";
let num = Number(str);
console.log(num);  // 111
console.log(typeof num);  / number
// 如果字符串中没有数据(空字符串)""/"   ",那么转换的结果为0
let str = "  ";
let num = Number(str); 
console.log(num);  // 0
console.log(typeof num);  // number
// 如果字符串中的数据不仅仅是数值,那么转换的结果是NaN
let str = "13px";
let num = Number(str);
console.log(num);     // NaN
console.log(typeof num);  // number
// 如果是布尔类型的true,那么转换的结果是1
// 如果是布尔类型的false,那么转换的结果是0
// 如果是空类型(null),那么转换的结果是0
let str = true;
let str1 = false;
let str2 = null;
let num = Number(str);
let num1 = Number(str1);
let num2 = Number(str2);
console.log(num, num1, num2);  // 1 0 0
console.log(typeof num);  // number
console.log(typeof num1);  // number
console.log(typeof num2);  // number
// 如果是undefined(未定义)类型,那么转换的结果是NaN
let str = undefined;
let num = Number(str);
console.log(num);  // NaN
console.log(typeof num);  // number

第二种:还可以通过数学运算符号中的+号和-号来转换
注意点:虽然通过+/-都可以将其他类型转换为数值类型,但是-号会改变数值的正负性
+/-本质上就是调用了Number()函数

let str = "111";
let num = +str;
console.log(num); // 111 
console.log(typeof num);    // number
// -号会改变数值的正负性
let str = "111";
let num = -str;
console.log(num);  // -111
console.log(typeof num);    // number

第三种:还可以通过parseInt(需要转换的字符串)/parseFloat(需要转换的字符串)
注意点:parseInt/parseFloat都会从左至右的提取数值,一旦遇到非数值就会立即停止 停止的时候如果还没有提取到数值,就会返回NaN
parseInt/parseFloat都会将传入的数据当作字符串来处理 无论是true/false/undefined/null,最后都会返回NaN

// parseInt(需要转换的字符串)
let str = "13.04px";
let num = parseInt(str);
console.log(num); // 13
console.log(typeof num);  // number
// parseFloat(需要转换的字符串)
let str = "13.04px";
let num = parseFloat(str);
console.log(num); // 13.04
console.log(typeof num);  // number
// parseInt/parseFloat都会将传入的数据当作字符串来处理 无论是true/false/undefined/null,最后都会返回NaN
let str = true;
let num = parseFloat(str);
console.log(num);   // NaN
console.log(typeof num);
上一篇下一篇

猜你喜欢

热点阅读