JavaScript 기본 개념 - 각종 연산 자 상세 해석 중 하나 인 메타 연산 자 (더하기, 감소) 변환 규칙, 비트 연산 자, 불 연산 자 상세 해석

5920 단어 JavaScript
연산 자: 연산 자, 비트 연산 자, 관계 연산 자 등 을 포함 하여 데이터 값 을 조작 하 는 데 사 용 됩 니 다.
일원 조작 부호: 데이터 값 만 조작 할 수 있 습 니 다.
  • 체감 연산 자: +, - 선행 작업 과 사후 작업 으로 나 뉜 다.선행 조작: 먼저 자체 증가 자체 감소 작업 을 하여 수치 연산 을 진행 합 니 다.
  • 	var age = 18;
    	var age1 = ++age;	//age1 = 19,age = 19
    	var age2 = --age;	//age2 = 18,age = 18;
    

    후 치 조작: 먼저 수치 연산 을 한 다음 에 스스로 증가 하거나 스스로 감소 합 니 다.
    	var age = 18;
    	var age1 = age++;	//age1 = 18,age = 19;
    	var age2 = age--;	//age2 = 19;age = 18
    

    자체 증가 와 자체 감소 작업 은 정수 뿐만 아니 라 문자열, 불 값, 부동 소수점 수치 와 대상 에 도 적합 하 다.자체 증가 자체 감소 작업 을 사용 할 때 다음 과 같은 전환 규칙 을 따른다.
  • 유효한 숫자 문 자 를 포함 하 는 문자열: 먼저 숫자 값 으로 변환 하고 자감 합 니 다.문자열 변수 - > 수치 변수.
  • 유효한 숫자 문 자 를 포함 하지 않 는 문자열: NaN 으로 변환 합 니 다.문자열 변수 - > 수치 변수.
  • 불 값 false 를 사용 하여 0 으로 전환 하고 true 는 1 로 전환 합 니 다.불 값 - > 수치 변수.
  • 응용 부동 소수점 수치: 직접 증가 자체 감소
  • 응용 대상: 대상 의 value of 방법 을 먼저 호출 하여 조작 할 수 있 는 값 을 얻 은 다음 에 앞의 규칙 을 적용 합 니 다.


  • 2. 1 원 더하기 1 원 빼 기 연산 자
    수치 데 이 터 는 수학 과 완전히 같다.비수 치 데이터 에 대해 서 는 일정한 변환 규칙 을 따른다.규칙 은 다음 과 같 습 니 다.
  • 유효한 숫자 를 포함 하 는 문자열 을 수치 로 변환
  • 유효한 숫자 를 포함 하지 않 은 문자열 을 NaN
  • 으로 변환 합 니 다.
  • 불 값 false 0, true 1
  • 로 전환
  • 대상 은 valueof () 방법 을 사용 하여 조작 가능 한 값 을 응용 앞의 변환 규칙 에서 얻 을 수 있 습 니 다.

  • 3. 비트 연산 자
      메모리 에 표 시 된 수치의 위치 에 따라 수 치 를 조작 하고 2 진법 으로 표시 하 며 2 진법 의 변환 규칙 을 따른다.기호 가 있 는 정수 에 대해 32 비트 중의 31 위 는 정수 의 값 을 나타 내 는 데 쓰 인 다.32 위 는 수 치 를 나타 내 는 기호: 0 은 정 수 를 나타 내 고 1 은 마이너스 정 수 를 나타 낸다.사용 하지 않 은 비트 컴퓨터 를 0 으로 채 웁 니 다.『 8195 』 음 수 는 이 진 패 치 방식 으로 저 장 됩 니 다.계산 은 다음 과 같다.
  • 음수 절대 치 를 구 하 는 바 이 너 리 코드
  • 2 진법 의 보충 코드
  • 바 이 너 리 를 + 1.
  • (1) 비트 비 (NOT): 기호 ~, 1 을 0, 0 으로 1 로 변경
    	var num1 = 9;	
    	var num2 = ~num1; //     0110
    

    (2) 비트 와 (AND): 기호 &, 두 개의 조작 수가 있 습 니 다. 두 개의 수치의 바 이 너 리 코드 를 정렬 합 니 다. 만약 에 둘 다 1 이면 결 과 는 1 입 니 다. 그렇지 않 으 면 모두 0 입 니 다.
    	var num1 =  25 & 3;
    	alert(num1)
    

    (3) 비트 또는 (OR): 기호 |, 두 개의 조작 수가 있 습 니 다. 두 개의 수치의 바 이 너 리 코드 를 정렬 합 니 다. 만약 에 둘 중 하나 가 1 이면 결 과 는 1 이 고 그렇지 않 으 면 0 입 니 다.
      var num1 = 9 | 3;
      alert(num1);
    

    (4) 비트 차이 또는 (XOR): 기호 ^, 두 개의 조작 수가 있 습 니 다. 두 개의 수치의 바 이 너 리 코드 를 정렬 합 니 다. 만약 에 둘 중 하나 만 1 이면 결 과 는 1 이 고 그렇지 않 으 면 0 입 니 다.
      var num1 = 25^3
      alert(num1);
    

    (5) 왼쪽으로 이동, 기호 <, 수치의 모든 위 치 를 왼쪽으로 이동 하여 지정 한 위 치 를 왼쪽으로 이동 하고, 왼쪽으로 이동 한 후 오른쪽 에 비 어 있 는 위 치 를 0 으로 보충 합 니 다.
     var num1 =  2;
     var newNum = num<<5;		// newNum = 64;2 5  
    

    왼쪽 이동 은 조작 수의 기호 위치 에 영향 을 주지 않 습 니 다. 2 왼쪽 이동 5 자리, 결과 64, - 2 왼쪽 이동 5 자리, 결과 - 64. (6) 기호 가 있 는 오른쪽 이동, 기호 > > 는 수치의 따라서 위 치 를 오른쪽으로 이동 시 키 고 오른쪽 이동 후 왼쪽 에 비 어 있 는 위 치 를 1 로 보충 하지만 기호 위 치 는 보류 합 니 다. 즉, 양음 번 호 를 유지 합 니 다.
      var num1 =  64;
      var newNum = num>>5;		// newNum = 2;64 -5  
    

    (7) 기호 가 없 는 오른쪽으로 이동, 기호 > > >, 수치 가 있 기 때문에 32 비트 를 오른쪽으로 이동 합 니 다.* 8195: 정수 에 대해 기호 가 없 는 오른쪽 이동 은 기호 가 있 는 오른쪽 이동 결과 와 같 습 니 다. 8195 ° 마이너스 에 대해 기호 가 없 는 오른쪽 이동 은 0 으로 빈 자 리 를 채 우 는 것 이지 기호 가 있 는 오른쪽 이동 처럼 기호 가 있 는 값 으로 빈 자 리 를 채 우 는 것 이 아 닙 니 다.기호 가 없 는 오른쪽 이동 동작 은 음수 의 바 이 너 리 코드 를 양수 의 바 이 너 리 코드 로 하고 절대 값 의 바 이 너 리 패 치 형식 으로 표시 하면 기호 가 없 는 오른쪽 이동 후의 결과 가 매우 크다.
    	var num1 =  -64;		//      11111111111111111111111111000000
    	var newNum = num>>>5;		
    	// newNum = 134217726 ,     00000111111111111111111111000000
    

    4 불 연산 자
    (1) 논리 비: 기호!,js 의 모든 값 에 사용 할 수 있 습 니 다. 결 과 는 불 값 을 되 돌려 줍 니 다. 먼저 연산 자 를 불 값 으로 바 꾸 고 다음 과 같은 규칙 을 따 릅 니 다.
  • 조작 수 를 대상 으로 false
  • 를 되 돌려 줍 니 다.
  • 작업 수 는 빈 문자열 입 니 다. true
  • 를 되 돌려 줍 니 다.
  • 작업 수 비 어 있 는 문자열, false
  • 를 되 돌려 줍 니 다.
  • 조작 수 는 수치 0 이 고 true
  • 로 돌아 갑 니 다.
  • 조작 수 는 임 의 비 0 수치 (Infinity, - infinity 포함) 이 고 false
  • 를 되 돌려 줍 니 다.
  • 조작 수 는 null 이 고 true
  • 로 돌아 갑 니 다.
  • 조작 수 는 NaN 이 고 true
  • 로 돌아 갑 니 다.
  • 조작 수 는 undefined 이 고 true
  • 로 돌아 갑 니 다.
    두 번 의 응용 으로 대응 하 는 불 값 을 얻 을 수 있다.var s = !!false 결 과 는 false 입 니 다.
    (2) 논리 와: 기호 & &, 두 개의 조작 수가 있 는데 둘 다 true 이 고 결 과 는 true 이 며 그렇지 않 으 면 false 이다.조작 수 는 모든 값 일 수 있 습 니 다. 반환 값 은 다음 과 같은 규칙 을 따 릅 니 다.
  • 첫 번 째 조작 수 를 대상 으로 두 번 째 조작 수
  • 를 되 돌려 줍 니 다.
  • 두 번 째 조작 수 를 대상 으로 하면 첫 번 째 조작 수의 값 을 구 하 는 결과 가 true 인 경우 에 만 이 대상 을 되 돌려 줍 니 다
  • 두 조작 수 를 모두 대상 으로 하면 두 번 째 조작 수
  • 를 되 돌려 준다.
  • 첫 번 째 조작 수 는 null 이 고 null
  • 로 돌아 갑 니 다.
  • 첫 번 째 조작 수 는 NaN 이 고 NaN
  • 으로 되 돌아 갑 니 다.
  • 첫 번 째 조작 수 는 undefined 이 고 undefined
  • 로 돌아 갑 니 다.
    논리 와 단락 작업 에 속 합 니 다. 첫 번 째 조작 수가 결 과 를 결정 할 수 있다 면 두 번 째 조작 수 에 대해 값 을 구하 지 않 습 니 다. 예 를 들 어:
    	var s1 = true;
    	var s2 = (s1 && someUndefined);		//     ,         
    	alert(s2);			//    
    	
        var b1 = false;
        var b2 = (s1 && SomeUndefined);			//      
        alert(b2);				//false
    

    (3) 논리 또는: 기호 | | |, 두 개의 조작 수 만 모두 false 이 고 결 과 는 false 이 며, 그렇지 않 으 면 true 입 니 다.다음 변환 규칙 에 따라:
  • 첫 번 째 조작 수 는 대상 이 고 첫 번 째 조작 수
  • 를 되 돌려 줍 니 다.
  • 첫 번 째 작업 의 값 구 하 는 결 과 는 false 이 고 첫 번 째 작업 수
  • 를 되 돌려 줍 니 다.
  • 두 조작 수 는 모두 대상 이 고 첫 번 째 조작 수
  • 를 되 돌려 줍 니 다.
  • 두 조작 수 는 모두 null 이 고 null
  • 로 돌아 갑 니 다.
  • 두 개의 조작 수 는 모두 NaN 이 고 NaN
  • 으로 되 돌아 갑 니 다.
  • 두 조작 수 는 모두 undefined 입 니 다. undefined 논리 나 단락 연산 자 를 되 돌려 줍 니 다. 첫 번 째 조작 수 에서 값 을 구 하 는 결과 가 true 라면 두 번 째 조작 수 에 값 을 구 하지 않 습 니 다. 예 를 들 어
  •  	var s1 = true;
     	var s2 = (s1 || someUndefined);		//     
     	alert(s2);			//  ,true
     	
    	 var b1 = false;
    	 var b2 = (s1 && SomeUndefined);			//     
    	 alert(b2);				//    
    

    논리 나 이 기능 은 변수 에 null 이나 undefined 를 부여 하 는 것 을 피 할 수 있 습 니 다. 예 를 들 어 var o = preferredObject || defaultObject; preferredObject 가 유효 치 를 포함 하면 o 에 값 을 부여 합 니 다. 그렇지 않 으 면 defaultObject 를 o 에 할당 합 니 다.
    모두 함께 토론 하 는 것 을 환영 합 니 다, 진보!!

    좋은 웹페이지 즐겨찾기