Front-End/JavaScript
원시 타입 (primitive type) vs 객체 타입 (reference type) 으로 비교하는 이유 * 원시 값 / primitive type 객체 타입 / object / reference type 값 변경 불가능한 값(immutable value) 변경 가능한 값(mutable value) 변수(확보된 메모리 공간)에 할당시 변수에 실제 값이 저장 변수에 참조 값이 저장 해당 값의 변수를 다른 변수에 할당하면 원본의 값이 복사되어 전달 pass by value 원본의 참조 값이 복사되어 전달 pass by reference 원시값 - 원시 값은 변경 불가능한 값(immutable value) 이며 다르게 표현하면 읽기 전용 값이다. - "원시 값은 변경 불가능하다"는 원시 값 자체를 변경할 수..
Math.random(); 0 이상 1 미만의 구간에서 근사적으로 균일한(approximately uniform) 부동소숫점 의사난수를 반환 Math.floor(Math.random()*10); //floor 소수점 자리 버림 //곱해지는 숫자 10은 10미만의 숫자를 보기 위해 // 다른 기준이 있으면 변경 //*3 + 2 는 2~4까지 즉, //랜덤 숫자 머신 function randomNum(min, max) { return Math.floor(Math.random() * (max - min) + min); } //로또 6개 랜덤으로 뽑기 function lottoNum() { let result = []; for (let i = 0; i < 6; i++) { let num = randomNum(1..
this : 함수를 호출한 객체; 함수를 호출하는 객체를 가르킨다. aboutThis를 호출한 객체가 전역개체라 window가 나온 window가 나온 이유는 전역객체이고 aboutThis도 전역에 있기 때문에 this가 window로 접근 aboutThis 함수를 호출한게 window 객체 this는 함수 안에 있다. //클래스 인스턴스로서의 객체 '안녕하세요' // 리터럴 표현. 리터럴이란 코드에 보여지는 그대로를 말한다. 자바스크립트 엔진이 보이는 그대로 문자열로 받아들인다. new String('안녕하세요') // 원래 이렇게 생성해야한다 let str = new String('안녕하세요') // 생성자 함수를 통해 만듦. // 생성자 함수를 통해서 만들어진 결과물을 인스턴스 라고 한다. 여기서 ..
타입 변환? 기존 원시 값을 사용해 다른 타입의 새로운 원시 값을 생성하는 것 명시적 타입 변환 (explicit coercion) 개발자가 의도적으로 값의 타입을 변환하는 것(코드에서 개발자의 의도가 명백히 드러난다.) 문자열 타입으로 변환 Object.prototype.toString 메소드를 사용하는 방법 String 생성자 함수를 new 연산자 없이 호출하는 방법 + '' 문자열 연결 연산자를 이용하는 방법 숫자 타입으로 변환 Number 생성자 함수를 new 연산자 없이 호출하는 방법 parseInt, parseFloat 함수를 사용하는 방법(문자열만 변환 가능) 실무에서는 형변환 함수 Number보다 parseInt가 선호되는 이유는 속도 차이 // Number는 객체 생성으로 접근 차이 + ..



