'분류 전체보기'에 해당되는 글 91건

내부함수 : 자바스크립트는 함수 안에 또 다른 함수를 선언할 수 있다. 내부함수는 외부함수의 지역변수에 접근할 수 있다. 동일한 외부함수 안에서 만들어진 내부함수나 메소드는 외부함수의 지역변수를 공유한다.
예제
//
function outter(){
 function inner(){
  var title='coding everybody';
  alert(title);
 }
 inner();
}
outter();

 

//
function outter(){
 var title='coding everybody';
 function inner(){
  alert(title);
 }
 inner();
}
outter();

 

클로저 :내부함수가 외부함수의 지역변수에 접근할 수 있고, 외부함수는 지역변수를 사용하는 내부함수가 소멸될 때까지 소멸되지 않는 특성을 의미한다. 내부함수가 외부함수의 맥락(context)에 접근할 수 있는 것이다. 외부함수의 실행이 끝나서 외부함수가 소멸된 후에도 내부함수가 외부함수의 변수에 접근할 수 있다. 또한 객체의 메소드에서 사용할 수 있다.
예제
//
function outter(){
 var title='coding everybody';
 return function() {
  alert(title);
 }
}
inner=outter();
inner();

 

//
function factory_movie(title){
    return {
        get_title : function (){
            return title;
        },
        set_title : function(_title){
            title = _title
        }
    }
}
ghost = factory_movie('Ghost in the shell');
matrix = factory_movie('Matrix');
 
alert(ghost.get_title());
alert(matrix.get_title());
 
ghost.set_title('공각기동대');
 
alert(ghost.get_title());
alert(matrix.get_title());

 

클로저 응용
// 에러코드
var arr = []
for(var i = 0; i < 5; i++){
    arr[i] = function(){
        return i;
    }
}
for(var index in arr) {
    console.log(arr[index]());
}

 

함수가 함수 외부의 컨텍스트에 접근할 수 있을것 같지만 결과는 아래와 같이 나온다.

 

 

위 코드는 아래와 같이 정상 코드로 변경해야 한다.

 

// 정상코드
var arr = []
for(var i = 0; i < 5; i++){
    arr[i] = function(id) {
        return function(){
            return id;
        }
    }(i);
}
for(var index in arr) {
    console.log(arr[index]());
}

 

'Programming > Javascript' 카테고리의 다른 글

함수의 호출  (0) 2018.01.03
arguments, 매개변수의 수  (0) 2018.01.03
값으로써의 함수와 콜백, 그리고 비동기 처리  (0) 2018.01.03
유효범위  (0) 2018.01.02
모듈, 라이브러리  (0) 2018.01.02
블로그 이미지

꼴통보안인

,

값으로의 함수 : 자바스크립트에서는 함수도 객체, 일종의 값이다.
예제
//
function a(){}

 

위 예제에서 함수 a는 변수 a에 담겨진 값이다. 또한 함수는 객체의 값으로 포함될 수 잇다. 이렇게 객체의 속성 값으로 담겨진 함수를 메소드라 부른다.

 

//
a = {
 b:function(){
 }
};

 

함수는 값이기 때문에 다른 함수의 인자로 전달될 수도 있다.

 

//
function cal(func,num){
 return func(num)
}

function increase(num){
 return num+1
}

function decrease(num){
 return num-1
}

alert(cal(increase, 1));
alert(cal(decrease, 1));

 

아래 예제를 통해 함수는 함수의 리턴값으로도 사용 가능한 것을 알 수 있다.


예제
function cal(mode){
 var funcs={
  'plus' : function(left,right){return left+right},
  'minus' : function(left,right){return left-right}
 }
 return funcs[mode];
}

alert(cal('plus')(2,1));
alert(cal('minus'))2,1));

 

아래 예제를 통해 함수는 배열값으로도 사용 가능한 것을 알 수 있다.

예제
var process = [
 function(input){return input+10;},
 function(input){return input*input;},
 function(input){return input/2;}
];

var input=1;

for(var i=0;i<process.length;i++){
 input = process[i](input);
}

alert(input);

 

콜백 : 함수가 수신하는 인자가 함수인 경우. 콜백은 비동기 처리에서도 유용하게 사용된다.


