Javascript 为什么isNaN(';';)或isNaN(";)为假(一个引号或双引号被视为有效数字)?
我需要一个内置函数来检查变量是否包含Javascript中的有效数字,我尝试使用的是isJavascript 为什么isNaN(';';)或isNaN(";)为假(一个引号或双引号被视为有效数字)?,javascript,string,Javascript,String,我需要一个内置函数来检查变量是否包含Javascript中的有效数字,我尝试使用的是isisNaN,但是当我使用一个引号(“”)或两个引号(“”)时,结果总是false 为什么单引号或双引号被视为有效数字 空字符串被转换为0,该值不是NaN 空字符串被转换为0,该值不是NaN 任何不能转换为数字的东西都应该返回true,但是“字符串可以解析为number,所以它返回false console.log(+“”) console.log(编号(“”) console.log(isNaN(“”)
isNaN
,但是当我使用一个引号(“”)或两个引号(“”)时,结果总是false
为什么单引号或双引号被视为有效数字
空字符串被转换为0,该值不是NaN
空字符串被转换为0,该值不是NaN
任何不能转换为数字的东西都应该返回true,但是
“
字符串可以解析为number,所以它返回false
console.log(+“”)
console.log(编号(“”)
console.log(isNaN(“”)
任何不能转换为数字的东西都应该返回true,但是“”
字符串可以解析为数字,所以它返回false
console.log(+“”)
console.log(编号(“”)
console.log(isNaN(“”)
将空字符串转换为数字将计算为0。布尔值(+false
=0、+true
=1)和null
也是如此。如果这是不需要的,您可以创建自己的函数来确定某些(字符串)值是否可以转换为Number
。另见(示例@)
const canConvert2Number=value=>
!价值观||
值===false||
值===true||
值===null | |
字符串(值).trim().长度<1
? 假的
: !isNaN(+数值);
console.log(canConvert2Number(null))//假的
console.log(canConvert2Number(“”)//假的
log(canConvert2Number())//假的
console.log(canConvert2Number(false))//假的
console.log(canConvert2Number(true))//假的
console.log(canConvert2Number(“[]”)//假的
log(canConvert2Number(“{}”)//假的
console.log(canConvert2Number(“20.4”)//真的
console.log(canConvert2Number(“10E4”)//正确
.as控制台包装{top:0;最大高度:100%!important;}
将空字符串转换为Number
将计算为0。布尔值(+false
=0、+true
=1)和null
也是如此。如果这是不需要的,您可以创建自己的函数来确定某些(字符串)值是否可以转换为Number
。另见(示例@)
const canConvert2Number=value=>
!价值观||
值===false||
值===true||
值===null | |
字符串(值).trim().长度<1
? 假的
: !isNaN(+数值);
console.log(canConvert2Number(null))//假的
console.log(canConvert2Number(“”)//假的
log(canConvert2Number())//假的
console.log(canConvert2Number(false))//假的
console.log(canConvert2Number(true))//假的
console.log(canConvert2Number(“[]”)//假的
log(canConvert2Number(“{}”)//假的
console.log(canConvert2Number(“20.4”)//真的
console.log(canConvert2Number(“10E4”)//正确
.as控制台包装{top:0;最大高度:100%!important;}
使用isNan不足以验证数字。使用isNan不足以验证数字。