1차 공부/JavaScript 7

reduce()

let result = arr.reduce(callback, initValue); //initValue는 안적어도 됨. 안적으면 0번째 element가 initValue result = 반환되는 값 arr = reduce함수가 실행되는 배열 callback = 배열 속 각 element들에 실행되는 함수이다. 안에는 4가지 값이 들어있다. - accumulator = 함수의 모든 반환값을 축적하는 곳 - currentValut = 진행되는 현재 값 - index = 현재 진행하는 값의 인덱스 - array = 원래의 배열 initValue = 선택적으로 사용가능하다. 만약 사용하지 않으면 0번째 요소가 initValue로 들어간다. var arr = [1,2,3,4]; var sum = 0; for(va..

실습과제

1) 콘솔에 찍힐 b 값을 예상해보고, 어디에서 선언된 “b”가 몇번째 라인에서 호출한 console.log에 찍혔는지, 왜 그런지 설명해보세요. 주석을 풀어보고 오류가 난다면 왜 오류가 나는 지 설명하고 오류를 수정해보세요. let b = 1; function hi () { const a = 1; let b = 100; b++; console.log(a,b); } console.log(b); hi(); console.log(b); 일단 처음 출력될 console.log(b)는 1이다. 두번쨰로 hi()는 1,101이다 세번째로 출력될 console.log(b)는 1이다. hi()의 b값이 다른 이유는 function문의 스코프 안에서 b값이 변한 것이기 때문이다. 나머지 console.log(b)의 b..

호이스팅(hoisting)과 TDZ(temporal dead zone)은 무엇일까?

글쓰기에 앞서 글쓴이는 코딩에 미숙한 사람임을 알립니다. 더 구글링 해보면 더욱 더 자세한 내용이 공식문서 혹은 블로그에 정리 되어 있을 수 있습니다. 스코프 스코프란 변수에 접근할 수 있는 범위를 의미한다. JS에선 전역스코프와 지역스코프가있다. 전역스코프는 말 그대로 모든 곳에서 변수가 선언되어있어 어느곳에서든 접근 할 수 있는 것이고, 지역 스코프는 한정된 공간에 변수가 선언되어있어 한정적으로 변수에대해 접근할 수 있는 것이다. var a = 1//전역 스코프 function print() {//지역(함수)스코프 var a = 111 console.log(a) } print()//111 함수 스코프에 선언된 a는 111이기에 111이 출력됨. console.log(a)//1 console.log가 ..

JavaScript 객체와 불변성이란?

글쓰기에 앞서 글쓴이는 코딩에 미숙한 사람임을 알립니다. 더 구글링 해보면 더욱 더 자세한 내용이 공식문서 혹은 블로그에 정리 되어 있을 수 있습니다. 기본형 데이터와 참조형 데이터 기본형 데이터 : 객체가 아닌 데이터 유형을 말한다. 원시형이라고도 한다. 기본형 데이터로는 숫자형, 문자형, 불린형, null, undefined가 있다. 참조형 데이터 : 기본형 데이터가아닌 모든 것을 의미한다. 참조형 데이터로는 객체, 함수, 배열, 클래스, ... 등 기본형 데이터가 아닌 모든 것이다. 불변 객체를 만드는 방법 일단 불변 객체란 무엇인가? 불변 객체(immutability)란 말 그대로 변하지 않는 객체, 즉 이미 할당된 객체가 변하지 않는 것이다. 기본적으로 const는 변수를 상수로 지정한다. 여기..

JavaScript의 자료형과 JavaScript만의 특성은 무엇인가

글쓰기에 앞서 글쓴이는 코딩에 미숙한 사람임을 알립니다. 더 구글링 해보면 더욱 더 자세한 내용이 공식문서 혹은 블로그에 정리 되어 있을 수 있습니다. 느슨한 타입(loosely typed)의 동적(dynamic)언어 느슨한 타입의 동적 언어 말로하면 굉장히 어려워 보인다. JavaScript의 변수는 어떤 특정 타입과 연결되지 않으며, 모든 타입의 값으로 할당 및 재할당이 가능하다는 것이다. //느슨한 타입의 동적 언어 예시 let a = '문자열'//a가 문자열 a = 1; //a가 숫자 a= true; //a가 boolean 느슨한 타입의 동적언어의 문제점은 무엇이고 보완할수 있는 방법은? 위와같은 JavaScript의 변수 특성상 실행 도중 변수에 '코드에서 예상치 못한 값'이 들어있어 Type ..

변수 선언과 대입연산자, 자료형

이번 글에서는 변수 선언과 대입연산자, 그리고 자료형에 대해 간단하게 알아보고자 한다. 변수선언 변수선언자 var 존재만 알고 사용하지 않는다.(hoisting 참고) let 한번 선언한 변수에 대해 변경이 가능하다 const 한번 선언한 변수에 대해 변경이 불가능하다 대입연산자 = 좌측에는 대입할 변수를, 우측에는 대입할 값을 작성하여 변수에 값을 입력한다. +=, variable++ 좌측에 선언된 변수를 입력하고 우측에 값을 작성하여 더한다. -=, varialble-- 좌측에 선언된 변수를 입력하고 우측에 값을 작성하여 뺀다. 비교연산자 === ===의 양쪽에 위치한 것이 값과 자료형이 같다면 true, 하나라도 다르다면 false를 반환한다. !== !==의 양쪽에 위치한 것이 값과 자료형 하나라..