最简单的方法来检查string是否为空或空
我有这个检查空string或空string的代码。 它正在testing。
eitherStringEmpty= (email, password) -> emailEmpty = not email? or email is '' passwordEmpty = not password? or password is '' eitherEmpty = emailEmpty || passwordEmpty test1 = eitherStringEmpty "A", "B" # expect false test2 = eitherStringEmpty "", "b" # expect true test3 = eitherStringEmpty "", "" # expect true alert "test1: #{test1} test2: #{test2} test3: #{test3}"
我想知道的是,如果有比not email? or email is ''
更好的方法not email? or email is ''
not email? or email is ''
。 我可以在一个调用CoffeeScript中的C# string.IsNullOrEmpty(arg)
吗? 我总是可以为它定义一个函数(就像我所做的那样),但是我想知道是否在我所缺less的语言中有某些东西。
对:
passwordNotEmpty = not not password
或更短:
passwordNotEmpty = !!password
这不完全等同,但是如果email
非空并且具有非零的.length
属性,则email?.length
将仅为真。 如果你not
这个值,结果应该像你想要的string和数组一样。
如果email
为null
或没有.length
,那么email?.length
将评估为null
,这是错误的。 如果它有一个.length
那么这个值将计算为它的长度,如果它是空的,这将是假的。
你的function可以被实现为:
eitherStringEmpty = (email, password) -> not (email?.length and password?.length)
这是“真实”派上用场的情况。 你甚至不需要为此定义一个函数:
test1 = not (email and password)
为什么它工作?
'0' // true '123abc' // true '' // false null // false undefined // false
unless email? and email console.log 'email is undefined, null or ""'
首先检查电子邮件是不是未定义的,不存在与存在的运算符,然后如果你知道它存在and email
部分将只返回false,如果电子邮件string是空的。
您可以使用coffeescript或=操作
s = '' s or= null
如果你需要检查内容是一个string,而不是null,而不是一个数组,使用一个简单的比较types:
if typeof email isnt "string"
这是一个jsfiddle演示一个非常简单的方法来做到这一点。
基本上你只要做到这一点就是javascript:
var email="oranste"; var password="i"; if(!(email && password)){ alert("One or both not set"); } else{ alert("Both set"); }
在coffescript:
email = "oranste" password = "i" unless email and password alert "One or both not set" else alert "Both set"
希望这可以帮助别人:)
如果事物存在,我认为问号是调用一个函数的最简单的方法。
例如
car = { tires: 4, color: 'blue' }
你想得到的颜色,但只有当汽车存在…
CoffeeScript的:
car?.color
转换为javascript:
if (car != null) { car.color; }
它被称为存在操作符http://coffeescript.org/documentation/docs/grammar.html#section-63
而不是接受的答案passwordNotEmpty = !!password
您可以使用passwordNotEmpty = !!password
passwordNotEmpty = if password then true else false
它给出了相同的结果(仅在语法上的区别)。
第一列是一个值,第二列是if value
的结果:
0 - false 5 - true 'string' - true '' - false [1, 2, 3] - true [] - true true - true false - false null - false undefined - false
基于这个关于检查variables是否具有truthy
值的答案 ,您只需要一行:
result = !email or !password
您可以在这个在线Coffeescript控制台上为自己尝试一下