是否有一种通用的JavaScript函数,可以检查变量是否具有值,并确保它不是undefined
或null
?我有这段代码,但我不确定它是否涵盖了所有情况:
function isEmpty(val){
return (val === undefined || val == null || val.length <= 0) ? true : false;
}
是否有一种通用的JavaScript函数,可以检查变量是否具有值,并确保它不是undefined
或null
?我有这段代码,但我不确定它是否涵盖了所有情况:
function isEmpty(val){
return (val === undefined || val == null || val.length <= 0) ? true : false;
}
以下方法适用于我。请稍作修改以使其更快。
function isEmpty(obj) {
if (!obj) return true;
if (typeof obj == 'number') return false;
else if (typeof obj == 'string') return obj.length == 0;
else if (Array.isArray(obj)) return obj.length == 0;
else if (typeof obj == 'object') return obj == null || Object.keys(obj).length == 0;
else if (typeof obj == 'boolean') return false;
}
虽然这是一个老问题,但我们不能忘记应该将代码块包装起来,然后捕获错误并进行测试...
function checkup( t ){
try{
for(p in t){
if( p.hasOwnProperty( t ) ){
return true;
}
}
return false;
}catch(e){
console.log("ERROR : "+e);
return e;
}
}
所以你真的不需要事先检查潜在的问题,只需捕获它,然后按照你想要的方式处理它。
此函数检查空对象 {}
,空数组 []
,null
,undefined
和空字符串 ""
function isEmpty(val) {
//check for empty object {}, array []
if (val !== null && typeof val === 'object') {
if (Object.keys(obj).length === 0) {
return true;
}
}
//check for undefined, null and ""
else if (val == null || val === "") {
return true;
}
return false;
}
function validateAttrs(arg1, arg2, arg3,arg4){
var args = Object.values(arguments);
return (args.filter(x=> x===null || !x)).length<=0
}
console.log(validateAttrs('1',2, 3, 4));
console.log(validateAttrs('1',2, 3, null));
console.log(validateAttrs('1',undefined, 3, 4));
console.log(validateAttrs('1',2, '', 4));
console.log(validateAttrs('1',2, 3, null));
这包括空数组和空对象
null,undefined,' ',0,[ ],{ }
isEmpty = (value) => (!value || (typeof v === 'object' &&
Object.keys(value).length < 1));
对于我的情况,我尝试了if null,'',!variable,但它没有起作用。
请查看下面的代码以从HTML字段获取文本
var status=$(this).text(); //for example (for my case)
if(status == false)
{
status='novalue';
}
你可以随时使用loadash函数,例如_.isNil或_.isUndefined。它们非常容易使用。
(truthy statement) ? true : false;
。直接写成(truthy statement);
即可。 - David Baucumif (hungry) …
而不是if (hungry === true) …
。就像所有编码风格一样,这只是个人审美问题。更具体地说,对于 OP 提供的例子,他更冗长地表达了“如果它为真,则为真,如果不为真,则为假”,但如果它为真,则已经是真的。如果它为假,则已经是假的。这相当于说:“如果你饿了,那么你就饿了,如果不饿,那么你就不饿。” - David Baucum