모든 사용자 입력 값을 먼저 대문자(또는 소문자)로 변환한 후 비교합니다.
var name = document.form1.txtUserName.value.toLowerCase(); if(name == "urname") { // statements go here. }
JavaScript에는 두 개의 항등 연산자가 있습니다. 하나는 완전히 역호환되는 표준 "=="입니다. 두 피연산자 유형이 일치하지 않으면 어느 시점에서 자동으로 피연산자에 대한 유형 변환을 수행합니다.
var strA = "i love you!"; var strB = new String("i love you!");
이 두 변수는 동일한 문자 시퀀스를 포함하지만 데이터 유형이 다릅니다. 전자는 문자열이고 후자는 객체입니다. "==" 연산자를 사용할 때 JavaScript는 두 변수가 동일한지 여부를 감지하기 위해 다양한 평가를 시도합니다. 어떤 경우에는 동일합니다. 따라서 다음 표현식은 true로 평가됩니다. strA == strB.
두 번째 연산자는 "엄격한" "==="입니다. 이는 평가할 때 관대하지 않으며 유형 변환을 수행하지 않습니다. 따라서 strA === strB 표현식은 두 변수가 모두 동일한 값을 보유하더라도 false로 평가됩니다.
때로는 코드 논리에 따라 두 값이 동일하지 않은지 확인해야 하는 경우가 있습니다. 여기에는 "!=" 및 strict "!=="의 관계가 "==" 및 "와 유사합니다. ===".
토론:
"==" 및 "!="는 평가할 때 일치하는 값을 찾기 위해 최선을 다하지만 작업을 수행하는 데 "도움"을 주기 위해 비교하기 전에 명시적인 유형 변환을 수행하는 것이 좋습니다. 예를 들어, 사용자의 입력 값(문자열)이 숫자와 같은지 확인하려는 경우 "=="를 사용하여 유형 변환을 완료할 수 있습니다.
if(document.form1.txtAge.value == someNumericVar) { ... }
미리 변환할 수도 있습니다:
if(parseInt(document.form1.txtAge.value) == someNumericVar) { ... }
강력한 유형의 프로그래밍 언어(예: C#, Java 등)에 더 익숙하다면 여기에서 습관(유형 변환)을 계속하면 프로그램의 가독성도 향상됩니다.
주의해야 할 것이 하나 있는데, 바로 컴퓨터의 지역 설정입니다. 문자열을 "<" 및 ">"로 비교하면 JavaScript는 이를 유니코드로 비교하지만 분명히 웹을 탐색하는 사람들은 텍스트를 유니코드로 읽지 않습니다. 예를 들어 스페인어에서는 전통적인 정렬에 따르면 "ch "는 "c"와 "d" 사이의 문자로 정렬됩니다. localeCompare()는 기본 로케일의 문자 조합을 사용하는 방법을 제공합니다.
var strings; // 要排序的字符串数组,假设已经得到初始化 strings.sort(function(a,b) { return a.localeCompare(b) }); // 调用sort()方法进行排序