js
JS - 변수의 선언
변수를 선언하고 변수 값을 담으려면 어떻게 해야할까요? name 이라는 변수를 선언하고 싶다면 변수명 앞에 var 나 let 를 붙여 주세요.
var 는 variable 이라는 뜻이므로 변수는 name이라는 뜻이 됩니다. 그러므로 변수명 앞에 var 를 붙이면 선언이 되고, 선언한 변수에 값을 넣으면 초기화(또는 할당)한다라고 표현합니다.
변수를 여러 개 선언하고 싶다면 콤마를 이용해 한꺼번에 선언할 수 있으며, 각 변수에 하나의 값이 저장됩니다.
let 도 변수를 선언할 때 사용됩니다. var 와 다른 점이 있다면 변수의 중복을 허락하지 않는다는 점입니다.
let 는 var 와 동일하게 변수를 할당할 수 있지만 중복으로 변수를 할당할 경우 아래와 같이 오류가 발생하게 됩니다.
기본 자료형
객체(Object) 형
위 예에서 s1 과 s2, 그리고 s3 과 s4 는 동일한 값이지만 비교 연산을 하면 다른 것으로 간주합니다. 또한 문자열이나 숫자형으로 형 변환은 할 수 없지만 boolean 과 같은 형 변환은 가능합니다.
그 외 상수에 심벌을 할당할 수도 있습니다. 심벌은 이렇게 변수에 값을 한번 할당하게 되면 고유한 값을 만들 수 있습니다.
undefined 와 null 은 값이 비어 있다는 것을 나타내지만 엄연히 다른 자료형입니다. null 또는 undefined를 검사할 때, 동등 연산자(==)와 일치 연산자(===)의 차이를 알아 둘 필요가 있습니다.
다음은 객체나 속성, 그리고 메소드에 관련한 예약어입니다.
var name;
or
let name;
var 는 variable 이라는 뜻이므로 변수는 name이라는 뜻이 됩니다. 그러므로 변수명 앞에 var 를 붙이면 선언이 되고, 선언한 변수에 값을 넣으면 초기화(또는 할당)한다라고 표현합니다.
// 변수를 선언만 하는 경우
var 변수명;
// 변수를 초기화(or 할당)한 경우
var 변수명 = "변수값";
변수를 여러 개 선언하고 싶다면 콤마를 이용해 한꺼번에 선언할 수 있으며, 각 변수에 하나의 값이 저장됩니다.
var a, b, c, d;
var a = "a", b = "b", c = "c", d = "d";
let 도 변수를 선언할 때 사용됩니다. var 와 다른 점이 있다면 변수의 중복을 허락하지 않는다는 점입니다.
let name = '하보니';
console.log(name);
// 결과: 하보니
let 는 var 와 동일하게 변수를 할당할 수 있지만 중복으로 변수를 할당할 경우 아래와 같이 오류가 발생하게 됩니다.
let name = "habony";
let name = "하보니";
console.log(name);
// 결과: Identifier 'name' has already been declared
변수 이름 규칙
변수의 이름을 정할 때 변수의 용도나 의미에 맞게 정의할 필요가 있습니다. 다시 말해 변수의 이름을 보면 이 변수가 어떤 역할의 변수인지 알 수 있도록 하여야 합니다.- 변수의 첫 글자에는 영문자이거나 언더라인 (_)으로 시작해야 함.
- 변수의 첫 글자에는 특수문자나 숫자로 시작할 수 없음.
- 예약어를 변수 이름으로 사용할 수 없음.
break, case, catch, continue, default 와 같은 예약어는 사용 불가 - 자바스크립트는 대소문자를 구분함.
데이터형 타입
자바스크립트에는 7가지 자료형이 존재하는데, 기본 자료형과 객체형이 그것입니다.기본 자료형
자료형 | 설 명 |
---|---|
Boolean | 불리언은 true 나 false 중 하나의 값을 가짐 |
Null | 널 문자는 개발자가 명시적으로 정의한 값 |
Undefined | 선언되지 않았거나 할당되지 않은 변수 |
Number | 산술이 가능한 숫자형 |
String | 따옴표로 감싼 문자열 |
Symbol | 심볼은 변경이 불가능한 값 |
객체(Object) 형
자료형 | 설 명 |
---|---|
function | 함수 |
array | 배열 |
date | 날짜 |
// 문자열형 타입
// 따옴표로 감싸주면 문자열이 됨.
var a = "문자열";
var b = '문자열';
// 숫자형 타입
var c = 100;
var d = 10.1234;
// 불리언형 타입
var e = true;
var f = false;
// 객체형 타입
var g = {};
var h = {name: "하보니", age:20};
var i = function() {};
var j = array();
심벌(Symbol)
심벌은 변수에 고유한 값을 할당하고, 이렇게 할당된 값은 상수와 같이 변경이 불가능하게 됩니다. 같은 값을 할당하였다고 하더라도 비교 연산자로 비교해보면 다르다는 것을 알 수 있습니다.<script>
var s1 = Symbol('habony');
var s2 = Symbol('habony');
console.log(s1 == s2);
// false
console.log(typeof s1);
// symbol
console.log(s1.toString());
// Symbol(habony)
var s3 = Symbol();
var s4 = Symbol();
console.log(s3 == s4);
// false
</script>
위 예에서 s1 과 s2, 그리고 s3 과 s4 는 동일한 값이지만 비교 연산을 하면 다른 것으로 간주합니다. 또한 문자열이나 숫자형으로 형 변환은 할 수 없지만 boolean 과 같은 형 변환은 가능합니다.
<script>
var sym = Symbol('habony');
console.log(typeof !!sym);
// boolean
</script>
그 외 상수에 심벌을 할당할 수도 있습니다. 심벌은 이렇게 변수에 값을 한번 할당하게 되면 고유한 값을 만들 수 있습니다.
undefined 과 null 타입
선언하지 않았거나 초기화하지 않았을 때는 undefined, 개발자가 명시적으로 이 변수의 값은 비어 있다는 것을 정의한 것을 null 이 됩니다.<script>
// undefined
var var_name;
document.write( var_name );
// 결과: undefined;
// null
var null_name = null;
document.write( null_name );
// 결과: null
</script>
undefined 와 null 은 값이 비어 있다는 것을 나타내지만 엄연히 다른 자료형입니다. null 또는 undefined를 검사할 때, 동등 연산자(==)와 일치 연산자(===)의 차이를 알아 둘 필요가 있습니다.
<script>
document.write( typeof null );
// 결과: "object"
document.write( typeof undefined );
// 결과: "undefined"
document.write( null === undefined );
// 결과: false
document.write( null == undefined );
// 결과: true
document.write( null === null );
// 결과: true
document.write( null == null );
// 결과: true
document.write( !null );
// 결과: true
document.write( isNaN(1 + null) );
// 결과: false
document.write( isNaN(1 + undefined) );
// 결과: true
</script>
예약어
예약어는 자바스크립트에서 특별한 목적으로 의미를 부여한 구문입니다. 모든 언어에서도 예약어 고유 목적 이외에 사용될 경우 프로그래밍 오류가 발생합니다. 따라서 예약어를 변수명, 라벨명, 함수이름으로 사용할 수 없습니다.- abstract
- arguments
- boolean
- break
- byte
- case
- catch
- char
- class
- const
- continue
- debugger
- default
- enum
- eval
- export
- extends
- false
- final
- finally
- float
- for
- function
- goto
- if
- implements
- import
- in
- instanceof
- int
- interface
- let
- long
- native
- protected
- public
- return
- short
- static
- super
- switch
- synchronized
- this
- throw
- throws
- transient
- true
- try
- typeof
- var
- void
- volatile
- while
- with
- yield
다음은 객체나 속성, 그리고 메소드에 관련한 예약어입니다.
- Array
- Date
- eval
- function
- hasOwnProperty
- Infinity
- isFinite
- isNaN
- isPrototypeOf
- length
- Math
- NaN
- name
- Number
- Object
- prototype
- String
- toString
- undefined
- valueOf
0 댓글