企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
~~~ /* * 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('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(Symb****ol(1))); //=>报错 /* * 在使用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('true')); //=>NaN console.log(Number(false)); //=>0 console.log(Number('false')); //=>NaN 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.先把ARR转换为字符串: "10" * 2.在把"10"转换为数字:10 */ let arr = ["10"]; console.log(Number(arr)); //=>10 /* * 1.先把ARR转换为字符串: "10,20",注意逗号 * 2.在把"10,20"转换为数字:NaN */ arr = ["10", "20"]; console.log(Number(arr)); //=>NaN console.log(Number([])); //=> []->'' Number('')->0 console.log(Number(['AA'])); //=> ['AA']->'AA' Number('AA')->NaN ~~~ 1. ![](https://img.kancloud.cn/bc/7b/bc7bd2d4478c70b5d05c8785b1fd75e5_215x103.png) 2. ![](https://img.kancloud.cn/1c/2b/1c2be508e75fa114aabc91b02845a5a3_307x50.png) 3. ![](https://img.kancloud.cn/bb/43/bb43b7fcf631dde1f692f503ead07262_295x50.png)