자바스크립트

    [자바스크립트] call by value vs call by reference

    call by value vs call by reference call by valueargument로 value(값)이 넘어온다.이때, 넘어올 때는 '복사된 값'이 넘어온다.caller(호출하는 자)가 인자를 복사해서 넘겨줬기 때문에 callee(호출된 자)에서 받은 인자를 아무리 수정하더라도 caller는 영향 받지 않음예시var a = 1; var func = function(b) { // callee b = b + 1; } func(a); // caller console.log(a); // 1기본적으로 자바스크립트는 원시값을 arguments로 넘겨주면 call by value로 작동이처럼 caller가 1을 argument로 넘겨줘도 복사되어 넘어오기 때문에 callee가 어떤 연산을 하더라도 ..

    [자바스크립트] 4. 프로토타입 & 배열

    프로토타입자바스크립트의 모든 객체는 '자신의 부모 역할을 하는 객체와 연결'되어 있음(객체지향의 상속 개념과 같은 것)이러한 부모 객체를 자바스크립트에서는 '프로토타입'이라고 부른다.console.dir(foo); 객체 리터럴로 생성한 프로퍼티와 함께 proto 프로퍼티가 존재함이 프로퍼티가 foo객체의 부모 프로토타입 객체를 가리킴모든 객체는 자신의 프로토타입을 가리키는 [[Prototype]]이라는 숨겨진 프로퍼티를 가진다. 배열다른 언어와 달리 배열의 크기를 지정하지 않아도 된다. (굿..)어떤 위치에 어느 타입의 데이터를 저장하더라도 에러가 발생하지 않는다. (구웃..) 배열 리터럴var arr = ['a', 'b', 'c']; console.log(arr[0]); // a배열 내 인덱스값을 넣어..

    [자바스크립트] 3. 객체

    객체 생성객체 생성에는 3가지 방법이 있다.Object() 객체 생성자 함수 이용(기본 제공)var foo = new Object(); // Object()를 이용해 빈 객체 생성 ​ foo.name = 'foo'; // 객체 프로퍼티 생성 foo.age = 25; foo.gender = 'male'; ​ console.log(typeof foo); // object (객체니까!) console.log(foo); // { name: 'foo', age:25, gender: 'male'}객체 리터럴 이용객체를 생성하는 표기법을 의미var foo = { name : 'foo', age : 25, gender: 'male' }; ​ console.log(typeof foo); // object (객체니까!) ..

    [자바스크립트] 2. 데이터 타입

    데이터 타입 기본 타입숫자(number)자바스크립트는 하나의 숫자형만 존재 (int, float 등 모두 number!)64비트 부동 소수점 형태로 저장 (double과 유사하다고 생각하면 된다.)var num = 5 / 2; ​ console.log(num); // 2.5 console.log(Math.floor(num)); // 2 문자열(string)' '나 " "로 문자열 생성 가능한 번 정의된 문자열은 변하지 않는다.var str = 'test'; // 문자열 생성 console.log(str[0], str[1], str[2]); // tes ​ str[0] = 'T'; // 배열로 변경 시도? console.log(str); // test이처럼 배열로 문자열 변경을 시도해도 변하지 않는다.불린..

    [자바스크립트] 1. 소개

    자바스크립트(javascript)(학습 자료 : 인사이트 자바스크립트(2014년)) 소개자바스크립트는 웹 브라우저에서 동작하는 스크립트 언어다.웹이 점점 발전하면서, 웹 아키텍처에 변화가 일어났고 서버에서 담당하던 역할들이 상당 부분 웹 브라우저로 이동했다. 이 중심에는 자바스크립트가 있었고, jQuery가 등장하여 쉽게 DOM을 핸들링하게 되면서 폭발적인 성장을 보이게 된다.현재는 브라우저 기반의 자바스크립트 리이브러리뿐만 아니라, Node.js와 같은 서버 기반의 환경에서 동작할 수 있는 라이브러리도 쏟아져 나오고 있다. 이제 자바스크립트만으로 클라이언트와 서버 개발을 동시에 할 수 있는 수준에 도달한 것이다. 핵심 개념 요약앞으로 배우게 될 자바스크립트에서 핵심적인 개념들 객체자바스크립트의 거의 모..

    [자바스크립트] ES2015+ 요약 정리

    ES2015+의 등장 기존의 자바스크립트 문법에 다른 언어의 장점들을 더한 편리한 기능들이 많이 추가되었습니다. 이 중에 노드에서 활용도가 높은 부분에 대해서 알아보도록 합시다. (자료는 조현영님의 Node.js 교과서를 통해 공부하고 정리했습니다) 1. const, let 보통 자바스크립트에서 변수를 선언할 때 var를 이용합니다. 하지만 이제 var는 const와 let으로 대체할 것입니다. const와 let은 함수 스코프를 가지는 var와는 달리 블록 스코프를 갖습니다. 블록 스코프는 if, while, for, function 등에서 사용하는 중괄호에 속하는데요. 따라서 const와 let을 이 중괄호 안에서 사용하게 된다면, 그 스코프 범위 안에서만 접근이 가능합니다. 이를 통해 호이스팅에 관..

    [자바스크립트] 문제를 통한 개념잡기 - 2

    2. 다음 값은? 1234567891011121314151617181920function abc() { var a = ‘bbb’; console.log(a) // ---- 1 function c() { console.log(a); // --- 2 (function() { console.log(a); // --- 3 a = ‘ccc’; })(); var a; console.log(a) // ---4 } function d() { console.log(a); // --- 5 } c(); a = ‘ddd’; d();};abc();Colored by Color Scriptercs 정답 (스크롤하면 나옵니다) 1. bbb2. undefined3. undefined4. ccc5. ddd 이 문제는 호이스팅과 관련된..

    [자바스크립트] 문제를 통한 개념잡기 - 1

    if(2 == ___ ) 중에 밑줄에 값이 들어올때 true가 아닌 경우? 1. Number(2) 2. Number(2).valueOf()3. Number(2).toString() 4. 2.valueOf()5. 2 .toString() 다음 중 true가 아닌 건 무엇일까요? 한번씩 꼭 생각해본 후 답을 체크해보세요! 답 : 4번 (스크롤 하시면 답 보입니다) ※ ==와 === 차이는? ===는 '일치'기본형 : String, number, boolean, undefined, null, symbol참조형 : 배열, 객체 등 기본형일 때는 '형'과 '값'이 일치해야 True를 반환한다.( 즉, 1 === '1'은 각각 숫자와 문자열이기 때문에 False ) 참조형일 때는 같은 레퍼런스여야 True를 반환한..