끈과 숫자 부울
JavaScript 유형은 할당에 따라 해당 유형으로 변환됩니다.
var str = ""; alert (typeof (str)); // stringstr =; alert (typeof (str)); // 번호 바가 sum = str +; //+프로그램 두 숫자를 추가하여 알림 (sum); //
이것은 더 분명하며 값은 한눈에 계산할 수 있습니다. 그러나 다음 변환을 참조하십시오
var sum = "" + ""; alert (typeof (sum)); // stringalert (sum); // var sum = "" +; alert (typeof (sum)); // StringAlert (sum); // var sum = + ""; alert (typeof (sum)); // stringalert (typeof (sum)); // var div = ""/""; Alert (typeof (area)); // numberalert (typeof (sub)); // var sub = "" - ""; alert (typeof (sub)); // numberalert (sub); // var div = ""/""; alert (typeof (area)); // numberalert (typeof (div)); // numberalert (div); //.
숫자 유형과 문자열 유형 "+"인 경우 숫자는 String으로 직접 변환됩니다.
위의 "+"는 매우 특별합니다. 경우 -, *, /; 그렇다면 결국 어떤 유형이 변환됩니까?
var area = "" * "a"; alert (typeof (area)); // numberalert (area); // nanvar sub = "a" - ""; Alert (typeof (sub)); // nansub = "a" -; alert (sub)); // nansub = "a" -; alert (sub); // anvar = ""); (div)); // nandiv = "a"/; alert (typeof (div)); // nan
위의 -, *, /와 같이, 산술은 숫자입니다. 문자열과 숫자는 계산을 수행 할 수 없으므로 값은 NAN입니다. 유형 번호.
var a = true; alert (typeof (a)); // booleanvar b = "true"; var ab = a + b; alert (typeof (ab)); // stringalert (ab); // truetruealert (a == b); // false
부울과 문자열, 부울 유형은 자동으로 문자열 "true"로 변환되지만 A는 왜 B와 같지 않습니다.
이 예를 살펴 보겠습니다.
var c = ""; alert (typeof (c)); // stringvar d =; alert (typeof (d)); // numberalert (c == d); // true
전환 원리는 여기에 제공됩니다 : (참조)
1. 피연산자가 부울 인 경우 평등을 비교하기 전에 숫자 값으로 변환합니다.
2. 하나의 피연산자가 문자열이고 다른 연산자가 숫자 값 인 경우, 문자열은 평등을 비교하기 전에 숫자 값으로 변환됩니다.
3. 하나의 피연산자가 물체이고 다른 피연산자가 아닌 경우, 객체의 () 메소드가 호출되고 얻어진 기본 유형 값은 이전 규칙에 따라 비교됩니다.
그런 다음 현과 부울 유형을 비교할 때 다음과 같습니다.
이 변환은 다음과 같습니다. 부울 진정한 먼저 1 위로 변환 한 다음 문자열 "1"으로 변환 한 다음 비교합니다. 결과는 거짓이어야합니다.
널 및 문자열 번호 부울 undefined
var a = null; alert (typeof (a)); // objectvar b = "hello"; var ab = a + b; alert (typeof (ab)); // stringalert (ab); // nullhellovar c =; var ac = a * c; alert (typeof (ac)); // numberalert (ac); // if (a) // false {} else {alert ( "false");} var u; alert (a == u); //진실주어진 예에서 우리는 다음을 볼 수 있습니다.
NULL은 String의 문자열 "null"으로 자동 변환되며, 숫자 0을 나타내며, 이는 논리적 판단에서 False와 동일하며 값이 표현 될 때 정의되지 않은 것과 동일합니다. == == = 대신에 참고하십시오.
== 비교를 비교할 때 비교 유형을 변환하지만 ==로 인해 변수 유형이 변경되지 않습니다.