예제
// 문자로 정렬
var numbers = [20, 10, 9,8,7,6,5,4,3,2,1];
alert(numbers.sort(sortNumber)); // [1,10,2,20,3,4,5,6,7,8,9]

 

// 배열 정렬
function sortNumber(a,b){
    // 위의 예제와 비교해서 a와 b의 순서를 바꾸면 정렬순서가 반대가 된다.
    return b-a;
}
var numbers = [20, 10, 9,8,7,6,5,4,3,2,1];
alert(numbers.sort(sortNumber)); // array, [20,10,9,8,7,6,5,4,3,2,1]

 

비동기 처리

예제
//datasource.json.js
{"title":"JavaScript","author":"egoing"}

//demo1.html
<!DOCTYPE html>
<html>
<head>
<script src="jquery-3.2.1.min"></script>
</head>
<body>
<script type="text/javascript">
    $.get('http://localhost/javascript/datasource.json.js', function(result){
        console.log(result);
    }, 'json');
</script>
</body>
</html>

 

'Programming > Javascript' 카테고리의 다른 글

arguments, 매개변수의 수  (0) 2018.01.03
내부함수와 클로저  (0) 2018.01.03
유효범위  (0) 2018.01.02
모듈, 라이브러리  (0) 2018.01.02
객체  (0) 2018.01.02
블로그 이미지

꼴통보안인

,

유효범위 : 변수의 수명을 의미
예시

var vscope = 'global';
function fscope(){
    alert(vscope);
}
fscope();

함수 밖에서 변수를 선언하면 그 변수는 전역변수가 된다. 전역변수는 에플리케이션 전역에서 접근이 가능한 변수다. 다시 말해서 어떤 함수 안에서도 그 변수에 접근 할 수 있다. 그렇기 때문에 함수 fscope 내에서 vscope를 호출 했을 때 함수 밖에서 선언된 vscope의 값 global이 반환된 것이다. 아래 예제를 보자. 결과는 ‘함수안 local’과 ‘함수밖 global’이 출력된다.

 

//

var vscope = 'global';
function fscope(){
    var vscope = 'local';
    alert('함수안 '+vscope);
}
fscope();
alert('함수밖 '+vscope);


즉 함수 안에서 변수 vscope을 조회(4행) 했을 때 함수 내에서 선언한 지역변수 vscope(3행)의 값인 local이 사용되었다. 하지만 함수 밖에서 vscope를 호출(7행) 했을 때는 전역변수 vscope(1행)의 값인 global이 사용된 것이다. 즉 지역변수의 유효범위는 함수 안이고, 전역변수의 유효범위는 에플리케이션 전역인데, 같은 이름의 지역변수와 전역변수가 동시에 정의되어 있다면 지역변수가 우선한다는 것을 알 수 있다. 아래 예제를 보자. 결과는 모두 local이다.

 

//

var vscope = 'global';
function fscope(){
    vscope = 'local';
    alert('함수안'+vscope);
}
fscope();
alert('함수밖'+vscope);


함수밖에서도 vscope의 값이 local인 이유는 무엇일까? 그것은 함수 fscope의 지역변수를 선언할 때 var를 사용하지 않았기 때문이다. var를 사용하지 않은 지역변수는 전역변수가 된다. 따라서 3행은 전역변수의 값을 local로 변경하게 된 것이다. var을 쓰는 것과 쓰지 않는 것의 차이를 이해해야 한다.

전역변수는 사용하지 않는 것이 좋다. 여러가지 이유로 그 값이 변경될 수 있기 때문이다. 함수 안에서 전역변수를 사용하고 있는데, 누군가에 의해서 전역변수의 값이 달라졌다면 어떻게 될까? 함수의 동작도 달라지게 된다. 이것은 버그의 원인이 된다. 또한 함수를 다른 에플리케이션에 이식하는데도 어려움을 초래한다. 함수의 핵심은 로직의 재활용이라는 점을 상기하자. 변수를 선언할 때는 꼭 var을 붙이는 것을 습관화해야 한다. 전역변수를 사용해야 하는 경우라면 그것을 사용하는 이유를 명확히 알고 있을 때 사용하도록 하자.

 

지역변수 사용 이유 : 전역변수 사용시 로직에서 사용하는 같은 이름의 변수값을 변경시켜서 의도하지 않은 문제를 발생시킴.


