+, -, *, /, % ; %는 나머지연산%의 경우 모두 부동소수점의 연산+ 연산의 경우 한 쪽 항이 문자열이면 다른 한쪽 항도 문자열로 만든다.++, --, +, -++ 는 증가 연산자-- 는 감소 연산자+ 는 아무 처리 없음 연산자- 는 부호 반전 연산자예시
var a = 1;
b = ++a; // b는 2, a도 2
c = a++ + 2; // c는 4, a는 3이 된다.
+=, -=, *=, /=, %=a += 1 는 a = a + 1a -= 1 는 a = a - 1a /= 1 는 a = a / 1a %= 1 는 a = a % 1.cos(), .PI 등 프로퍼티와 메쏘드를 가지고 있음.+ 연산자의 피연산자가 모두 문자열이면 문자열로 연결+ 연산자의 피연산자 중 하나가 문자열이 아니라면, 문자열로 반꾼 후 연결
var a = "Hello" + "Hello"; // "HelloHello"
var b = 1 + "일"; "1일"
문자열을 String 객체로 변환하기 위해 String 생성자를 사용
var msg = new String("string for String object");
중요 메소드는 match(regExp), slice(m, n), split(s), indexOf(s), toLowerCase(s), toUpperCase(s), length 가 있다.
msg.charAt(3)String의 메소드와 프로퍼티는 문자열에서 사용가능하다.String 객체의 프로퍼티나 메서드를 사용하면 일시적으로 String 객체로 래핑된 이후, 메서드를 실행하고, 메모리에서 삭제된다. 이러한 일시적인 객체를 래퍼 객체 라고 한다.replace나 toUpperCase 와 같은 메서드의 경우 새로운 문자열을 반환할 뿐, 기존의 문자열을 수정하지는 않는다..charAt() 메서드 대신에 [] 를 통한 접근이 가능하다.[]를 통한 인덱싱으로 값을 대입하고자 하면 무시된다.==, !=, ===, !==, <, >, <=, >= 가 존재한다. == 값이 같음 (느슨한 비교)
좌우 피연산자의 타입이 같을 때
true, 다르면 fasletrue 다르면 false좌우 피연산자의 타입이 다를 때
trueundefined 와 null을 같을 것으로 친다.true 는 1로, false는 0으로 변환해서 비교 1 == "1" // true
null == undefined // true
true == 1 // true
[2] == 2 // true
=== 값과 타입이 같음 (엄격한 비교) true를 1로, false를 0으로 변환하지 않음그냥 무조건 두개가 같아야 함.
1 === "1" // false
null === undefined // false
true === 1 // false
[2] === 2 // false
!= 값이 다름!== 값과 타입이 다름< 작음> 큼<= 작거나 같음>= 크거나 같음&&, ||, !"", 0, -0, NaN, null, undefined 는 모두 falsetypeof : 데이터 타입 조사new : 새로운 객체 선언 연산자in : 객체의 프로퍼티 포함 여부 확인 연산자delete : 객체의 프로퍼티나 배열 요소 제거 연선자instanceof : 객체의 종류 확인 연산자eval() : 인수로 받은 문자열을 자바스크립트 코드로 실행 - 사용하지 않는 것이 권장됨. (해킹의 위험, 속도가 느림, 굳이 사용할 필요 없음)?:
var parity = (a % 2 == 0)? "짝수" : "홀수";
앞의 표현식이 참일 경우 “짝수”, 거짓일 경우 “홀수”
Number 객체의 메소드 활용 .toString().toFixed( num ) 소수점 자리를 인수로 주어 거기까지만 문자열로 변환
var a = 13.23;
a.toString(); // "13.23"
a.toFixed(1); // "13.2"
String() 함수를 활용 new 연산자와 함께 쓰면 객체 생성자로 사용가능하지만, new 연산자 없이 사용하면 일반 함수로 사용가능하다.
String(26) // -> "26"
수식 안에서 암묵적으로 변환
var s = "2";
s - 0; // -> 2
parseInt, parseFloat 함수 사용문자를 숫자로 해석할 수 없을 때는 NaN을 반환
parseInt("3.14"); // -> 3
parseFloat("3.14"); // -> 3.14
parseInt("3 metter"); // -> 3
parseInt("ABC"); // -> NaN
Number 함수를 사용new 연산자 없이 사용하면 객체 생성함수가 아닌 일반 함수로 사용가능
Number("123"); // -> 123
Number(true); // -> 1
Number(false); // -> 1