javascript number数据类型(Number)

192 阅读2分钟

Number数据类型

    => 正数,负数,零,小数

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

    =>  Infinity:  无穷大的值,也是number类型的

console.log(1 == 1)  // =>true
console.log(NaN == NaN)   // => false   NaN 和 任何值都不相等(包括自己本身)

/* 
*  想要验证一下n是不是有效数字; isNaN  专业用来检测某一值是否为有效数字的,如果是有效数字,则返回
*  false,如果不是有效数字,则返回  true
*/
let  n = NaN;
if(n==NaN){ // 这样判断是不行的 }

console.log(isNaN(1));   // => false
console.log(isNaN(NaN));   // => true
console.log(isNaN(Infinity));   // => false

/*
*  再使用isNaN 进行检测的时候,如果检测的值是非数字类型的值,则需要先把其转换为 数字类型,然后再进行
*  检测
*  把其他数据类型转换为数字类型
*      + Number(value) 而isNaN 再检测的时候,使用的就是这种方式转换为数字类型的
*      + parseInt(value);
*      + parseFloat(value);
*  
*  Number 是js内置的转换方法,可以把其他数据类型‘强制’转换为数字类型
*      +  把字符串转换为数字: 一旦字符串中出现非有效数字字符,则结果为NaN,只有都是有效数字字符,
*         才能转换为具体的数字,空字符串转化为0
*      +  把布尔转换为数字:true 转换为 1  false转换为 0
*      +  把空转换为数字: null转换为0  undefined 转换 为 NaN
*      +  不能把Symbol类型转换为数字,否则会报错
*      +  对象转换为数字
*         +普通对象
*         +数组对象
*         +其余对象格式基本上都会变为数字NaN
*      +  函数转为数字:结果都是NaN
*/

console.log(Number('12')); // => 12
console.log(Number('12.5')); // => 12.5
console.log(Number('12px')); // => NaN
console.log(Number('12.5.0')); // => NaN
console.log(Number(true)); // => 1
console.log(Number(false)); // => 0
console.log(Number(null)); // => 0
console.log(Number(undefined)); // => NaN
console.log(Number(Symbol(13))); // => Cannot convert  a  Symbol  value  to  a  number
console.log(Number(function func(){})); // =>  NaN

/*
*  普通对象
*      1,先把obj转化为字符串   "[object Object]"
*      2, 把字符串转换 为数字  Number("[object Object]")
*      let obj = {x: 100};
*      console.log(Number(obj)) // =>  NaN
*/

/*
*  普通数组
*      1,先把数组转化为字符串   "10"
*      2, 把字符串"10"转化为数字: 10
*      let arr = ['10'];
*      console.log(Number(arr)) // =>  10
*//*
*  普通数组
*      1,先把数组转化为字符串   "10,20"
*      2, 把字符串"10,20"转化为数字: NaN
*      let arr = ['10','20'];
*      console.log(Number(arr)) // =>  NaN
*/

/*
*  特殊的几个
*       console.log(Number([])); // =>  []  =>  ''  Number('') => 0
*       console.log(Number(['AA'])); // =>  ['AA']  =>  'AA'  Number('AA') => NaN
*/