내가 사용하는 것이 좋습니다 모르는 :"2".toString() === 2.toString() 또는 "2"== 2?
var s = "2";
var i = 2;
if(s.toString() === i.toString()){
//do something
}
//OR
if(s == i){
//do something
}
덕분에 당신은 실제로 두 개의 물건을 비교하는
내가 사용하는 것이 좋습니다 모르는 :"2".toString() === 2.toString() 또는 "2"== 2?
var s = "2";
var i = 2;
if(s.toString() === i.toString()){
//do something
}
//OR
if(s == i){
//do something
}
덕분에 당신은 실제로 두 개의 물건을 비교하는
도움을 위해, 먼저, 당신은 문자열로 변수 값을 모두 캐스팅 및 비교, 그리고 다른 비교가 하나 잃게됩니다 즉 당신은 실제로 그 변수의 데이터 유형을 확인하지 않습니다. string
과 int
을 같은 값으로 비교하면 true를 반환합니다.
제게 따르면 ===
은 사용하고있는 데이터가 모두 손실 된 것으로 간주되기 때문에 값뿐만 아니라 데이터 형식도 비교할 수 있습니다.
데이터 유형에 대해 전혀 고려하지 않으면 ==
을 사용해도됩니다. 값을 string
으로 변환 할 필요가 없습니다. 첫 번째 예에서
어떤 이유로 당신이 공간이, 그것은 (심지어 == 포함) 허위 평가합니다 얻는 경우 : 개인적으로
var s = " 2"; // 2 with a sneaky space
var i = 2;
if(s.toString() === i.toString()){ // will be false
//do something
}
내가 ===를 사용하여 선호하지만, 내가 바꿀 것 값은 문자열 대신 정수로 변환됩니다.
var s = " 2"; // 2 with a sneaky space again
var i = 2;
if(Number(s) === Number(i)){ // will be true
//do something
}
두 번째 Number()는 필요하지 않지만 문자열이기도 한 데이터를 얻을 수 있습니다.
정확히 우리가 원하는 것을 수행하기 때문에 나는 첫 번째 접근 방식을 택할 것입니다. –
당신의 목표는 무엇입니까? –
나는 @Mr_Green에 동의한다. 첫 번째 접근법은 훨씬 명확하다. 자바 스크립트에는 규칙을 강제로 적용하는 규칙이있다. – simonzack