我在验证函数中有两个字符串变量,它应该确保变量不会同时为null或空(不允许一个为null,另一个等于空)。
当前的IF语句非常复杂,因为我必须检查:
它是功能性的,但丑陋,不是“最佳实践”。如何简化?
if ((string1==null && string2==null) || (string1.length==0 && string2.length==0) || (string1==null && string2.length==0) || (string2==null && string1.length==0))
你可以使用一个函数来提高可读性,比如:
function isEmpty(param){
if(param==null || param.lenght==0)
return true;
else
return false;
}
var string1, string2;
//And you if becomes:
if(isEmpty(string1) || isEmpty(string2)){
//[...]
console.log('String1 & String2 are empty');
}
如果null
或为空,您可以先检查一个变量,然后将两个结果与AND连接起来。
if ((string1 === null || string1 === '') && (string2 === null || string2 === '')) {
// both null or empty
}
如果您只有其他真实值,则可以使用
if (!string1 && !string2) {
// both falsy
}
我认为最好的解决办法是按顺序检查这些条件。首先检查null
,然后检查字符串是否为空,要做到这一点,最好的方法是将字符串与空字符串进行比较,这样可以避免在
上使用
。。长度
>未定义
因此,使用
if(string1=='')
而不是编写if(string1.length==0)
。
解决方案:
然后,您可以简单地使用以下条件:
if (!string1 || !string2 || string1 === '' || string2 === ''){
//Your code here
}
说明:
如果两个字符串中的一个为
null
或empty
,则为true
,换句话说,如果四个条件中的任何一个为true
,则将进入if块。
null 它是功能性的,但丑陋,不是“最佳实践”。怎么简化呢?
好吧,我正在使用字典,例如: 然后我想做的基本上是说,如果“用户”(一个参数)的名称前面有“@”,那么将变量前缀分配为“@”,如果他们的名称前面有“~”,则将变量前缀分配为“~”,如果他们有“ 然后我想说,如果用户的名字前面有“%”,则将前缀变量设置为“%”,否则将其设置为“”(因为这些值只有两个键)。为此,我需要一个if语句,并将其与self进行比较。声音的价值。 分配前缀变量的当前代码 目前,
有可能做如下事情吗: 或者: 我知道用很多if-else语句也可以实现同样的目标,但如果它像上面那样工作,看起来会更干净。
问题内容: 我想知道上面的代码是否可用于检查变量是否为null或为空。 问题答案: 是的,该代码正是这样做的。 您还可以使用: 编辑: 使用添加的值信息,您需要: 一个值不能包含值。
问题内容: 说我有一大堆的是无论是变量或。我想在一个if语句中评估一组这些变量,以查看它们是否都像这样: 除非那行不通。我知道我可以这样做: 但这是非常丑陋的-特别是如果这些if语句将在我的代码中频繁出现。有什么方法可以使用更简洁的语法进行此评估(例如第一个示例)? 问题答案: 您永远不要使用(或)测试布尔变量。相反,要么写: 或使用(以及相关问题的表弟): 或使用Python的可传递比较:
我所说的“空if语句”是指这样的东西(注意分号): 我在考虑这个应用程序时遇到了麻烦。使用time循环,您可以这样做: 但对于if语句没有这样的应用。此外,Java编译器在遇到此类语句时不会发出错误或警告。这可能会导致大而无声的问题,尤其是对于冗长而复杂的语句: 我的问题是:为什么Java中允许这样做?更重要的是,我是否可以启用一个选项,以便在发生这种情况时引发警告? (之前有人问过关于C#的这个