
"+" 연산자는 피연산자가 모두 문자열이면 문자열로 연결한다.
"Hello" + "World!" // -> Hello World!
"1" + "2" // -> 12
피연산자 중 하나가 문자열 또는 문자열로 변환할 수 있는 객체라면 다른 피연산자의 타입을 문자열로 바꾼 다음 연결한다.
10 + "ltitle indians" //-> 10 ltitle indians
1 + {} //-> 1[object Object]
true + (new Date()) //-> trueTue Sat Aug ......
피연산자 두개를 숫자 또는 NaN으로 타입을 바꾸어 더한다.
문자열을 처리하기 위한 객체로 String 객체가 있다.
var msgObj = new String("Everything is practice.");
msgObj.length // -> 23
msgObj.charAt(3) // -> r
| 메서드 | 설명 |
|---|---|
| charAt(n) | 대상 문자열의 n번째 문자 |
| includes(s [,n]) | 대상 문자열의 n번째 문자부터 문자열 s를 포함하는지를 판별한 논리값 n을 생략하면 문자열의 끝부터 검색함 |
| indexOf(s) | 대상 문자열에서 s가 처음 나오는 위치 |
| lastIndexOf(s) | 대상 문자열에서 s가 마지막으로 나오는 위치 |
| slice(m, n) | 대상 문자열의 m번째 이후 n번째 미만의 부분 문자열을 반환 m과 n이 음수면 문자열 끝이 시작 위치가 됨 |
| split(s [,n]) | 대상 문자열을 문자열 s로 분할한 문자열 배열을 반환 n은 발견된 문자열 개수를 제한 |
| substring(m,n) | 대상 문자열의 m번째 이후 n번째 미만의 부분 문자열을 반환 |
두 개의 피연산자를 비교한 결과를 논리값(true, false)으로 반환
| 연산자 | 뜻 | 예제 | 예제의 뜻 |
|---|---|---|---|
| == | 값이 같음 | a == b | a 값과 b 값이 같으면 true, 그 외에는 false |
| != | 값이 다름 | a != b | a 값고 b 값이 다르면 true, 그 외에는 false |
| === | 값과 타입이 같음 | a === b | a와 b의 값과 타입이 같으면 true, 그 외에는 false |
| !== | 값과 타입이 다름 | a !== b | a와 b의 값과 타입이 다르면 true, 그 외에는 false |
| < | 작음 | a < b | a 값이 b 값보다 작으면 true, 그 외에는 false |
| > | 큼 | a > b | a 값이 b 값보다 크면 true, 그 외에는 false |
| <= | 작거나 같음 | a <= b | a 값이 b 값보다 작거나 같으면 true, 그 외에는 false |
| >= | 크거나 같음 | a >= b | a 값이 b 값보다 크거나 같으면 true, 그 외에는 false |
좌우 피연산자의 타입이 같을 때
값이 같으면 true, 다르면 false
var a = [1, 2, 3];
var b = [1, 2, 3];
var c = a;
console.log( a == b); // -> false
console.log( a == c); // -> true
변수 a와 b에는 모두 배열의 참조가 저장되어 있어 같은 데이턱 담겨 있지만 메모리에서 차지하는 위치가 다르다.
좌우 피연산자의 타입이 다를 때
null == undefined //-> true
1 == "1" //-> true
"0xff" == 255 //-> true
true == 1 //-> true
true == "1" //-> true
(new String("a")) == "a" //-> true
(new Number(2)) == 2 //-> true
[2] == 2 //-> true피연산자를 평가한 후에 타입을 변환하지 않은 상태의 두 값을 엄격하게 비교한다.
null === undefined //-> false
1 === "1" //-> false
"0xff" === 255 //-> false
true === 1 //-> false
true === "1" //-> false
(new String("a")) === "a" //-> false
(new Number(2)) === 2 //-> false
[2] === 2 //-> false
NaN === NaN //-> false
| 연산자 | 뜻 | 예제 | 예제의 뜻 |
|---|---|---|---|
| && | 논리곱 | a && b | a와 b가 모두 true면 true, 그 외에는 false |
| ∥ | 논리합 | a ∥ b | a와 b 중 하나라도 true, 그 외에는 false |
| ! | 부정 | a ! b | a가 true면 false, false면 true |
x > 0 && y > 0 // x와 y가 모두 참일 때만 true
x > 0 || y > 0 // x와 y중 하나라도 참이면 true, 모두가 0 이하면 false
!(a && b) // a 또는 b가 거짓