세로형
Recent Posts
Recent Comments
Link
11-22 17:53
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

꿈 많은 사람의 이야기

자바스크립트 object, null, undefined, 함수(function) 본문

javascript

자바스크립트 object, null, undefined, 함수(function)

이수진의 블로그 2017. 8. 16. 08:45
반응형
728x170
object

자바스크립트에는 object로 데이터를 관리할 수도 있다.
name:value 값으로  데이터를 저장할 수 있다.

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};

위와 같이 말이다.


예제를 보자


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<!DOCTYPE html>
<html>
<body>
 
<p id="demo">
 
</p>
<script>
var person = {
    firstName: "John",
    lastName : "Doe",
    id       : 5566,
    fullName : function() {
       return this.firstName +" "+ this.lastName;
    }
};
document.getElementById("demo").innerHTML = person.fullName();
var aaa = person.fullName();
alert(aaa);
</script>
</body>
</html>
Colored by Color Scripter


person 변수에 object 객체를 담는다.
그리고 값을 가져올 때는 변수명.name 으로 value를 가지고 올 수 있다.

또한 object 변수 안에 함수도 넣을수 있다. 이것은
person 이라는 변수가 function을 가리키고 있는 구조이다(java 참조변수와 비슷한)

그래서 해당 되는 값을 aaa에게 주면 aaa도 똑같이 object의 함수를 가리키게 된다.
이런 특징이 있는 것이 object이다.

undefined, null

undefined는 자바스크립트에서 값이 없는 것을 뜻한다. 또한 type도 없다는 것을 뜻한다.
var person;   

이렇게 하면 value는 undefined이다.
person = undefined; 
또한 이렇게 설정할 수도 있다.

var car = "";   
처럼 아예 빈 값으로 해놓는 것도있다. 이것은 null도 아니고 undefined이 아니다.
value는 "" 이고, type은 String인 정상적인 값이다.

그럼 null은?
null은 아무것도 아니다라는 뜻이다. 즉 존재하지 않는다라는 뜻인데 undefined하고는 큰 차이점이 존재한다. 아래를 보자

var person = null;         // Value 는null, type은object
즉 값이 존재하지 않지만 type은 object 타입이다!
var person = undefined; 
하지만 이것은 value는 undefined이지만 type도 undefined이다.

typeof undefined           // undefined
typeof null                // object
null === undefined         // false
null == undefined          // true


이것이 큰 차이점이다!!
타입은 다르지만 값은 같다.

함수


자바스크립트에서 함수는 
function 함수이름(매개변수)
{

}

로 존재한다. 리턴 타입이 존재하지 않으며 이름과 매개변수만 존재한다.
하지만 그렇다고 리턴을 못하는 것이 아니다.
var x = myFunction(43);      

function myFunction(a, b) {
    return a * b;               
}
결과는
12

가 나오게 된다.
즉 리턴 타입은 따로 정의하지 않지만 return문을 써서 받을 수 있다.



반응형
그리드형
Comments