2019. 2. 15. 18:19ㆍJavaScript
변수
변수를 선언할 때 var를 사용합니다. es6부터 const, let으로도 변수를 선언할 수 있습니다.
var와 let, const와는 스코프 즉, 변수의 효력이 있는 범위가 달라지는데 추후에 정리해서 포스팅하겠습니다.
우선 기존의 변수 선언하는 var
var
var a = 5; // int형
var a = "a"; // string형 double quote
var a = 'a'; // string형 single quote
var a = true; // boolean형
var a = []; // Array
var a = {}; // 오브젝트
var a = undefined // undefined;
연산자
연산자 우선순위를 표현하기 위해선 ()를 사용하면 됩니다.
수학연산자 : + , - , * , / , % (나머지)
논리연산자 , 관계연산자, 삼항연산자도 있습니다.
// or연산자의 활용
var name = 'Jin';
var result = name || 'Paul'; // name이 있다면 Jin 할당. 없다면 Paul로 할당한다.
console.log(result); // Jin 출력.
var name = '';
var result = name || 'Paul';
console.log(result) // Paul 출력
연산자 - 삼항연산자
삼항연산자는 꽤나 많이 쓰이는 연산자입니다. 인턴할 때 삼항연산자도 몰라서 사수분이 당황해하시던 기억이 있네요...부끄럽지만 모르면 배우고 까먹지 않으면 됩니다! 삼항연산자를 사용하면 조건문을 간단히 표현해서 라인 수를 줄일 수 있습니다.
condition? (expression1) : (expression) condition이 true면 expression1을 반환하며, 조건을 만족하지않으면 expression2를 반환합니다.
const num = 11;
const result = ( num > 10) ? 'true, over 10' : 'false, under 10';
console.log(result); // num이 조건문을 만족하므로 왼쪽의 표현식을 출력한다.
연산자 - 비교연산자
비교를 위해서 ==보다는 ===를 사용하는 게 좋습니다.
===를 사용하면 type까지 비교해줍니다.
0 == "0" // true
0 === "0" // false 자료형이 같이 않다
null == undefined // true
null ===undefined // false
* 참고로
undefined : 변수를 선언은 했지만 할당은 하지 않은 상태입니다. 즉, 자료형이 결정되지 않은 변수입니다.
null : 변수를 선언하고, 'null' 이라는 빈 값을 할당한 경우 입니다. 즉, 자료형은 object이고, 비어있는 변수다라고 보시면 좋습니다.
console.log(null==undefined)에서 ==비교연산자는 자바스크립트 엔진이 자체적으로 둘다 값이 없다고 판단해서 true를 판단합니다.
===비교연산자를 사용하면 타입까지 체크해서 false라는 결과를 얻을 수 있습니다.
자바스크립트의 타입
자바스크립트는 타입이 실행타임에 결정됩니다!
대게 다른 언어는 미리 타입을 선언하지만(ex, int num = 15 / string str = "this is string") JS는 var/let/const로
선언하고 함수의 파라미터나 변수는 실행되는 타이밍에 타입이 결정됩니다.
(주의, 타입이 없는 게 아닙니다.)
TypeScript같은 언어를 공부하면 선언 타임에 타입을 지정할 수 있습니다.
타입체크 방법
1. typeof
function run(a){
console.log(typeof a); // typeof로 타입을 확인할 수 있습니다.
}
run('run it') // string 출력
run(false) // false 출력
2. toString.call()
// toString.call()을 이용해서 타입을 확인할 수도 있습니다.
toString.call(15); // "[object Number]" 출력
toString.call("is String"); // "[object String]" 출력
toString.call(['dd',123]); // "[object Array]" 출력
이외에도 isArray()같은 메소드도 있습니다.
[ edwith - 웹프로그래밍 부스트고스 ] 를 개인적으로 공부하고 정리한 공간입니다. 잘못된 부분은 피드백 주시면 감사하겠습니다 :
'JavaScript' 카테고리의 다른 글
[JavaScript] DOM(Document Object Model)과 querySelector (0) | 2019.02.20 |
---|---|
[JavaScript] window 객체 (0) | 2019.02.19 |
[JavaScript] 함수선언식 함수표현식 호이스팅 (0) | 2019.02.19 |
[JavaScript] 조건문, 반복문(forEach / for...in / for...of)과 문자열 처리 (0) | 2019.02.15 |
[JavaScript]자바스크립트? (0) | 2019.02.15 |