Javascript TRUE未定义或引号
我有一个包含的XML文件
123 FALSE TRUE
以下代码仅在我在引号内包装TRUE时才有效,例如(service == "TRUE")
var service = tis.find("service").text(); if(service === TRUE){ var service_tag = 'Service' } else { var service_tag = ''; }
如果没有引号,javascript将尝试将TRUE
解释为值/表达式。 javascript中没有本地定义的值TRUE
。 这是true
但javascript是区分大小写的,所以它不会将TRUE
绑定为true
。
从text()
返回的值是一个string
原语。 写"TRUE"
会返回string
"TRUE"
,它会与值service
成功比较
JavaScript布尔值true
和false
是小写的。
将服务设置为等于此,因此JavaScript将能够解释您的值:
var service = tis.find("service").text().toLowerCase();
因为tripe等于也检查类型,而TRUE它是一个标识符“TRUE”是一个值
// this will work if(service === "TRUE"){ var service_tag = 'Service' } else { var service_tag = ''; }
JavaScript中==和===之间的区别
这是预料之中的。
tis.find("service").text();
返回一个字符串,而不是布尔值,而true
值的JavaScript布尔值为true
(区分大小写,就像语言中的其他所有内容一样)。
var service = tis.find("service").text();
这将返回一个字符串“TRUE”。 由于===也检查类型,因此它总是返回false。
TRUE
指的是一个名为TRUE
的变量,它不存在,因此您会收到错误。 "TRUE"
是包含字符TRUE
的字符串。 您的变量service
将包含一个字符串,因此第二个是您想要的。