Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 계산맞추기 게임
- intllij 내 Bean을 찾지 못해서 발생하는 오류
- node.js로 로그인하기
- node.js 설치
- Python
- 거북이 대포 게임
- Colaboratory 글자 깨짐
- react오류
- 모던자바스크립트
- 리액트
- 인프런
- googleColaboratory
- JS 개념
- 따라하며 배우는 노드 리액트 기본 강의
- You are importing createRoot from "react-dom" which is not supported. You should instead import it from "react-dom/client"
- DB Browser
- props
- 노드에 리액트 추가하기
- spring-boot
- 모두의 파이썬
- Do it 자바스크립트 + 제이쿼리 입문
- Spring-Framework
- 웹 게임을 만들며 배우는 리액트
- Concurrently
- vs code 내 node
- ReactDOM.render is no longer supported in React 18. Use createRoot instead
- 자바스크립트
- react
- intellij
- 타자 게임 만들기
Archives
- Today
- Total
프로그래밍 삽질 중
모던 자바스크립트 핵심 가이드 00 기초 정리 2 본문
* 모던 자바스크립트 핵심 가이드(저자 알베르토 몬탈레시, 옮김 임지순/권영재) 복습
* 핵심 부분과 필요할 경우 문제도 수정해서 기재할 것
* 문제될 경우 삭제할 것
○ 함수 선언
① 함수 정의
function movie(title) {
console.log("그것이 알고 싶다 : " + title)
}
movie("지선씨네 마인드") //"그것이 알고 싶다 : 지선씨네 마인드"
title : 매개변수(파라미터 혹은 변수라고 함)
console.log("그것이 알고 싶다 : " + title) : 명령문
- 원시 자료형이 함수에 전달될 때는 참조가 아니라 값의 형태로 전달됨
- 해당 값에 대한 변경 사항이 전역적으로 반영되지 않음
- 단, 객체나 배열을 함수에 전달할 경우 참조로 전달됨
- 원시 자료형인 경우(값 변하지 않음)
let theater = 1;
function increase(x) {
return x += 1;
}
console.log(theater); //1
console.log(increase(theater)); //2
console.log(theater); //1 (값 변하지 않음)
- 객체인 경우(값 변함)
let theater = {
name: "롯데시네마",
location: "서울"
}
console.log(theater); //{location: "서울", name: "롯데시네마"}
function changeLocation(x) {
x.location = "인천";
}
changeLocation(theater);
console.log(theater); //{location: "인천", name: "롯데시네마"}
② 함수 표현식
const movie = function movie(title) {
console.log("그것이 알고 싶다 : " + title)
}
movie("지선씨네 마인드") //"그것이 알고 싶다 : 지선씨네 마인드"
③ 익명 함수
const movie = function(title) {
console.log("그것이 알고 싶다 : " + title)
}
movie("지선씨네 마인드") //"그것이 알고 싶다 : 지선씨네 마인드"
④ 화살표 함수
const movie = (title) => {
console.log("그것이 알고 싶다 : " + title)
}
movie("지선씨네 마인드") //"그것이 알고 싶다 : 지선씨네 마인드"
○ 스코프
- 변수의 스코프 : 변수에 접근할 수 있는 위치
- 전역 스코프 : 코드 어느 곳에서나 접근 가능, 오류 확률 높아짐
- 블록 스코프 : 변수가 선언된 블록(함수, 괄호, 루프 등) 내부에서만 접근 가능
//var의 경우
let theater1 = 1;
if(theater1 === 1) {
var secondTheater1 = 2; //스코프 갖고 있지 않음(var), 블록 외부에서도 접근 가능
console.log(secondTheater1); //2
}
console.log(secondTheater1); //2 블록 외부에서도 값 출력 가능
//let의 경우
let theater2 = 1;
if(theater2 === 1) {
let secondTheater2 = 2; //스코프 갖고 있음(var), 블록 외부에서도 접근 불가
console.log(secondTheater2); //2
}
console.log(secondTheater2); //오류 발생, ReferenceError: secondTheater2 is not defined
○ this 키워드
//예시1
let theater = {
name: "롯데시네마",
detailName: function() {
console.log(this.name) //this가 참조하는 것 = theater
}
}
theater.detailName(); //롯데시네마
//예시 2
function movie() {
console.log(this);
}
movie(); //window 객체 참조 -> strict 모드 사용 시 실수로 window객체 참조 방지
○ this값 수동 설정
let theater = {
name: "롯데시네마",
detailName: function() {
console.log(this.name) //this가 참조하는 것 = theater
}
}
const unboundDetailName = theater.detailName;
// console.log(unboundDetailName()); //undefined
const boundDetailName = unboundDetailName.bind(theater);
console.log(boundDetailName()); //롯데시네마
○ .call() : 인수의 목록을 받음/ .apply() : 하나의 인수 배열을 받음
//.call() 예시
function theater(name, loaction) {
this.theaterName = name;
this.theaterLocation = location;
}
function myTheater(name, location) {
theater.call(this, name, location);
this.seatNum = 10;
}
const myNewTheater = new myTheater('메가박스', '부산');
console.log(myNewTheater.theaterName); //메가박스
console.log(myNewTheater.theaterLocation); //부산
//.apply()
function theater(name, loaction) {
this.theaterName = name;
this.theaterLocation = location;
}
function myTheater(name, location) {
theater.apply(this, [name, location]);
this.seatNum = 10;
}
const myNewTheater = new myTheater('메가박스', '부산');
console.log(myNewTheater.theaterName); //메가박스
console.log(myNewTheater.theaterLocation); //부산
//.apply() 다른 예시
const koreaMovie = function(name, director, actor) {
director.apply(actor);
}
koreaMovie(name, director, ['설경구', '김남길']);
koreaMovie(name, director, ['이정재', '황정민', '최민식']);
'과거 프로그래밍 자료들 > Javascript&typescript' 카테고리의 다른 글
모던 자바스크립트 핵심 가이드 02 화살표 함수 (0) | 2022.05.12 |
---|---|
모던 자바스크립트 핵심 가이드 01 var, let, const (0) | 2022.05.11 |
모던 자바스크립트 핵심 가이드 00 기초 정리 1 (0) | 2022.05.10 |
[JS - node.js] Cannot set headers after they are sent to the client 오류 (0) | 2022.01.16 |
[JS - node.js] Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client 해결 (0) | 2021.12.20 |