예제
function a (){
    var i = 0; //결과 01234
    // i=0; // 결과 무한반복
}
for(var i = 0; i < 5; i++){
    a();
    document.write(i);
}

 

전역변수 사용하는 법 : 불가피하게 전역변수를 사용해야 하는 경우는 하나의 객체를 전역변수로 만들고 객체의 속성으로 변수를 관리하는 방법을 사용

예제
MYAPP = {}
MYAPP.calculator = {
    'left' : null,
    'right' : null
}
MYAPP.coordinate = {
    'left' : null,
    'right' : null
}
 
MYAPP.calculator.left = 10;
MYAPP.calculator.right = 20;
function sum(){
    return MYAPP.calculator.left + MYAPP.calculator.right;
}
document.write(sum());


전역변수를 사용하고 싶지 않다면 아래와 같이 익명함수를 호출함으로서 이러한 목적을 달성할 수 있다.

 

//

(function(){
    var MYAPP = {}
    MYAPP.calculator = {
        'left' : null,
        'right' : null
    }
    MYAPP.coordinate = {
        'left' : null,
        'right' : null
    }
    MYAPP.calculator.left = 10;
    MYAPP.calculator.right = 20;
    function sum(){
        return MYAPP.calculator.left + MYAPP.calculator.right;
    }
    document.write(sum());
}())

 

유효범위의 대상 : 자바스크립트는 함수에 대한 유효범위만을 제공함.

예제
// 자바스크립트
for(var i=0; i<1; i++){
 var name = 'coding everybody';
}
alert(name);  // name 변수 출력됨.

 

// 자바
for(int i=0; i<10; i++){
 String name="coding everybody";
}
System.out.println(name);  // name 변수 출력 안됨.

 

정적 유효범위 : 자바스크립트는 함수가 선언된 시점에서의 유효범위를 갖는다. 이런 방식을 정적유효범위 혹은 렉시컬이라고 한다.

예제
var i=5;

function a(){
 var i=10;
 b();
}

function b(){
 document.write(i);
}
a();

'Programming > Javascript' 카테고리의 다른 글

내부함수와 클로저  (0) 2018.01.03
값으로써의 함수와 콜백, 그리고 비동기 처리  (0) 2018.01.03
모듈, 라이브러리  (0) 2018.01.02
객체  (0) 2018.01.02
배열  (0) 2018.01.02
블로그 이미지

꼴통보안인

,

모듈 : 순수한 자바스크립트에서는 모듈이라는 개념이 존재하지 않지만, 구동되는 호스트환경에 따라서 서로 다른 모듈화 방법이 제공되고 있다.

 

예제
// 모듈 없는 스크립트
<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8"/>
</head>
<body>
 <script>
  function welcome(){
   return 'Hello world';
  }
  alert(welcome());
 </script>
</body>
</html>

 

// 모듈 있는 스크립트
// moduleexample.html
<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8"/>
 <script src="greeting.js"></script>
</head>
<body>
 <script>
  function welcome(){
   return 'Hello world';
  }
  alert(welcome());
 </script>
</body>
</html>

 

// greeting.js
function welcome(){
 return 'Hello world';
}

 

라이브러리 : 모듈과 비슷한 개념. 모듈이 프로그램을 구성하는 작은 부품으로서의 로직을 의미한다면 라이브러리는 자주 사용되는 로직을 재사용하기 편하게 잘 정리한 일련의 코드들의 집합을 의미.

