먼저, 먼저 몇 가지 질문을하겠습니다! 통일하기 위해 나는이 질문들을 혼합하지 않습니다. 인터뷰 질문에서, 나는 종종 이러한 질문을 혼합하여 더 혼란 스러울 것입니다. 데모에 더 편리하게 만들기 위해 여기에 모듈에 몇 가지 질문을 작성하여 읽을 수 있습니다!
연산자 문자열의 암시 적 변환
곱셈
Console.dir ( "--------------------------------------------- Console.dir (5*"5"); console.dir (5*"a"); Console.dir (5*nan); console.dir (5*null); Console.dir (5*정의되지 않은); Console.dir (5*5); console.dir("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------분할
Console.dir ( "----------------------"; Console.dir (5/"5"); Console.dir (5/"A"); Console.dir (5/nan); Console.dir (5/null); console.dir (null/5); Console.dir (5/undefined); Console.dir (5/5); Console.dir (5/0); Console.dir (0/5); Console.dir (0/0); Console.dir ( "----------------------"; Console.dir ( "-------------------------------------------------------------------------------------------
나머지를 가져 와서 모델을 찾으십시오
Console.dir ( "------------------------------------------------ Console.dir (16%"5"); Console.dir (5%"A"); Console.dir (5%NAN); Console.dir (5%null); console.dir (null%5); Console.dir (5%정의되지 않은); Console.dir (5%5); Console.dir (5%0); Console.dir (0%5); Console.dir (0%0); console.dir("----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------덧셈
Console.dir ( "--------------------------"; Console.dir (16+ "5"); console.dir (5+ "a"); Console.dir (5+NAN); Console.dir (5+null); Console.dir (5+undefined); Console.dir (5+5); console.dir ( "두 숫자의 합은"+5+5); console.dir ( "두 숫자의 합은"+(5+5)); console.dir("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------빼기
Console.dir ( "----------------------"; Console.dir (16- "5"); Console.dir (5- "A"); console.dir (5-nan); console.dir (5-null); Console.dir (5- 결점); Console.dir (5-5); Console.dir (5-true); console.dir(5-"true); console.dir(5-""); console.dir("The difference between two numbers is "+5-5); console.dir("The difference between two numbers is "+(5-5)); console.dir("------------------"); console.dir("---------------------"); console.dir("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------관계형 운영자
Console.dir ( "------------------"); Console.dir (16> "5"); Console.dir ( "16"> "5"); console.dir (5 < "a"); console.dir (5> = nan); console.dir (5 <nan); console.dir (nan> = nan); console.dir (5> = null); console.dir (5> = 정의되지 않은); Console.dir (5> = 5); console.dir (5> = true); console.dir (5> = "true"); console.dir (5> = ""); Console.dir ( "Brick"> "Alphabet"); Console.dir ( "Brick"> "Alphabet"); Console.dir ( "----------------------";
곱셈
Console.dir (5*"5"); // 25 console.dir (5*"a"); // nan console.dir (5*nan); // nan console.dir (5*null); 0 console.dir (5*undefined); // nan console.dir (5*5); // 25
곱셈의 암시 적 변환의 원리에 대해 이야기 해 봅시다.
1. 두 값이 모두 숫자 인 경우 곱셈 작업을 직접 수행하십시오. (나는 초등학교 수학과 마찬가지로 모든 사람이 할 수 있다고 생각하며 숫자의 상징에주의를 기울여야합니다). 제품 값이 ECMAScript의 숫자 표현 범위를 초과하면 무한대 (양의 무한대) 또는 -infinity (부정적인 무한대)를 반환합니다.
2. 숫자가 Nan이면 결과는 Nan입니다.
3. 무한대에 0이 곱하면 결과는 NAN입니다.
4. 한 연산자가 숫자이고 다른 연산자가 숫자 값이 아닌 경우 먼저 숫자 () 함수를 사용하여 변환하고 변환 된 값에 숫자를 곱하십시오. 변환 된 결과가 NAN이 나타나면 결과는 NAN입니다.
분할
console.dir (5/"5"); // 1 문자를 숫자로 변환하고 console.dir (5/"a"); // nan console.dir (5/nan); // nan console.dir (5/null); // 숫자 () 함수가있는 Infinity null 변환, 그리고 결과는 동일합니다. 0/5는 0 Console.dir (5/undefined); // nan undefined converts is number ()가있는 nan undefined converts이며, 결과는 nan console.dir (5/5); // 1 console.dir (5/0); // Infinity Console.dir (0/5); // 0 console.dir (0/0); 0 is nan is nan is nan입니다.
부서의 암시 적 전환 원칙에 대해 이야기 해 봅시다.
곱셈과 유사하게 0/0 결과는 NAN이라는 것입니다.
나머지를 가져 와서 모델을 찾으십시오
이 프로젝트에서 사용하는 가장 일반적인 것은 이상하고 짝수 숫자를 찾는 것입니다. 우리는 종종 균형을 계산하기 위해 2 인 숫자를 사용합니다. 결과가 0 인 경우 숫자는 짝수이고 결과가 1 인 경우 숫자는 홀수입니다.
위의 주제를 확인하십시오.
Console.dir (16%"5"); // 1 문자열을 5 ~ 5 ~ Number ()를 변환 한 다음 나머지 콘솔을 계산합니다 (5%"a"). // nan console.dir (5%nan); // nan console.dir (5%null); // NAN 변환 NULL을 통해 NULL을 숫자 ()로 변환 한 다음 5%0을 계산하면 결과는 nan console.dir (null%5)입니다. // 0 0%5 이상과 동일하면 결과는 0 Console.dir (5%정의되지 않은)입니다. // nan console.dir (5%5); // 0 console.dir (5%0); // nan console.dir (0%5); // 0 console.dir (0%0); // nanconsole.dir (Infinity%Infinity); // nanconsole.dir (5%Infinity); // 5 console.dir (Infinity%5); // 난
잔차의 암시 적 변환의 원리에 대해 이야기 해 봅시다.
곱셈처럼 특별한 것에 대해 이야기하겠습니다! 우리는 모두 초등학교에서 배운 배당과 분배기의 개념을 알고 있습니다.
1. 배당은 무한대이고 배당은 유한 한 가치이므로 결과는 NAN입니다.
2. 디바이저는 유한 값이고 제수는 0이면 결과는 NAN입니다.
3. Infinity%Infinity 결과는 NAN입니다
4. 배당금은 유한 한 가치이며 배당금은 무한 가치이며 결과는 제수입니다.
5. 분할 숫자는 0이고 결과는 0입니다
빼기
위의 예를 살펴보십시오!
console.dir (16- "5"); // 11 console.dir (5- "a"); // nan console.dir (5-nan); // nan console.dir (5-null); // 5 console.dir (5-undfined); // nan console.dir (5-5); // 0-true (5-true); // 4 console.dir (5- "true"); // nan console.dir (5-""); // 5 console.dir (5-infinity); //-Infinity console.dir (Infinity-Infinity); // nan console.dir ( "두 숫자의 차이는"+5-5); // nan console.dir ( "+(5-5 사이의 차이”); 숫자는 0입니다
뺄셈의 암시 적 변환의 원칙에 대해 이야기 해 봅시다.
위의 것과 마찬가지로, 나는 같은 것에 대해 이야기하지 않을 것입니다. 나는 독특한 뺄셈에 대해 이야기 할 것입니다.
1. 무한대 인식 결과는 NAN입니다
2. -Infinity -Infinity 결과는 -infinity입니다
3. 숫자 마이너스 무한대의 결과는 -Finity입니다.
4. 무한대-(-인피니티) 결과는 무한대입니다
5. 피연산자가 객체 인 경우 메소드의 객체 값이 호출됩니다. 결과가 Nan이면 결과는 Nan입니다. valueof 메소드가 없으면 toString () 메소드를 호출하고 결과 문자열을 숫자 값으로 변환하십시오.
관계형 운영자
관계형 운영자는 균일하게 참 또는 거짓을 반환합니다
Console.dir (16> "5"); // true console.dir ( "16"> "5"); // false console.dir (5 < "a"); // false console.dir (5> = nan); // false console.dir (5 <nan); // false console.dir (nan> = nan); // false console.dir (5> = 널); console.dir (5> = undefined); // false console.dir (5> = 5); // true console.dir (5> = true); // true console.dir (5> = undefined); // false console.dir (5> = 5); // true console.dir (5> = true); console.dir (5> = ""); // true console.dir ( "brick"> "alphabet"); // b의 문자열 인코딩 값은 66이고, a의 문자열 인코딩은 97입니다. 따라서 false console.dir ( "Brick"> "alphabet"); // true 문자 B는 A보다 큽니다.
관계형 운영자의 암시 적 전환 원칙에 대해 이야기 해 봅시다.
그것은 여전히 위와 동일합니다. 나는 같은 말을하지 않을 것입니다.
비교 된 두 숫자가 문자열이면 문자열에 해당하는 문자열 인코딩 된 값을 비교합니다.
추가 작업
내가 첨가 작업의 암시 적 변환이 추가 작업의 암시 적 변환이 이전의 변환과 다르기 때문이라고 결국 말한 이유는 이전 전환과 다르기 때문이다. 하나는 숫자 인 한 모든 이전 연산자 기호는 숫자 ()를 사용하여 기본적으로 숫자를 변환합니다. 추가 작업이 다릅니다. 추가 작업 중 하나가 문자열 인 한, 다른 하나는 문자열로 변환 된 다음 문자열 스 플라이 싱이 수행됩니다!
Console.dir (16+ "5"); // 156 console.dir (5+ "a"); // 5a console.dir (5+nan); // nan console.dir (5+null); // 5 console.dir ( '5'+null); // 5null console.dir (5+undefined); // nan console.dir (null+unull+nan+nan); // nan console.dir (5+5); // 10 console.dir ( "두 숫자의 합은"+5+5); // 두 숫자의 합계는 55 console.dir입니다 ( "두 숫자의 합은"+(5+5)); // 두 숫자의 합계는 10입니다.
추가 연산자의 암시 적 변환 원칙에 대해 이야기 해 봅시다.
1. 하나는 문자열이고 다른 하나는 스 플라이 싱을 위해 문자열로 변환됩니다. 하나가 문자열이고 다른 하나가 null 또는 정의되지 않은 경우, 추가, null 또는 null 또는 undefined는 string () 메소드를 호출하여 문자열 "null"또는 "undefined"를 얻은 다음 스 플라이싱합니다.
2. NULL 또는 정의되지 않은 숫자가 추가되면 NULL 또는 UNDEFINED가 숫자 ()로 변환 된 다음 추가됩니다.
3. 나머지 원칙은 다른 원칙과 비슷하므로 많이 말하지 않을 것입니다.
Biequal 암시 적 변환
다음 코드를 한 번 실행하면 자연스럽게 이해할 것이라고 생각합니다 ~
var a; console.dir (0 == false); // trueconsole.dir (1 == true); // trueconsole.dir (2 == {valueof : function () {return 2}}); // trueconsole.dir (a == nan); // falseconsole.dir (nan == nan); // falseconsole.dir (// falseconsole.dir. undefined); // falseconsole.dir (1 == undefined); // falseconsole.dir (2 == {tostring : function () {return 2}}); // trueconsole.dir (undefined == null); // trueconsole.dir (null == 1); // falseconsole.dir (valseconsole.dir) tostring : function () {return 1}, valueof : function () {return []}} == 1); // trueconsole.dir (1 == "1"); // trueconsole.dir (1 === "1"); // false