记录看到或者用到的js代码,长期更新!
(number-0)|0 !== number-0
解析: number-0 转换成数字,再通过位移运算(|)判断是否跟原数字相等
function typeOf(o){
let _toString = Object.prototype.toString;
//列举基本的数据类型和内置的对象类型
let _types = {
"undefined" : "undefined",
"number" : "number",
"string" : "string",
"boolean" : "boolean",
"[object Function]" : "function",
"[object Array]" : "array",
"[object Date]" : "date",
"[object RegExp]" : "regExp",
"[object Error]" : "error"
}
return _types[typeof o] || _types[_toString.call(o)] || (o? "object":"null");
}
ps: 上述方法适用于基本的数据类型和内置对象,而对于自定义对象是无效的。
function isNumber(num){
return typeof num === "number" && isFinite(num);
}
如果是有限数值,或者可以转成有限数值,将返回true;如果只是NaN,正负无穷大的值,则返回false。
function isArray(arr){
return Object.prototype.toString.call(arr) === ‘[object Array]‘
}
原文:https://www.cnblogs.com/blogs-xlf/p/10089062.html