有没有一个通用的JavaScript函数可以检查变量是否有值,并确保它不是undefined
或null
?我有这段代码,但我不确定它是否涵盖了所有情况:
function isEmpty(val){
return (val === undefined || val == null || val.length <= 0) ? true : false;
}
发布于 2011-04-01 23:20:57
用于检查value是否未定义或为空的详细方法为:
return value === undefined || value === null;
您也可以使用know all the rules运算符,但这需要一个运算符
return value == null; // also returns true if value is undefined
发布于 2011-04-01 23:19:40
function isEmpty(value){
return (value == null || value.length === 0);
}
这将返回true
undefined // Because undefined == null
null
[]
""
和零参数函数,因为函数的length
是它所采用的声明参数的数量。
要禁止后一种类型,您可能只需要检查空字符串
function isEmpty(value){
return (value == null || value === '');
}
发布于 2015-02-12 18:32:43
您可能会发现以下函数很有用:
function typeOf(obj) {
return {}.toString.call(obj).split(' ')[1].slice(0, -1).toLowerCase();
}
或在ES7中(如果有进一步的改进,请发表评论)
function typeOf(obj) {
const { toString } = Object.prototype;
const stringified = obj::toString();
const type = stringified.split(' ')[1].slice(0, -1);
return type.toLowerCase();
}
结果:
typeOf(); //undefined
typeOf(null); //null
typeOf(NaN); //number
typeOf(5); //number
typeOf({}); //object
typeOf([]); //array
typeOf(''); //string
typeOf(function () {}); //function
typeOf(/a/) //regexp
typeOf(new Date()) //date
typeOf(new WeakMap()) //weakmap
typeOf(new Map()) //map
“请注意,绑定运算符(::)既不是ES2016 (ES7)的一部分,也不是ECMAScript标准的任何后续版本。它目前是引入该语言的0阶段(稻草人)提案。”- Simon Kjellberg。作者希望添加他的支持这项美丽的提议,以接受皇家提升。
https://stackoverflow.com/questions/5515310
复制相似问题