반응형
[광고 누르면 오늘의 행운 상승!!]
- JavaScript의 연산자
→ C언어, JAVA와 다르지 않음
→ 단, 자동 형 변환 주의!
→ 예) 자동 형 변환
- 연산자 : 피 연산자의 개수에 따라 분류
- 프로그래밍 연산자
1. 산술 연산자
2. 비교 연산자
3. 논리 연산자
-> 1,2,3 + 문자,기호
[23, 45, 24, 3]; // 배열을 생성하는 대괄호
new Date; : 객체를 생성하는 생성자 new
delete myObject.go : 객체 프로퍼티를 삭제하는 delete
myfunction() : 함수를 실행하는 ()
- 산술 연산자 : 숫자의 사칙연산 + 응용 연산
→ 자동 형 변환으로 피 연산자에 문자가 포함되어도 연산 가능
덧셈 연산자
- 덧셈 연산자
→ 피 연산자 모두 숫자 덧셈 연산
→ 피 연산자 중 하나라도 문자열이라면 : 피 연산자가 연결된 문자열
- 피 연산자가 모두 숫자
var n1 = 123;
var n2 = 456;
result = n1 + n2;
document.writeln(n1 + "+" + n2 + "=" + result + "<br>");
-> 123 + 456 = 579 //일반적인 더하기 연산
2. 첫번쨰 피 연산자 : 숫자, 두 번째 피 연산자
→ 숫자 형태의 문자열
var n1 = 123;
var n2 = "456";
result = n1 + n2;
document.writeln(n1 + "+" + n2 + "=" + result + "<br>");
-> 123 + 456 = 123456 // 피 연산자 모두 연결한 문자열
뺄셈과 곱셈 연산자
- 피 연산자가 숫자 타입이 아닐 때
- 덧셈 연산자 : 숫자를 문자열로 형 변환
- 뺄셈과 곱셈 연산자 : 숫자 형태의 문자열을 숫자로 자동 형 변환
- 숫자나 숫자 형태의 문자열이 아닐 경우, 결과는 숫자가 아님.
var n1 = 123; var n2 = "456";
var s1 = "456"; var s2 = "string"; var result;
result = n2 - n1;
document.writeln(n2 + "-" + n1 + "=" + result + "<br>");
result = s1 - n1;
document.writeln(s1 + "-" + n1 + "=" + result + "<br>");
result = s2 - n1;
document.writeln(s2 + "-" + n1 + "=" + result + "<br><br>");
result = n2 * n1;
document.writeln(n2 + "*" + n1 + "=" + result + "<br>");
result = s1 * n1;
document.writeln(s1 + "*" + n1 + "=" + result + "<br>");
result = s2 * n1;
document.writeln(s2 + "*" + n1 + "=" + result + "<br><br>");
-> 456 - 123 = 333
-> 456 - 123 = 333
-> string - 123 = NaN
-> 123 * 456 = 56088
-> 123 * 456 = 56088
-> 123 * string = NaN
나눗셈 연산자
- 나눗셈 연산 : 피 연산자가 모두 정수라 할지라도 결과는 실수가 나올 수 있음.
→ JavaScript는 정수가 없음
var n1 = 123; var n2 = "456";
var s1 = "456"; var s2 = "string"; var result;
result = n2 / n1;
document.writeln(n2 + "/" + n1 + "=" + result + "<br>");
result = s1 / n1;
document.writeln(s1 + "/" + n1 + "=" + result + "<br>");
-> 456 / 123 = 3.707317073170732
-> 456 / 123 = 3.707317073170732
// 피 연산자 모두 정수 -> 실수 값
result = n2 / zero;
document.writeln(n2 + "/" + zero + "=" + result + "<br>");
result = n2 / s2;
document.writeln(n2 + "/" + s2 + "=" + result + "<br><br>");
-> 456 / 0 = infinity
-> 456 / string = NaN
// 피 연산자에 문자열 포함 : 숫자 형 문자열로 자동 변환
// 나누셈 0 으로 나누는 것 불허 -> 에러 발생
- 나머지 연산 : 나눗셈 연산과 비슷
→ 나머지를 결과 값으로 취함
var n1 = 123; var n2 = "456";
var s1 = "456"; var s2 = "string"; var result;
result = n2 % n1;
document.writeln(n2 + "%" + n1 + "=" + result + "<br>");
result = s1 % n1;
document.writeln(s1 + "%" + n1 + "=" + result + "<br>");
result = n2 * s2;
document.writeln(n2 + "%" + s2 + "=" + result + "<br>");
-> 456 % 123 = 87
-> 456 % 123 = 87
-> 456 % string = NaN
단항 산술 연산자
- 단 항 산술 연산자 : +, - , ++, - -
- (단항) +,- : 양수, 음수 변경 및 표현
var n1 = 123456; var n2;
var s1 = "123456"; var result;
result = -n1;
document.writeln("양수 123456에 단 항 마이너스 연산자 적용 : " + result + "<br>");
n2 = result;
result = +n2;
document.writeln("음수 -123456에 단 항 플러스 연산자 적용 : " + result + "<br>");
result = -n2;
document.writeln("음수 -123456에 단 항 마이너스 연산자 적용 : " + result + "<br>");
result = -s2;
document.writeln("문자열 123456에 단 항 마이너스 연산자 적용 : " + result + "<br>");
-> -123456
-> -123456
-> 123456
-> -123456
// 양수 -> 음수 / 음수 -> 양수
// 숫자 형 문자열의 경우 숫자로 자동 형 변환
- 증가 연산자 : ++ / 감소 연산자 : - -
var i = 1;
i = i + 1;
var j = i;
// var i = 1;
// var j = ++i;
- 증가/감소 연산자 위치에 따라 다른 결과 값 제시
var i = 1; var k =1;
var j = ++i; var y = k++;
document.writeln("j =" j);
document.writeln("i =" i);
document.writeln("y =" y);
document.writeln("k =" k);
-> j = 2
-> i = 2
-> y = 1
-> k = 2
//피 연산자 앞 : 증가/감소 연산 후 변수에 넣기
//피 연산자 뒤 : 변수에 넣은 후 증가/감소 연산
할당 연산자
- 할당 : 값 또는 참조를 변수 등에 전달함
- 대표 연산자 : = → 수학 : 같음 → 프로그래밍 : 할당 연산자
var a = 123; // 변수 a에 숫자 123 할당
var b = new Date; //변수 b에 객체 Data 할당
var c = function(a,b) {return a+b;}; //변수 c에 함수를 할당
// 산술, 비교, 논리 연산자와 함께 사용
var a = 10; var b = 15;
a += b; //피 연산자의 연산 후 할당
- 특정 수치 만큼 값 증가/감소 시 유용
할당 연산자 | 사용 예 | 연산 방법 |
+= | a += b | a = a + b |
-= | a -= b | a = a - b |
*= | a *= b | a = a * b |
/= | a /= b | a = a / b |
%= | a %= b | a = a % b |
동등 연산자
- 동등 연산자(==) : 피 연산자의 값이 같다 → 결과 : boolean 값
- 사용 : 조건 문, 반복 문의 프로그래밍 실행 흐름 제어
- 예) if 문 내부 동등 연산자 사용
if(a==b){
alert("a와 b는 같습니다");
}
//a와 b의 값이 같다면
//연산 결과 true 반환
-> 중괄호 내부의 코드 실행
- 일치 연산자(===)
데이터 타입과 객체의 참조 등에 사용 동등 연산자보다 엄격하게
값이 일치하는지 비교(데이터 타입까지 비교)
var a = 123; var b = "123";
if(a == b) {
document.writeln("같다");
}else{
document.writeln("다르다");
}
->> 같다
if(a === b) {
document.writeln("같다");
}else{
document.writeln("다르다");
}
->> 다르다
- 참조가 전달되는 값은 같은 참조 값이어야 동등과 일치가 참이 됨
- Nan, undefined, null → NaN(숫자가 아님을 표시) : 자신을 포함한 어떤 것과도 같지 않음
- Nan 확인 시, if(a==NaN)으로 확인 불가 isNaN() 함수 사용
-
Null과 undefined : 동등 연산자로 비교 시 같다고 표시
-
부등 연산자 : 동등의 반대 개념(!=) → 같지 않음을 판단(같지 않으면 true, 같으면 false)반환
-
불일치 연산자 : 일치의 반대 개념(!==)
비교 연산자
- 비교 연산자 : true, false 로 결과 반환
비교 연산자 | 의미 |
< | 첫 번째 피 연산자가 두 번째 피 연산자 보다 작다 |
> | 첫 번째 피 연산자가 두 번째 피 연산자 보다 크다 |
<= | 첫 번째 피 연산자가 두 번째 피 연산자 보다 같거나 작다 |
>= | 첫 번째 피 연산자가 두 번째 피 연산자 보다 같거나 크다 |
- 피 연산자 = 숫자 : 결과 쉽게 판단 가능
- 피 연산자 = 문자 : 문자 코드의 순서대로 크기 비교
- 피 연산자 = 객체 : 객체를 숫자나 문자로 자동 변환하려고 시도하고 변환되지 않으면 false반환
-> 문자 비교 시, 대문자가 소문자보다 작다고 판단 됨##
논리 연산자
- 논리 연산자 : Boolean 값 연산 → 비교 연산자와 함께 사용
- AND 연산자(&&) , OR 연산자(||)
AND 연산자(&&)
true && true -> true
true && false -> false
true && true -> false
false && false -> false
OR 연산자(||)
true || true -> true
true || false -> true
true || true -> true
false || false -> false
-
논리 NOT(!) : 피 연산자의 Boolean 값을 반대로 바꿈(단 항 연산자)
-
삼 항 연산자(피 연산자 3개) : 조건 연산자 → 구조 : (조건)? (참인결과) : (거짓인결과);
-
in 연산자 : 문자 열이 배열이나 객체에 존재하는 지 확인하는 연산자 결과값 : Boolean 값 반환 구조 : (문자 열) in (배열/객체)
-
instanceof 연산자 : 인스턴스 확인하는 연산자 결과 값 : Boolean 값 반환
-
typeof 연산자 : 피 연산자의 데이터 타입 문자열로 반환
-
delete 연산자 : 객체의 property 삭제하는 연산자
반응형
'5. 웹 프로그래밍 > 3. JavaScript' 카테고리의 다른 글
객체 [Property][프로퍼티] [JavaScript] (0) | 2020.03.15 |
---|---|
조건문/반복문[JavaScript] (0) | 2020.03.15 |
입력된 값 문자열인지 숫자인지 판단하기[JavaScript] (0) | 2020.03.15 |
데이터타입 2[JavaScript] (0) | 2020.03.15 |
데이터 타입 1[JavaScript] (0) | 2020.03.14 |