number数据类型转化规则

学习目标:

JavaScript 入门知识


学习内容:

number数据类型

学习时间:

1.5小时

学习产出:

number类型
+ 正数 零 负数 小数
+ NAN not a number 不是一个有效数字1 ,NAN 和自己也不相等 isNaN()s用来检测是不是NAN类型 是有效数字的为false 不是有效数字为true
+ infinity :无穷大的值也是number类型的
+typeof 检测数据类型
// console.log(1 == 1); //=>true
// console.log(NaN == NaN); //=>false NaN和任何值都不相等(包括自己本身)
isNaN 验证一个值是否为非有效数字,如果是有效数字,则返回false,如果不是有效数字,则返回true
// 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类型转换为数字,否则会报错*
+ 对象转换为数字:先把对象转换为字符串,再把字符串转为数字
+ 普通对象=>’[object,object]’
+ 数组对象 let arr=[10,20]=>“10,20’
+ 其余对象格式基本上都会变为数字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
// let obj={x:100};
// console.log(Number(obj)); //=>NaN
// let arr = [“10”];
// console.log(Number(arr)); //=>10
// arr = [“10”, “20”];
// console.log(Number(arr)); //=>NaN
// console.log(Number([])); //=> []->’’ Number(’’)->0
// console.log(Number([‘AA’])); //=> [‘AA’]->‘AA’ Number(‘AA’)->NaN
parseInt / parseFloat:也是把其它数据类型转换为number类型的
处理原理和Number不一样,他们是把字符串转换为数字类型(如果处理的值不是字符串,需要先转换为字符串然后在去转换为number类型的) =>从字符串最左边开始查找,把找到的有效数字字符转换为数字,一直遇到一个非有效数字字符为止,则结束查找
// 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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值