jQuery 사용방법 : jQuery 홈페이지(http://jquery.com)에서 파일을 다운받는다. -> jQuery 메뉴얼(http://api.jquery.com)을 이용해서 사용법을 파악한다.

예제
// 사용 전
<!DOCTYPE html>
<html>
<head>
 <script type="text/javascript"></script>
</head>
<body>
 <ul id="list">
  <li>empty</li>
  <li>empty</li>
  <li>empty</li>
  <li>empty</li>
 </ul>
</body>
</html>

 

// 사용 후
<!DOCTYPE html>
<html>
<head>
 <script type="text/javascript" src="jquery-3.2.1.min.js"></script>
</head>
<body>
 <ul id="list">
  <li>empty</li>
  <li>empty</li>
  <li>empty</li>
  <li>empty</li>
 </ul>
 <input type="button" value="execute" id="execute_btn"/>
 <script type="text/javascript">
  $('#execute_btn').click(function(){
   $('list li').text('coding everybody');
  })
 </script>
</body>
</html>

'Programming > Javascript' 카테고리의 다른 글

값으로써의 함수와 콜백, 그리고 비동기 처리  (0) 2018.01.03
유효범위  (0) 2018.01.02
객체  (0) 2018.01.02
배열  (0) 2018.01.02
함수  (0) 2018.01.02
블로그 이미지

꼴통보안인

,

객체

Programming/Javascript 2018. 1. 2. 15:48

객체는 현실의 사물을 프로그래밍에 반영한것이다.

 

  - 객체의 생성
// ex 1
var age = {'gildong':11, 'soonsin':10, 'sejong':9};

alert(age['gildong']);
alert(age.gildong);

 

위의 age라는 객체는 gildong, soonsin, sejong이라는 속성(키)이 있으며 값은 11, 10, 9로 되어있다. 속성은 문자열만 가능하며 따옴표가 없어도 된다. 하지만 속성 값은 어떤 값이라도 상관 없다. 속성값이 함수인 것을 메소드라고 부른다.

 

// ex 2
var age = {};
age['gildong']=11;
age['soonsin']=10;
age['sejong']=9;

alert(age['gildong']);
alert(age.gildong);

 

// ex 3
var age = {'gildong':11, 'soonsin':10, 'sejong':9};
for(key in age){
 document.write("key:"+key"+" value:"+age[key]+"<br />");
}

 

// ex 4
var age = {
    'list': {'gildong':11, 'soonsin':10, 'sejong':9};,
    'show' : function(){
        for(var name in this.list){
            document.write(name+':'+this.list[name]+"<br />");
        }
    }
};
age.show();

'Programming > Javascript' 카테고리의 다른 글

유효범위  (0) 2018.01.02
모듈, 라이브러리  (0) 2018.01.02
배열  (0) 2018.01.02
함수  (0) 2018.01.02
반복문(while, for)  (0) 2018.01.02
블로그 이미지

꼴통보안인

,

배열

Programming/Javascript 2018. 1. 2. 15:43

배열 : 연관된 데이터를 모아서 통으로 관리하기 위해서 사용하는 데이터 타입
예제
// ex 1
var member = ['gildong', 'soonsin', 'sejong']
alert(member[0]);  // 결과 : gildong
alert(member[1]);  // 결과 : soonsin
alert(member[2]);  // 결과 : sejong

 

// ex 2
function get_members(){
 return ['gildong', 'soonsin', 'sejong'];
}
var members = get_members();
document.write(members[0]);  // 결과 : gildong
document.write(members[1]);  // 결과 : soonsin
document.write(members[2]);  // 결과 : sejong

 

// ex 3
function get_members(){
 return ['gildong', 'soonsin', 'sejong'];
}
var members = get_members();
for(i=0;i<members.length;i++){
 document.write(members[i]);
 document.write('<br />');
}

 

// ex 4
var li = ['a','b','c','d','e'];
li.push(['f']);  // push 함수 : 인자로 전달된 값을 추가하는 함수. 여러개 불가.
alert(li);

 

// ex 5
var li = ['a','b','c','d','e'];
li = li.concat(['f','g']);  // concat 함수 : 인자로 전달된 값을 추가하는 함수. 여러개 가능.
alert(li);

 

// ex 6
var li = ['a','b','c','d','e'];
li.unshift(['z']);  // unshift 함수 : 인자로 전달된 값을 배열의 첫번째 값으로 추가하는 함수.
alert(li);

 

// ex 7
var li = ['a','b','c','d','e'];
li.splice(2,0,'B');  // splice 함수 : 인자로 전달된 값을 배열의 원하는 순서의 값으로 추가하는 함수.
alert(li);

 

// ex 8
var li = ['a','b','c','d','e'];
li.shift();  // shift 함수 : 배열의 첫번째 값을 제거하는 함수.
alert(li);

 

// ex 9
var li = ['a','b','c','d','e'];
li.pop();  // shift 함수 : 배열의 마지막 값을 제거하는 함수.
alert(li);

 

// ex 10
var li = ['b','a','c','d','e'];
li.sort();  // sort 함수 : 배열을 정렬하는 함수.
alert(li);

'Programming > Javascript' 카테고리의 다른 글

모듈, 라이브러리  (0) 2018.01.02
객체  (0) 2018.01.02
함수  (0) 2018.01.02
반복문(while, for)  (0) 2018.01.02
조건문(if, else, elseif), 논리연산자  (0) 2018.01.02
블로그 이미지

꼴통보안인

,

함수

Programming/Javascript 2018. 1. 2. 15:25

함수 : 하나의 로직을 재실행 할 수 있도록 하는 것. 코드의 재사용성을 높여줌.
문법
function 함수명 ([인자...[,인자]]){
 코드
 return 반환값
}

 

예제
// ex 1
function numbering(){
 var i=0;
 while(i<10){
  document.write(i+"<br />");
  i+=1;
 }
}

numbering();

 

// ex 2
function get_member(){
 return 'gildong';
}

alert(get_member());

 

// ex 3
fuction set_number(arg){
 return arg;
}

alert(set_number(1));

 

// ex 4
numbering = function (){
 i=0;
 while(i<10){
  document.write(i);
  i++;
 }
}

numbering();

 

'Programming > Javascript' 카테고리의 다른 글

객체  (0) 2018.01.02
배열  (0) 2018.01.02
반복문(while, for)  (0) 2018.01.02
조건문(if, else, elseif), 논리연산자  (0) 2018.01.02
변수, 연산자, 비교연산자  (0) 2018.01.02
블로그 이미지

꼴통보안인

,

반복문 : 반복적인 작업을 대행하기 위해 만듬.
  - while 문법
while (조건){
    반복해서 실행할 코드
}

 

  - for 문법
for(초기화; 반복조건; 반복이 될 때마다 실행되는 코드){
    반복해서 실행될 코드
}

 

반복문의 제어 : continue, break를 사용한다.
예제
for(var i = 0; i<10; i++){
 if(i===5){
  break;
 }
 document.write('coding everyday'+i+'<br />');
}

 

for(var i = 0; i<10; i++){
 if(i===5){
  coutinue;
 }
 document.write('coding everyday'+i+'<br />');
}

'Programming > Javascript' 카테고리의 다른 글

배열  (0) 2018.01.02
함수  (0) 2018.01.02
조건문(if, else, elseif), 논리연산자  (0) 2018.01.02
변수, 연산자, 비교연산자  (0) 2018.01.02
주석, 숫자, 문자/문자열, 문자 연산  (0) 2017.12.29
블로그 이미지

꼴통보안인

,

조건문 : if로 시작한다. if 뒤의 괄호에 조건이 오고, 조건이 될수 있는 값은 boolean이다.
if문 예시
//ex 1
if(true){
    alert('result : true');
}

 

//ex 2
if(false){
    alert('result : true');
}

 

//ex 3
if(true){
    alert(1);
    alert(2);
    alert(3);
    alert(4);
}
alert(5);

 

//ex 4)
if(false){
    alert(1);
    alert(2);
    alert(3);
    alert(4);
}
alert(5);

 

if, else 예시
//ex 1)

if(true){
    alert(1);
} else {
    alert(2);
}

 

//ex 2)

if(false){
    alert(1);
} else {
    alert(2);
}

 

else if 예제
//ex 1)
if(false){
    alert(1);
} else if(true){
    alert(2);
} else if(true){
    alert(3);
} else {
    alert(4);
}
// 결과 : 2

 

//ex 2)
if(false){
    alert(1);
} else if(false){
    alert(2);
} else if(true){
    alert(3);
} else {
    alert(4);
}
//결과 3

 

//ex 3
if(false){
    alert(1);
} else if(false){
    alert(2);
} else if(false){
    alert(3);
} else {
    alert(4);
}

 

조건문 응용 예시
// ex 1
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
</head>
<body>
    <script>
        var id = prompt('아이디를 입력해주세요.')
        if(id=='gildong'){
            alert('아이디가 일치 합니다.')
        } else {
            alert('아이디가 일치하지 않습니다.')
        }
    </script>
</body>
</html>

 

// ex 2
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
</head>
<body>
    <script>
        var id = prompt('아이디를 입력해주세요.');
        if(id=='gildong'){
            var password = prompt('비밀번호를 입력해주세요.');
            if(password==='111111'){
                alert('로그인 했습니다.');
            } else {
                alert('비밀번호가 일치하지 않습니다.');
            }
        } else {
            alert('아이디가 일치하지 않습니다.');
        }
    </script>
</body>
</html>

 

논리연산자 : 조건문을 좀 더 간결하고 다양한 방법으로 구사할 수 있도록 도와준다.
  - && : 좌항과 우항이 모두 참일때 참이된다.
    예제
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
</head>
<body>
    <script>
        id = prompt('아이디를 입력해주세요.');
        password = prompt('비밀번호를 입력해주세요.');
        if(id=='gildong' && password=='111111'){
            alert('인증 했습니다.');
        } else {
            alert('인증에 실패 했습니다.');
        }
    </script>
</body>
</html>

 

  - || : 좌항과 우항 중에 하나만 참이면 참이다.
    예제
id = prompt('아이디를 입력해주세요.');
password = prompt('비밀번호를 입력해주세요.');
if((id==='gildong' || id==='soonsin' || id==='sejong') && password==='111111'){
    alert('인증 했습니다.');
} else {
    alert('인증에 실패 했습니다.');
}

'Programming > Javascript' 카테고리의 다른 글

함수  (0) 2018.01.02
반복문(while, for)  (0) 2018.01.02
변수, 연산자, 비교연산자  (0) 2018.01.02
주석, 숫자, 문자/문자열, 문자 연산  (0) 2017.12.29
Javascript란?  (0) 2017.12.29
블로그 이미지

꼴통보안인

,

변수 : 값을 담는 컨테이너로 값을 유지할 필요가 있을때 쓴다. 여기에 담겨진 값은 다른 값으로 바꿀 수 있다.

예시
  - var a = 1;
    alert(a+1);  // 결과 : 2
  - var first = "coding";
    alert(first+" everyday");  // 결과 : coding everyday
  - var a = 'coding', b = ' everybody';
    alert(a + b);  // 결과 : coding everyday

 

연산자 : 값에 대해 어떤 작업을 컴퓨터에게 지시하기 위한 기호.
예시
  - a=1

 

비교 연산자 : 주어진 값들을 비교하는 연산자로 결과는 true나 false중 하나.
  - 동등 연산자(==) : 좌항과 우항을 비교해서 서로 값이 같으면 true, 다르면 false.
    예시
      * alert(1==2);  // 결과 : false
      * alert(1==1);  // 결과 : true
      * alert("one"=="two");  // 결과 : false
      * alert("one"=="one");  // 결과 : true


  - 일치 연산자(===) : 좌항과 우항이 정확하게 같을때 true, 다르면 false.
    예시
      * alert(1=='1');  // 결과 : true
      * alert(1==='1');  // 결과 : false
      * alert(null==undefined);  // 결과 : true
      * alert(null===undefined);  // 결과 : false
      * alert(true==1);  // 결과 : true
      * alert(true===1);  // 결과 : false
      * alert(true=='1');  // 결과 : true
      * alert(true==='1');  // 결과 : false
      * alert(0===-0);  // 결과 : true
      * alert(NaN===NaN);  // 결과 : false

 

참고 : null(값이 없다)과 undefined(값이 정의되지 않았다)는 없다는 데이터형. NaN은 0/0과 같은 연산의 결과로 만들어지는 특수한 데이터형으로 숫자가 아니라는 뜻.

       ==와 ===의 차이점(http://dorey.github.io/JavaScript-Equality-Table/)

 

  - != : 부정을 의미
    예시
      * alert(1!=2);  // true
      * alert(1!=1);  // false
      * alert("one"!="two");  // true
      * alert("one"!="one");  // false

  - !== : 정확하게 같지 않다는 의미

  - >, >=, <, <= : 좌항이 크다, 좌항이 크거나 같다, 우항이 크다, 우항이 크거나 같다.

 

'Programming > Javascript' 카테고리의 다른 글

함수  (0) 2018.01.02
반복문(while, for)  (0) 2018.01.02
조건문(if, else, elseif), 논리연산자  (0) 2018.01.02
주석, 숫자, 문자/문자열, 문자 연산  (0) 2017.12.29
Javascript란?  (0) 2017.12.29
블로그 이미지

꼴통보안인

,