während neugierig (und kein JS Hintergrund) Ich fange an, in Typescript tauchen und konfrontiert eine Mauer. Ich möchte zwei Strings vergleichen und um das Leben leichter zu machen, werden sie zuerst auf Kleinbuchstaben ausgerichtet. Dies ist der Code:Typescript String Vergleich Oddity mit String.toLowerCase
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;
und er druckt:
init bool => false
"a" == "a" => true
"a" == "b" => false
"a" == "A" => false
"a".toLowerCase == "A".toLowerCase => true
"a".toLowerCase == "B".toLowerCase => true
Warum der letzte Ausdruck bewertet, um wahr?
"a" == "b" sollte wie die dritte Aussage zu false auswerten.
gut, schnell gewinnen, danke! :) –
Ein weiterer Hinweis für zukünftige Leser: Wenn Sie in Visual Studio Code programmieren, achten Sie auf die automatische Vervollständigung, da ** ** nicht ** die erforderliche '()' ab 2016-04-20 Version 1.0.0 hinzugefügt wird –