전투에 웹 프런트 엔드 항목 : 세부 JS 부가 연산자

면책 조항 :이 문서는 블로거 원본입니다, 추적 에 의해-SA의 CC 4.0 저작권 계약, 복제, 원본 소스 링크이 문을 첨부 해주세요.
이 링크 : https://blog.csdn.net/wewfdf/article/details/102691656

간략한 소개

자바 스크립트는 훌륭한 언어이다. 그래서 변수의 다른 유형의 연산자를 사용하여 동적 객체에 메서드 나 속성을 추가 할 변수의 유형을 변경하고 : 당신이 일을 좋아 다만 방법 : 나는 그것의 유연성을 좋아했다.

그러나, 동적으로 지불 개발자는 변환 연산자의 다른 유형을 처리하는 방법을 알고 있어야합니다 더하기 기호 (+), 등호 ( =====(! =와 ==)) 등, 불평등 기호, 많은 사업자가 자신의 처리 유형 변환.

추가 연산자

가장 일반적으로 사용 사업자 : +, 문자열 또는 디지털 합계 시리즈를위한이 연산자 :

문자열 연결 :

var result = "Hello, " + "World!";
// 字符串 + 字符串 = 字符串 (连接)
// "Hello, World!"

디지털 산술 합 :

var result = 10 + 5;
// 数字 + 数字 = 数字 (相加)
// 15

자바 스크립트 객체, 배열, 피연산자로 null의 경우, 또는 정의의 사용을 할 수 있습니다. 다음 일반 규칙은 변환을 발견하려고합니다.

변환 규칙

운영자의 변환 작업의 방법 유형에서 다음 식 자바 스크립트보기를 사용 :

  1. 적어도 하나의 피연산자가 오브젝트 인 경우는 원래의 값 (문자열, 숫자 또는 부울)로 변환한다;
  2. 적어도 하나는 문자열 유형 오퍼랜드 인 경우 변환 한 후, 두 번째 피연산자 문자열로 변환하고, 접속을 수행한다.
  3. 다른 경우에는, 두 개의 피연산자를 디지털로 변환하고, 또한 연산을 수행한다.

두 피연산자 기본 유형, 적어도 하나 개의 문자열 유형, 접속 동작이 실행되면 여부 오퍼레이터 검사하는 경우. 다른 경우는 디지털로 변환하고 함께 추구 할 수 있습니다.

원시 타입으로 객체 유형

원래 유형 개체 유형 변환

  • 오브젝트 유형이 날짜 인 경우에는 () 객체의 toString를 호출합니다;
  • valueOf ()가 기본 유형을 반환하는 경우 다른 경우에는, 그것은 개체의 된 valueOf () 메서드를 호출합니다;
  • 다른 경우 (valueOf ()가 존재하지 않거나 원래의 형태로 돌아 오지 않은 경우)에서, 대부분의 경우에이 변환, toString () 메서드를 호출합니다.

배열이 원래의 형식으로 변환하는 경우, 자바 스크립트는 예를 들어, 그 가입 ( '')를 사용하는 방법, [1,5,6]를 "1,5,6"이다. 원본 이미지 유형에 공통 자바 스크립트는 {} "[object Object]"를 반환합니다.

학습의 예

다음의 예는 간단하고 복잡한 변화 현장을 이해하는 데 도움이됩니다.

예 1 : 숫자 및 문자열

var result = 1 + "5"; // "15"

해상도 :

  1. 1+ "5"(두 번째 피연산자는 숫자 2가 "1"로되는 문자열 규칙이다)
  2. "1"+는 "5"(문자열 연결)
  3. "15"

두 번째 피연산자는 문자열, 문자열로 디지털 변환에서 먼저 피연산자하고 연결한다.

예 2 : 배열 및 디지털

var result = [1, 3, 5] + 1; //"1,3,51"

해상도 :

  1. [1,3 1,5] + 1 (사용 규칙 1 어레이 [1,3 1,5] 원래 값으로 변환되고, "1,3,5")
  2. "1,3,5"는 + 1 (사용 규칙은 숫자 1은 문자열 "1"로 변환됩니다)
  3. "1,3,5"+ "1"(문자열 연결)
  4. "1,3,51"

