在javascript中检查types
我怎样才能检查一个variables是否是一个整数types? 我已经找了一些这样的资源,我认为===运算符是重要的,但我不知道如何检查一个variables是一个整数(或一个数组)
在JavaScript中,variables永远不会是一个整数types – 它不区分不同types的数字。
你可以testingvariables是否包含一个数字,如果这个数字是一个整数。
(typeof foo === "number") && Math.floor(foo) === foo
如果variables可能是一个包含整数的string,并且您想查看是否是这种情况:
foo == parseInt(foo, 10)
如果模数%1为0,则数字为整数,
function isInt(n){ return (typeof n== 'number' && n%1== 0); }
这只能像JavaScript一样好 – 比如说十到十五。
isInt(Math.pow(2,50)+。1)如同返回true
Math.pow(2,50)+。1 == Math.pow(2,50)// true
这些天,ECMAScript 6(ECMA-262)是“在房子里”。 使用Number.isInteger(x)
来问你想问的关于x的types的问题:
js> var x = 3 js> Number.isInteger(x) true js> var y = 3.1 js> Number.isInteger(y) false
var a = 1; if (typeof a == 'number') { // ... }
试试这个代码:
alert(typeof(1)==“number”);
我知道你对Integer数字感兴趣,所以我不会回答这个问题,但如果你想检查浮点数,你可以这样做。
function isFloat( x ) { return ( typeof x === "number" && Math.abs( x % 1 ) > 0); }
注意:这可以将数字以.0
(或任何逻辑上等于0
的数字)作为INTEGER来处理。 在这种情况下,实际上需要一个浮点精度错误来检测浮点值。
防爆。
alert(isFloat(5.2)); //returns true alert(isFloat(5)); //returns false alert(isFloat(5.0)); //return could be either true or false
像YourJS这样的一些实用程序库提供了一些函数来确定某个数组是否是一个数组,或者是某个整数或者其他types的数组。 YourJS通过检查值是否是一个数字来定义isInt ,如果它可以被1整除:
function isInt(x) { return typeOf(x, 'Number') && x % 1 == 0; }
上面的代码片段取自这个YourJS代码片段 ,因此只能工作,因为typeOf
是由库定义的。 您可以下载一个简单版本的YourJS,主要只有types检查function,如typeOf()
, isInt()
和isArray()
: isArray()
: isArray()
你也可以看看Runtyper – 一个在===
(和其他操作)中执行操作数types检查的工具。
对于你的例子,如果你有严格的比较x === y
和x = 123, y = "123"
,它会自动检查typeof x, typeof y
并在console中显示警告:
严格比较不同types:123(数字)===“123”(string)