Javascript 字符串上的速记(类型不同)真/假比较是一种良好的做法吗?
速记(类型不同)真/假比较是字符串的良好编码实践吗 例如:Javascript 字符串上的速记(类型不同)真/假比较是一种良好的做法吗?,javascript,performance,types,casting,type-conversion,Javascript,Performance,Types,Casting,Type Conversion,速记(类型不同)真/假比较是字符串的良好编码实践吗 例如: var is_this_true = "Something in here, so not empty."; if (is_this_true) {} 此外,如果有,与严格比较相比,性能如何。 例如: 第一个示例是否必须进行松散比较(即,与==)如果(x)检查x是否真实–除了0、'、false、null、NaN或未定义的之外的任何值 无论x是布尔值还是其他值,这都是相同的方法,与强制(“松散”)相等无关。空字符串始终为false,如果
var is_this_true = "Something in here, so not empty.";
if (is_this_true) {}
此外,如果有,与严格比较相比,性能如何。例如:
第一个示例是否必须进行松散比较(即,与==)如果(x)检查
x
是否真实–除了0
、'
、false
、null
、NaN
或未定义的之外的任何值
无论x
是布尔值还是其他值,这都是相同的方法,与强制(“松散”)相等无关。空字符串始终为false,如果使用==comparison,则还会出现以下值:false、、、、、、、、0、null、未定义。如果进行严格比较,这将永远不起作用。类型不一样。如果希望更明确,可能需要检查.length
property@CrazyTrain:如果null
@SLaks:是的,我只是在解决速记(类型不同)评估的直接问题。换句话说,假设它是一个字符串,传递它以作为布尔值计算。因此,给定一个字符串,可以通过比较其.length
.Yes显式表示。这是我最关心的问题。我知道那里必须有一个类型转换,所以尽管我知道这是一个公认的做法-这是否使它成为一个好的编码做法?这被认为是一个好的做法,因为人们认为松散的键入是一个好的语言功能。抱歉)只是为了完整的列表)如果您使用=
比较,这些值并非都被认为是相同的false
。如果是,那么null==0
将是true
@CrazyTrain:你是对的;他把虚假与松散的平等混为一谈。
var is_this_true = true;
if (is_this_true === true) {}