간략한 소개
자바 스크립트는 훌륭한 언어이다. 그래서 변수의 다른 유형의 연산자를 사용하여 동적 객체에 메서드 나 속성을 추가 할 변수의 유형을 변경하고 : 당신이 일을 좋아 다만 방법 : 나는 그것의 유연성을 좋아했다.
그러나, 동적으로 지불 개발자는 변환 연산자의 다른 유형을 처리하는 방법을 알고 있어야합니다 더하기 기호 (+), 등호 ( ==
및 ===
(! =와 ==)) 등, 불평등 기호, 많은 사업자가 자신의 처리 유형 변환.
추가 연산자
가장 일반적으로 사용 사업자 : +, 문자열 또는 디지털 합계 시리즈를위한이 연산자 :
문자열 연결 :
var result = "Hello, " + "World!";
// 字符串 + 字符串 = 字符串 (连接)
// "Hello, World!"
디지털 산술 합 :
var result = 10 + 5;
// 数字 + 数字 = 数字 (相加)
// 15
자바 스크립트 객체, 배열, 피연산자로 null의 경우, 또는 정의의 사용을 할 수 있습니다. 다음 일반 규칙은 변환을 발견하려고합니다.
변환 규칙
운영자의 변환 작업의 방법 유형에서 다음 식 자바 스크립트보기를 사용 :
- 적어도 하나의 피연산자가 오브젝트 인 경우는 원래의 값 (문자열, 숫자 또는 부울)로 변환한다;
- 적어도 하나는 문자열 유형 오퍼랜드 인 경우 변환 한 후, 두 번째 피연산자 문자열로 변환하고, 접속을 수행한다.
- 다른 경우에는, 두 개의 피연산자를 디지털로 변환하고, 또한 연산을 수행한다.
두 피연산자 기본 유형, 적어도 하나 개의 문자열 유형, 접속 동작이 실행되면 여부 오퍼레이터 검사하는 경우. 다른 경우는 디지털로 변환하고 함께 추구 할 수 있습니다.
원시 타입으로 객체 유형
원래 유형 개체 유형 변환
- 오브젝트 유형이 날짜 인 경우에는 () 객체의 toString를 호출합니다;
- valueOf ()가 기본 유형을 반환하는 경우 다른 경우에는, 그것은 개체의 된 valueOf () 메서드를 호출합니다;
- 다른 경우 (valueOf ()가 존재하지 않거나 원래의 형태로 돌아 오지 않은 경우)에서, 대부분의 경우에이 변환, toString () 메서드를 호출합니다.
배열이 원래의 형식으로 변환하는 경우, 자바 스크립트는 예를 들어, 그 가입 ( '')를 사용하는 방법, [1,5,6]를 "1,5,6"이다. 원본 이미지 유형에 공통 자바 스크립트는 {} "[object Object]"를 반환합니다.
학습의 예
다음의 예는 간단하고 복잡한 변화 현장을 이해하는 데 도움이됩니다.
예 1 : 숫자 및 문자열
var result = 1 + "5"; // "15"
해상도 :
- 1+ "5"(두 번째 피연산자는 숫자 2가 "1"로되는 문자열 규칙이다)
- "1"+는 "5"(문자열 연결)
- "15"
두 번째 피연산자는 문자열, 문자열로 디지털 변환에서 먼저 피연산자하고 연결한다.
예 2 : 배열 및 디지털
var result = [1, 3, 5] + 1; //"1,3,51"
해상도 :
- [1,3 1,5] + 1 (사용 규칙 1 어레이 [1,3 1,5] 원래 값으로 변환되고, "1,3,5")
- "1,3,5"는 + 1 (사용 규칙은 숫자 1은 문자열 "1"로 변환됩니다)
- "1,3,5"+ "1"(문자열 연결)
- "1,3,51"
첫 번째 피연산자는, 그것이 원래의 스트링 값으로 변환되고 배열되는 문자열은 다음 조작으로 디지털 데이터로 변환하고 두 개의 스트링의 연결을 완료한다.
예 3 : 디지털 및 부울
var result = 10 + true; //11
해상도 :
- (10)은 참 (부울에 기초한 규칙 3은 진정한 디지털 1로 변환) +
- 10 + 1 (두 숫자 평가)
- (11)
어느 피연산자가 디지털로 문자열, 부울 값이기 때문에, 다음의 산술 가산을 행한다.
예 4 : 디지털 객체와
var result = 15 + {}; // "15[object Object]"
해상도 :
- "+ {15} '(피연산자는 제 2 물체 프리미티브 오브젝트 유형 문자열로 변환하는 애플리케이션 룰은"[개체 개체] ")
- + 15 "[개체 개체]"(디지털 캐릭터 (15)를 사용 규칙 2는 "15"로 변환된다)
- "15"+ "[개체 개체]"(문자열 연결)
- "15 개체 개체]"
valueOf () 메소드는 오브젝트 자체를 반환하기 때문에 문자열 값을 제 2 목표 피연산자, 그것이 toString () 메소드를 호출 원래 값이 아닌 문자열을 반환 번째 오퍼랜드의 문자열 지금, 따라서, 도면은 스트링의 마지막 두 실시 접속 문자열로 변환된다.
예 5 : 디지털 및 널 (null)
var result = 8 + null; // 8
해상도 :
- 8 + 널 (어느 피연산자가 문자열이기 때문에 널 디지털 0~3 규칙 기반)
- 8 + 0 (디지털 합계)
- 8
피연산자가 제목이나 캐릭터가 아니기 때문에, null를 디지털로 변환 한 다음 숫자를 계산한다.
실시 예 6 : NULL 문자열 및
var result = "queen" + null; // "queennull"
해상도 :
- "퀸"널 + (첫 번째 피연산자 문자열, 문자열 "NULL"로 번역 널 기본 규칙 2이므로)
- "여왕"+ "널 (null)"(문자열 연결)
- "queennull"
첫 번째 피연산자 문자열이기 때문에, 문자열로 변환하고, 문자열 연결줍니다.
실시 예 7 : 미정 번호
var result = 12 + undefined; // NaN
해상도 :
- 12 + 정의 (피연산자 개체 또는 문자열이 아니기 때문에, 규칙 기반 디지털 정의가 NaN 3)
- NaN이 12 + (디지털 합계)
- NaN의
피연산자 디지털 정의되지 않은 물체 나 문자열 아니므 : NaN이는 디지털 합계 값은 NaN이 동일하고, NaN이 위해를 찾는.
당신과 함께 학습 방법의 일부를 공유하고, 여섯 번째 년 프로그래밍, 전투 개발은 세부 사항에주의를 기울여야합니다. 767-273-102 가을 드레스. 제로 기반 프론트 엔드에서 시작하는 방법을 배울 수 있습니다. 프로그래밍 세계에서 어떻게 전임자 자랑스럽게 앞으로 볼 수 있습니다! 끊임없이 (경로, 상세한 프런트 엔드 프로젝트 전투 교육용 비디오 내용은 웹 프런트 엔드 시스템) 최신 튜토리얼과 학습 방법으로 업데이트, I는 웹 프런트 엔드를 배우고, 또는 자신의 능력을 업그레이드 할 작업, 또는 대학 학생뿐만 아니라, 작업 변경을 원했다, 작은 파트너 가입을 환영 공부입니다. 우리는 함께 걸어 나갈 것이다 끝의 앞쪽 끝
개요
당신은 분명히 있으며, toString () 또는 valueOf () 메서드를 정의하는 것하지 않는 잠재적 인 문제를 방지하려면, 더하기 연산자의 사용을 반대하지 않습니다. 예에서 볼 수 있듯이, 많은 더하기 연산자 특정 상황이 있습니다. 내가 행복 학습을 기원합니다, 정확한 변환 시나리오는 미래의 사고를 방지 할 수 있습니다 알고!