<script>
"use strict";
* 변수 이름 지정 규칙
- $, _, 문자로 시작해야 한다.- 첫 문자 이후 중간에 숫자 가능
invalid var 1test;
var $test, _test, test, $123;
var 한글; //비추!! <<< 한글 코딩의 경우는 외국 브라우저에서 문제 생길수도...
논리 연산자
! : not (true->false, false->true)&& : and (true&&true -> true)
|| : or (true||false, false||true, true||true -> true)
var v1 = true;
var v2 = !v1;
console.log(v2, v1);
console.log("and : true&&true = ", true && true); <<<return true
console.log("and : true&&false = ", true && false); <<<return false
문제1. and와 or 연산자 결과값 출력하시오
console.log("and : false&&true = ", false && true); <<<return false
console.log("and : false&&false = ", false && false); <<<return false
console.log("or : true||true = ", true || true); <<<return true
console.log("or : true||false = ", true || false); <<<return true
console.log("or : true||false = ", true || false); <<<return true
console.log("or : false||false = ", false || false); <<<return false
논리 연산자와 조건문
var age = 20;
if (age > 18)
console.log("음주하셔도 됩니다");
else
console.log("술 쳐먹지 마라")
if (age<19 || age>30)
console.log("클럽 출입 불가")
비효율 논리 연산
x & y : x 값과 상관 없이 y 수행
x | y : x 값과 상관 없이 y 수행
효율 논리연산 <-- 치기 어린 코드일 뿐
var age2=18;
(age2 >=19) && console.log("투표권 있음");
(age2 >= 19) || console.log('투표권 없음');
컴퓨터는 아래 연산을 더 효과적으로 받아들인다.
if (age2 >= 19)
console.log('투표권 있음');
else
console.log('투표권 없음');
복합 할당 연산자
=(할당연산자)와 기타 연산자 결함a @= b; ==> a= a @ b
console.log('복합연산자>>>>')
var a = 20;
var b = 30;
//a = a+b;
a += b; //위 연산의 압축 표현
console.log(a);
비교 연산자
==, !=, <, >, <=, >=,console.log('비교 연산자>>>>>>>.')
var x = 10;
var y = 20;
console.log(x == y);
=== : 비교하는 대상의 dta 유형이 같아야 한다.
console.log(10 == '10'); //문자열 '10'을 숫자로 변환하여 비교함
console.log(10 === '10'); // 데이터의 유형이 다르기 때문에 무조건 false
특별 연산자 : typeof
변수에 들어있는 data가 무슨 유형인지 returnconsole.log('typeof>>>>>>>>>>>>>>>>>>>>>')
console.log(typeof '홍길동'); //return string
console.log(typeof name, typeof age); //return string, number
console.log(typeof "10"); //return number
console.log(typeof 3.14); //return number
console.log(typeof true); //return boolean
console.log(typeof [ 90, 80, 70 ]); //return object
console.log(typeof {
name : 'peter',
age : 20
}); //return object
console.log(typeof function() {
}); //return function
// function 도 일종의 object 이지만 아주 특별한 object이다.
* undefined
- 변수에 data가 없어 무슨 유형이지 알 수 없음!var ok;
console.log(typeof ok); //return undefined
비트 연산자
- data의 비트를 조작 : 왼쪽 이동, 오늘쪽 이동, and/orconsole.log('비트 연산자>>>>>>>>>>>>>>>>>>');
var bit1 = 10; // 0000 0000 0000 0000 0000 0000 0000 1010 (4byte; 32bit)
console.log(bit1 >> 2); // bit1 에 들어있는 값을 오른쪽으로 2비트 이동하라. 결과는? 2
// xx00 0000 0000 0000 0000 0000 0000 0010|10 (빈 자리는 부호 비트로 채운다.)
console.log(bit1 << 2); // bit1 에 들어있는 값을 왼쪽으로 2비트 이동하라. 결과는? 40
bit1 = -10;
// 1111 1111 1111 1111 1111 1111 1111 0110 (-10)
console.log(bit1 >> 2); // -3
// xx11 1111 1111 1111 1111 1111 1111 1101|10 (빈자리 발생)
// 1111 1111 1111 1111 1111 1111 1111 1101|10 (빈 자리를 - 부호비트인 1로 채움)
console.log(bit1 >>> 2); // 1073741821
숫자에 대해 &, |는 비트 연산자로 동작한다.
1. 그래픽 데이터 변형그림 & 필터값 => 색상을 줄임
그림 | 필터값 => 색상을 증가시킴
2. 권한 검사용 (추후 설명)
var a = 10;
console.log(a & 6); // 2 -> 0010
console.log(a | 6); // 14 -> 1110
^(exclusive; 배타), ~(not)
console.log(10 ^ 6); // 12
console.log(~10); // -11
console.log(!10); // 10을 놀리값 true 변환 -> !true -> false
브라우저가 임의대로 형을 변환 시키는 것 => 암시적 형 변환
조건 연산자
조건 ? 문장1 : 문장2;조건이 참이면 '문장1'을 수행, 거짓이면 '문장2'를 수행
var cond = '직장인';
console.log(cond == "직장인" ? '재직자 훈련과정' : '미취업자 훈련과정');
* 증가, 감소 연산자 : ++, --
console.log('증감연산자*******************************');1) 전위 증감 연산자 : 먼저 값을 증가 시킨 뒤에 해당 위치에 넣는다
++i -> i = i + 1
--i -> i = i - 1
var v1=3;
var sum1=++v1 + ++v1 + ++v1;
sum1 = 4 + 5 + 6;
***** 할당 연산자는 오른 편의 표현식이 모두 수행 된 후 마지막으로 수행됨
console.log(v1, sum1);
2) 후위 증감 연산자
i++ : i 값을 넣은 뒤에 1 증가시킨다.
i-- : i 값을 넣은 뒤에 1 감소시킨다.
var v2=3;
var sum2= v2++ + v2++ + v2++;
sum2 = 3 + 4 + 5;
console.log(v2, sum2);
** C언어에서는 컴파일러별로 다른 계산을 할 수도 있다.
// task:
var v3=3;
v3 = v3++;
console.log(v3);
</script>
댓글 없음:
댓글 쓰기