상세 컨텐츠

본문 제목

시베리안 허숙희의 자바스크립트 비기닝 8 (연산자)

자바스크립트

by e7e 2023. 6. 5. 16:35

본문

웹서버(코드 이해 안 되도 됨! 아직은), 변수, 조건문, 반복문, 함수를 

대략적으로 훑어 보았당!  (새로운 걸 공부할 때 한번 훑는 것은 대단히 중요하당!)

첨부터 꼼꼼하면 잼없는 부분에 한숨짓고, 맥락이 안 이어져, 의지가 히미해진당!

 

필요한 데 건너 뛴 부분을 체킁!  정리하장 -> 바로 연산자(Operator)당!

MDN에 아주 잘 나와있당!, JS를 공부하는 자 MDN 성지를 자주 두리번 거리장!

다 꼬집으면 꼬집어도 잠에서 깨어나지 않으닝, 필요한 곳만 쪼메 꼬집어 보장!

산술연산자(Arithmetic Operator)

+  -  *  /  %  가 산술 연산자로 %는 나머지 연산자라 몫이 아니고 나머지를 준당.

찝고 넘어갈 부분은 + 연산만 문자열 더하기, 산술 더하기가 있고,

나머지 -(마이너스), *(곱하기), /(나누기), %(나머지)는 산술 연산만 존재한당!

 

더하기연산.html 파일을 아래 내용으로 맹글로, 결과를 화긴사살 하장!

<!DOCTYPE html>
<meta charset="UTF-8">
<script>
    var v_str = "272"; // string
    var v_num = 272;   // number
    var v_add = v_str + v_num;
    var v_sansul = v_str % v_num;
    
    alert("나의 로제님 " + " Long Live"); // 보통의 문자열 더하기

    alert("누느로 화긴1!=> " + v_add)// ?
    alert("누느로 화긴2!=> " + v_sansul)//?
</script>

느낌이 왔는강?, 문자열 + 넘버를 하면,

문자열 더하기가 우선 시 되어,넘버가 자동으로 문자열로 형변환 된땅!

v_sansul 값은 워떠 하였는가?   %는 문자열 연산이 없고

산술연산만 존재하기 때문에 자동으로 문자열이 넘버로 바뀐땅

 

노파심에 아래 코드도 누느로 꼬옥 한번 화긴사살 해 주길 부탕!

<!DOCTYPE html>
<meta charset="UTF-8">
<script>
    var v_check = "272" -0;         
    alert(typeof(v_check) + " : " + v_check);

    v_check = "337" * 1;
    alert(typeof(v_check) + " : " + v_check);

    v_check = "222" / 1;
    alert(typeof(v_check) + " : " + v_check);


    v_check = 888 + "";
    alert(typeof(v_check) + " : " + v_check + "괘니");
</script>

세개는 문자열을 산술 연산을 통해 넘버로 바꾸었고,

마지막은 빈 문자열 ""  더하기를 이용해 넘버를 숫자로 바꾸었땅!

 

위 방식은 쪼메 변칙이공, parseInt/parseFloat라는 공식적 변환함수가 제공된당.

아래 코드를 누느로 화긴하공, parseInt 함수가 자바의 parseInt보다 좋당?

<!DOCTYPE html>
<meta charset="UTF-8">
<script>
var v_num1 = parseInt("272안녕");
alert("누느로 체킁: " +v_num1); // "안녕" 떨어져 나감!(벨이 GOOD!)

var v_num2 = parseInt("안농272");
alert("누느로 체킁: " +v_num2); // NaN(Not a Number) 넘버로 못바꿈

var v_num3 = "메롱" * 3; // "메롱"을 넘버로 바꿀 수 없음
alert(v_num3);

//소숫점 있는 문자열 숫자를 넘버로 바꾸는  parseFloat도 있음!

</script>

 

논리연산자(Logical Operator)

논리 연산은 아마 중딩때 배웠을거시땅, 요즘엔 초딩 때?

논리 연산자는 ||  => OR를 의미 ||의 양쪽 중 아무쪽이나 true면 true, 그왼 false,

                     && => AND를 의미 &&의 양쪽 모두 true여야 true, 그 왼 false,

                     ! => Not의 의미로 true는 false로 false는 true로 바꿈!

 

아래 코드를 실행, 누느로 소스와 결과를 매칭 시키장

<!DOCTYPE html>
<meta charset="UTF-8">
<script>