첫 번째 피연산자는, 그것이 원래의 스트링 값으로 변환되고 배열되는 문자열은 다음 조작으로 디지털 데이터로 변환하고 두 개의 스트링의 연결을 완료한다.

예 3 : 디지털 및 부울

var result = 10 + true; //11

해상도 :

  1. (10)은 참 (부울에 기초한 규칙 3은 진정한 디지털 1로 변환) +
  2. 10 + 1 (두 숫자 평가)
  3. (11)

어느 피연산자가 디지털로 문자열, 부울 값이기 때문에, 다음의 산술 가산을 행한다.

예 4 : 디지털 객체와

var result = 15 + {}; // "15[object Object]"

해상도 :

  1. "+ {15} '(피연산자는 제 2 물체 프리미티브 오브젝트 유형 문자열로 변환하는 애플리케이션 룰은"[개체 개체] ")
  2. + 15 "[개체 개체]"(디지털 캐릭터 (15)를 사용 규칙 2는 "15"로 변환된다)
  3. "15"+ "[개체 개체]"(문자열 연결)
  4. "15 개체 개체]"

valueOf () 메소드는 오브젝트 자체를 반환하기 때문에 문자열 값을 제 2 목표 피연산자, 그것이 toString () 메소드를 호출 원래 값이 아닌 문자열을 반환 번째 오퍼랜드의 문자열 지금, 따라서, 도면은 스트링의 마지막 두 실시 접속 문자열로 변환된다.

예 5 : 디지털 및 널 (null)

var result = 8 + null; // 8

해상도 :

  1. 8 + 널 (어느 피연산자가 문자열이기 때문에 널 디지털 0~3 규칙 기반)
  2. 8 + 0 (디지털 합계)
  3. 8

피연산자가 제목이나 캐릭터가 아니기 때문에, null를 디지털로 변환 한 다음 숫자를 계산한다.

실시 예 6 : NULL 문자열 및

var result = "queen" + null; // "queennull"

해상도 :

  1. "퀸"널 + (첫 번째 피연산자 문자열, 문자열 "NULL"로 번역 널 기본 규칙 2이므로)
  2. "여왕"+ "널 (null)"(문자열 연결)
  3. "queennull"

첫 번째 피연산자 문자열이기 때문에, 문자열로 변환하고, 문자열 연결줍니다.

실시 예 7 : 미정 번호

var result = 12 + undefined; // NaN

해상도 :

  1. 12 + 정의 (피연산자 개체 또는 문자열이 아니기 때문에, 규칙 기반 디지털 정의가 NaN 3)
  2. NaN이 12 + (디지털 합계)
  3. NaN의

피연산자 디지털 정의되지 않은 물체 나 문자열 아니므 : NaN이는 디지털 합계 값은 NaN이 동일하고, NaN이 위해를 찾는.

당신과 함께 학습 방법의 일부를 공유하고, 여섯 번째 년 프로그래밍, 전투 개발은 세부 사항에주의를 기울여야합니다. 767-273-102 가을 드레스. 제로 기반 프론트 엔드에서 시작하는 방법을 배울 수 있습니다. 프로그래밍 세계에서 어떻게 전임자 자랑스럽게 앞으로 볼 수 있습니다! 끊임없이 (경로, 상세한 프런트 엔드 프로젝트 전투 교육용 비디오 내용은 웹 프런트 엔드 시스템) 최신 튜토리얼과 학습 방법으로 업데이트, I는 웹 프런트 엔드를 배우고, 또는 자신의 능력을 업그레이드 할 작업, 또는 대학 학생뿐만 아니라, 작업 변경을 원했다, 작은 파트너 가입을 환영 공부입니다. 우리는 함께 걸어 나갈 것이다 끝의 앞쪽 끝

개요

당신은 분명히 있으며, toString () 또는 valueOf () 메서드를 정의하는 것하지 않는 잠재적 인 문제를 방지하려면, 더하기 연산자의 사용을 반대하지 않습니다. 예에서 볼 수 있듯이, 많은 더하기 연산자 특정 상황이 있습니다. 내가 행복 학습을 기원합니다, 정확한 변환 시나리오는 미래의 사고를 방지 할 수 있습니다 알고!

추천

출처blog.csdn.net/wewfdf/article/details/102691656