분류 전체보기

    원시 값과 객체의 비교

    원시 값과 객체의 비교

    참고할 페이지 - 유사 배열 객체, 이터러블, 래퍼 객체  원시 값 변경 불가능한 값읽기 전용 (값은 변경이 불가능한 값)불변성 (원시 값을 할당하는 변수는 재할당 이외에 변경할 수 없다.) 원시 값을 할당한 변수가 기억하는 메모리 주소를 통해 메모리 공간에 접근하면 원시 값에 접근할 수 있다. 즉, 원시 값을 할당한 변수는 원시 값 자체를 갖는다.  원시 값을 할당한 변수에 새로운 원시 값을 재할당하면 메모리 공간에 저장되어 있는 재할당 이전의 원시 값이 변경되는 것이 아니다.새로운 공간을 확보하고 재할당한 원시 값을 저장한 후, 변수는 새롭게 재할당한 원시 값을 가리킨다.이때 변수가 참조하던 메모리 공간의 주소가 바뀐다. 원시 값은 변경 불가원시 값 자체를 변경할 수 없다는 것이지 변수 값을 변경할 ..

    유사 배열 객체, 이터러블, 래퍼 객체

    유사 배열 객체, 이터러블, 래퍼 객체

    참고 : 원시 값의 문자열과 불변성자바스크립트 문자열은 유사 배열 객체이면서 이터러블이므로 배열과 유사하게 각 문자에 접근할 수 있다. 유사 배열 객체var str= 'string';//문자열은 유사 배열이므로 배열과 유사하게 인덱스를 사용해 각 문자에 접근할 수 있다.console.log(str[0]); //s// 원시 값인 문자열이 객체처럼 동작한다.console.log(str.length); // 6console.log(str.toUpperCase()); // STRING배열처럼 인덱스로 프로퍼티 값에 접근할 수 있고 length 프로퍼티를 갖는 객체를 말한다.문자열은 마치 배열처럼 인덱스를 통해 각 문자에 접근할 수 있다.Length 프로퍼티를 갖기 때문에 유사 배열 객체이고 for 문으로 순회할..

    함수 정의 (함수 선언문, 함수 표현식)

    함수 정의 (함수 선언문, 함수 표현식)

    💡 함수 선언문 : 표현식이 아닌 문 💡 함수 표현식 : 표현식인 문 함수 선언문 // 함수 선언문 function add(x, y) { return x + y; } // 함수 참조 // console.dir console.log와는 달리 함수 객체의 프로퍼티까지 출력한다. // 단, Node.js 환경에서는 console.log와 같은 결과가 출력된다. console.dir(add); // fadd(x, y) // 함수 호출 console.log(add(2, 5)); // 7 // 함수 선언문은 함수 이름을 생략할 수 없음 // 함수 선언문은 표현식이 아님 function (x, y) { return x + y; } // SyntaxError: Function statements require a fu..

    함수 호이스팅

    함수 호이스팅

    💡 함수 선언문 : 선언문 이전에 호출 가능, 함수 호이스팅, 함수 객체 초기화 💡 함수 표현식 : 표현식 이전에 호출 불가능, 변수 호이스팅, undefined 초기화 함수 생성 시점과 함수 호이스팅 함수 선언문 function add(x, y) { return x + y; } 함수 객체로 초기화 함수 정의 → 런타임 이전 함수 객체가 먼저 실행 (자바스크립트 엔진은 함수 이름과 동일한 이름의 식별자를 암묵적으로 생성, 생성된 함수 객체를 할당) 선언문 이전에 호출하면 함수 호이스팅에 의해 호출이 가능 함수 표현식 var sub = function add(x, y) { return x + y; } undefined로 초기화 변수 선언은 런타임 이전에 실행되어 undefined로 초기화 변수 할당문의 값..