var v_left = "흥";
var v_right;

if(v_left || v_right){       // OR 연산
    alert("한쪽은 차미네용!");
}
if(v_left && v_right){       // AND 연산
    alert("둘다 차미네용");  // v_right가 undefined로 false로 처리됨!
}

if(v_left && !v_right){       // AND 연산
    alert("한쪽 값을 뒤집었어용");
}

</script>

한가지 꼬집고 넘어가자면 || 연산일 때는 왼쪽에 true 확률이 높은 걸 놓고

( || 왼쪽꺼이 true면 , || 오른쪽 껀 체크 할 필요없음)

&& 연산일 때는 && 왼쪽에 false일 확률이 높은 걸 놓으면 좋당!

(&& 왼쪽이 false면, && 오른쪽 값에 상관없이 false당)

 

증감연산자(Incremental/Decremental Operator)

++, -- 연산자의 의미는 잘 알것이당, 위치에 대한 영향을 보장!

아래 코드를 작성하고 실행해 보기 전에 ? 결과를 예측해 보장

<!DOCTYPE html>
<meta charset="UTF-8">
<script>

var v_inc = 2;

var v_add = v_inc++;
alert("v_add: " + v_add); //?
alert("v_inc: " + v_inc); //?

v_add = ++v_inc;
alert("v_add: " + v_add); //?
alert("v_inc: " + v_inc); //?

/*
v_add = v_inc++; // 아래 2줄과 같은 의미
v_add = v_inc;
v_inc = v_inc +1;  // v_inc += 1;로 써도 된당

v_add = ++v_inc;  // 아래 2줄과 같은 의미
v_inc = v_inc +1; // v_inc += 1;로 써도 된당
v_add = v_inc;    
*/

</script>

머 요정도까지가 자주 사용되는 연산자이므로, 눈과 손이 합을 맞춰 액션을 할 수 있도록 하장!

 

비트  논리 연산자(Bitwise Operator)

과학/수학/시스템 관련 프로그래밍이 아니라면, 아마 비트 논리 연산자를 볼 수 있을까?

하지만 지식 뽐내는 걸 좋아하는 당신이라면 이 정도는 알아 두어야 한당!

십진수를 먼저 이진수로 바꾸고 같은 자리에 있는 BIT끼리 해당 연산을 하면 된당!

아래 코드를 실행하여,  코드와 결과값을 눈과 머리로 매칭시키장!(어렵다면 일단 스킵해도 된당!)

<!DOCTYPE html>
<meta charset="UTF-8">
<script>

var v_num1 = 5;  // (4 X 1) + (2 X 0 ) + (1 X 1) => 2진수 101 
var v_num2 = 4;  // (4 X 1) + (2 X 0 ) + (1 X 0) => 2진수 100

alert("| 결과 " + (v_num1 | v_num2));
/* 친절한 해석
  v_num1    =>  101
  v_num2    =>  100
  BIT OR    =>  101          이진수 101은 십진수 5
*/

alert("& 결과 " + (v_num1 & v_num2));
/* 친절한 해석
  v_num1    =>  101
  v_num2    =>  100
  BIT AND   =>  100          이진수 100은 십진수 4
*/


alert("^ 결과 " + (v_num1 ^ v_num2));
/* 친절한 해석
  v_num1    =>  101
  v_num2    =>  100
  BIT XOR   =>  001          이진수 001은 십진수 1
*/

</script>

 

그저 개인적인 생각이지만, 양자 컴퓨터의 상태 표현 방식이라면 (벌써 진행 중 일지도..)

인간의 감정 상태  Amplitude <-> 표출 행동 Amplitude 의 데이타를 집약하여

아주 빠른 유전자적 행동의 크기(정도)예측 모델 구성이 가능할 것 같당!

 

두렵당!!! => 인간이란 무엇인가? 그저 랜덤 오차값을 가진 개별 타이머가 붙은 게임 속 1개 유닛?!

머~ 상관없당! 괜찮당!  그냥 모닝 커피를 즐기고, 모닝글로리에 가서 이건 머닝? 모닝?

굳 모닝? 하고 인사 관리를 시작하랑! 

곧 머리소근  Money + ing => Moneying(머닝-돈벌기)에  벨이(very) 집착하게 될 꺼이당! 

 

 

https://www.youtube.com/watch?v=DO845EqU3eE 

 

관련글 더보기