let bool: boolean = false;
let i = 0;
this.comparisons[++i] = " init bool " + " => " + bool;
bool = false;
if ("a" == "a") { bool = true };
this.comparisons[++i] = ' "a" == "a" ' + " => " + bool;
bool = false;
if ("a" == "b") { bool = true };
this.comparisons[++i] = ' "a" == "b" ' + " => " + bool;
bool = false;
if ("a" == "A") { bool = true };
this.comparisons[++i] = ' "a" == "A" ' + " => " + bool;
bool = false;
if ("a".toLowerCase == "A".toLowerCase) { bool = true };
this.comparisons[++i] = ' "a".toLowerCase == "A".toLowerCase ' + " => " + bool;
bool = false;
if ("a".toLowerCase == "B".toLowerCase) { bool = true };
this.comparisons[++i] = ' "a".toLowerCase == "B".toLowerCase ' + " => " + bool;
并打印:
init bool => false
"a" == "a" => true
"a" == "b" => false
"a" == "A" => false
"a".toLowerCase == "A".toLowerCase => true
"a".toLowerCase == "B".toLowerCase => true
为什么最后一个表达式评估为true?
"" ==" b"应该像第三个陈述一样评估为假。
答案 0 :(得分:2)
要调用方法,必须使用括号()
,即使没有参数传递给方法:
bool = false;
if ("a".toLowerCase() == "B".toLowerCase()) { bool = true };
或者简单地说:
bool = ("a".toLowerCase() == "B".toLowerCase());
如果没有括号,"a".toLowerCase
只是对String.toLowerCase
方法本身的引用。比较的结果是true
,因为它比较了两种方法并发现它们确实是相同的方法。