首页 > Web开发 > 详细

0基础学习前段历程3 JS基础知识 Number数据类型解析

时间:2020-03-19 14:10:04      阅读:54      评论:0      收藏:0      [点我收藏+]

number数据类型详解

1、 number数据类型

  • =>正数、零、负数、小数

  • =>NaN:not a number 不是一个有效数字,但是属于number类型的

  • =>Infinity:无穷大的值,也是number类型的
    console.log(NaN == NaN); //=>false NaN和任何值都不相等(包括自己本身)

2、isNaN(验证非有效数字的常用方法)

  • 想要验证一下n是不是有效数字:isNaN 验证一个值是否为非有效数字,如果是有效数字,则返回false,如果不是有效数字,则返回true */

  • isNaN语法isNaN([value])

let n = NaN;
if (n == NaN) { 这样判断是不行的
console.log(‘n不是有效数字!‘);}
console.log(isNaN(1)); //=>false
console.log(isNaN(NaN)); //=>true
console.log(isNaN(Infinity)); //=>false
console.log(isNaN(‘AA‘)); //=>true
console.log(isNaN(‘12.5‘)); //=>false
console.log(isNaN(‘12.5px‘)); //=>true
console.log(isNaN([])); //=>false
console.log(isNaN([10])); //=>false
console.log(isNaN([10, 20])); //=>true
console.log(isNaN({})); //=>true
console.log(isNaN(null)); //=>false
console.log(isNaN(undefined)); //=>true
console.log(isNaN(Symbol(1))); //=>报错,symbol不能用isNaN验证

3、把其他类型数据转换为数字类型的三种方法详解(number、parseInt、parseFloat)

1、number(方法)

语法:number([value])

  • Number是JS内置的转换方法,可以把其它数据类型“强制”转换为数字类型

1、string转化为number

把字符串转换为数字:一但字符串中出现非有效数字字符,则结果为NaN,只有都是有效数字字符,才能转换为具体的数字,空字符串会转换为0

2、boolean转化为number

把布尔转换为数字:true转换为1 false转换为0

3、null和undefined转化为number

把空转换为数字:null转换为0 undefined转换为NaN

4、symbol转化为number

不能把Symbol类型转换为数字,否则会报错

5、对象转化为number

对象转换为数字:先把对象转换为字符串,再把字符串转为数字
1、普通对象:先转化为string再转化为number,普通对象转化为字符串(包括空字符串)为[Object object],所以转化为数字的结果都是NaN
2、数组对象:先转化为string再转化为number,数组对象转化为字符串,一但字符串中出现非有效数字字符,则结果为NaN,只有都是有效数字字符,才能转换为具体的数字,空字符串(空数组)会转换为0
3、其余对象:转化结果基本都为NaN
4、函数类型:转换为数字结果都是NaN

let obj={x:100};
1.先把obj转化为字符串 "[object Object]"
2.把字符串转换为数字 Number("[object Object]")
console.log(Number(obj)); //=>NaN
 
let arr = ["10"];
1.先把ARR转换为字符串: "10"
2.在把"10"转换为数字:10
console.log(Number(arr)); //=>10
 
arr = ["10", "20"];
1.先把ARR转换为字符串: "10,20"
2.在把"10,20"转换为数字:NaN
console.log(Number(arr)); //=>NaN
2、parseInt / parseFloat(方法)

语法:parseInt([value])/parseFloat([value])

  • 处理原理和Number方法不一样,他们先把其他数据类型转化为string,在转化为number

  • 从字符串最左边开始查找,把找到的有效数字字符转换为数字,一直遇到一个非有效数字字符为止,则结束查找(空字符串为NaN)

  • parseFloat会比parseInt 多识别一个小数点,其余处理机制相同

console.log(Number(‘12px‘)); //=>NaN
console.log(parseInt(‘12px‘)); //=>12
console.log(parseInt(‘12px24‘)); //=>12
console.log(parseInt(‘width:12px‘)); //=>NaN
console.log(parseInt(‘12.5px‘)); //=>12
console.log(parseFloat(‘12.5px‘)); //=>12.5 parseFloat比parseInt多识别一个小数点
 
console.log(Number(true)); //=>1
console.log(parseInt(true)); //=>先把TRUE转换为字符串"TRUE" parseInt(‘true‘) =>NaN
console.log(parseInt(NaN)); //=>NaN
console.log(Number(null)); //=>0
console.log(parseInt(null)); //=> parseInt(‘null‘) =>NaN
console.log(isNaN(Number(parseInt("0.8")))); //=>parseInt("0.8")->0 Number(0)->0 isNaN(0)->false
 
console.log(Number(‘‘)); //=>0
console.log(parseInt(‘‘)); //=>NaN
3、toFixd
  • 保留小数点后面N位(最后的结果是一个字符串)

toFixed:保留小数点后面N位(最后的结果是一个字符串)
let n = 3.1415926;
console.log(n.toFixed(2)); //=>"3.14"

0基础学习前段历程3 JS基础知识 Number数据类型解析

原文:https://www.cnblogs.com/wrfzxyy/p/12523741.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!