javascript测试.length和.length>;0
我在对象的属性中有一些文本。我正在测试对象的属性是否包含要显示的文本;如果没有,则显示“-”,而不是一个空白。看起来这两者之间并没有区别:javascript测试.length和.length>;0,javascript,Javascript,我在对象的属性中有一些文本。我正在测试对象的属性是否包含要显示的文本;如果没有,则显示“-”,而不是一个空白。看起来这两者之间并没有区别: if (MyObject.SomeText && MyObject.SomeText.length) { ... } if (MyObject.SomeText && MyObject.SomeText.length > 0) { ... } 是否存在一种语法优于另一种语法的边缘情况 是否存在一种语法优于另一种语法的
if (MyObject.SomeText && MyObject.SomeText.length) { ... }
if (MyObject.SomeText && MyObject.SomeText.length > 0) { ... }
是否存在一种语法优于另一种语法的边缘情况
是否存在一种语法优于另一种语法的边缘情况
仅当MyObject.SomeText
或MyObject.SomeText.length
不是您期望的值时,才出现边缘情况–例如:
MyObject = {
SomeText = {
length: -42
// or length: true
}
};
不,它们是等效的,如果长度等于0,则其值为
false
(这是可能的,因为JS不是强类型的,在强类型语言中,长度不能转换为布尔值)。它们给出了相同的结果。顺便说一句,如果它的“文本”,那么
如果(MyObject.SomeText)
在javascript中足够了,那么数字只有在为0时才被认为是“错误的”。任何其他价值观都是“真实的”。因此,语句number!=0(比较,而不是标识)和!编号
完全相等
两个语句唯一不同的地方是如果length
不是正数。是一样的:
Boolean(MyObject.SomeText.length)
- 如果
MyObject.SomeText.length
,则返回true
!=0
- 如果
MyObject.SomeText.length
==0,则返回false
及
- 返回
true
如果MyObject.SomeText.length
>0
- 返回
false
如果MyObject.SomeText.length
0)
返回false
,因为MyObject.SomeText.length
0,
返回Boolean(MyObject.SomeText.length)
,因为true
!=0MyObject.SomeText.length
返回Boolean(MyObject.SomeText.length>0)
,因为true
>0MyObject.SomeText.length
只要
.length
的值在[0]范围内,∞)
,应该没问题。你为什么又问了一个非常类似的问题?他又问了一个问题:关于长度,你对长度着迷吗?有什么错吗?在调用之前,我首先测试属性中是否有文本。长度。我应该如何重写我的测试?如果有文本,那么一定有。长度,所以不需要检查同样,要清楚:<代码> '/COD>(空字符串)被认为是错误的,如NULL、UnDebug、0和FALSE等。对于这个新手问题,您必须是新的JavaScript。因为您有如此巨大的声誉。在JavaScript,每一个VAR都非常非常灵活,基本上没有类型,您给它什么值,它就变成了类型。“变成bool,值为false。我不喜欢JavaScript,有一段代码后会出现太多错误:(事实上,我正在构建一个非常依赖javascript的单页Web应用程序:到目前为止,它大约有13K的javascript。但我是一个刚刚开始从事科技的商业人士:2年前,我不知道类、json或SQL是关于什么的。所以我开始阅读5000页的计算机书籍,学习编程并创办一家公司。看看这个:我问长度的原因是我想确定我做得对。如果技术人员能够学习销售、金融和营销,就会有更多的初创企业诞生;反过来也是如此。不,数字!=0不等于!数字-它是布尔值的相反。
Boolean(MyObject.SomeText.length>0)