본문 바로가기

Front-End64

[JavaScript] Chapter 30. for ...in, for ...of의 차이 결론부터 말하면 for...in은 객체의 반복에서 사용되고, for...of는 배열의 반복에서 사용된다. for …in 문 객체의 열거 가능한 '속성들'을 순회할 수 있도록 해줌 객체의 key값에 접근 가능, value값에는 직접 접근 불가 모든 객체에서 사용 가능 for ...in문은 객체의 모든 '열거할 수 있는 속성들'을 순회할 수 있도록 해준다. (keys는 열거 가능한 속성, valueOf는 열거 불가능한 속성) 그렇기 때문에 for ...in 문은 객체의 key 값에는 접근 가능하지만, value 값에 직접적으로 접근하는 방법은 제공하지 않는다. for ...in 문을 사용해 배열과 객체의 요소에 접근하는 예제를 살펴보자. 위에서 언급했듯이 key 값에만 접근이 가능하기 때문에, 배열에서는 i.. 2023. 1. 10.
[JavaScript] Chapter 29. Array map 값을 여러개 가지고 있는 배열에서 모든 값을 꺼내고자 할 때, 꺼내는 방법은 정말 다양하게 알려져 있다. 이러한 배열에서 값 꺼내는 방법 중 map( ) 을 다뤄보도록 하자. map 정의 Array.prototype.map ( callbackfn [ , thisArg ] ) 주로 주어진 배열의 값을 재정의 할 때, 사용하는 방법으로 ECMA에는 "주어진 배열의 값들을 오름차순으로 접근해 callbackfn을 통해 새로운 값을 정의하고 신규 배열을 만들어 반환한다"라고 정의되어있다. const numbers = [1, 2, 3, 4, 5]; const result = numbers.map(number => number * number); console.log(numbers); // [1, 2, 3, 4, .. 2023. 1. 10.
[JavaScript] Chapter 28. Array forEach forEach는 for문과 마찬가지로 반복적인 기능을 수행할 때 사용한다. 하지만 for문처럼 index와 조건식, increase를 정의하지 않아도 callback 함수를 통해 기능을 수행할 수 있다. [].forEach(callback, thisArg) const arr = [0,1,2,3,4,5,6,7,8,9,10]; arr.forEach(function(element){ console.log(element); // 0 1 2 3 4 5 6 7 8 9 10 }); // 혹은 arrow 함수 가능 arr.forEach(element => console.log(element)); arr 객체의 요소들이 callback 함수에 순서대로 호출되는 모습을 볼 수 있다. for문에 비해 좀 더 깔끔하고, 직관.. 2023. 1. 10.
[JavaScript] Chapter 27. {...} [...] 문법 (비구조화 할당/구조분해 할당) 자바스크립트의 문법에 대한 글을 검색하면 대부분 let, const 혹은 화살 함수(arrow function)에 대한 이야기가 주를 이룬다. 이번 시간에는 흔히 알려지지 않았지만 유용한 비구조화 할당 문법을 본다. 정의 모질라 문서에 의하면 '비구조화 할당(destructuring assignment) 구문은 배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담을 수 있게 하는 자바스크립트 표현식(expression)' 이다. 간단하게 정리하면 배열 [], 혹은 객체 {} 안의 값을 편하게 꺼내 쓸 수 있는 문법이다. 기본 문법(배열) 배열에서의 적용은 아래와 같다 [a1, a2, ...rest_a] = [1, 2, 3, 4, 5, 6, 7, 8, 9]; console.log(a1); // 1 co.. 2023. 1. 10.
[JavaScript] Chapter 26. 변수란_2 - var, let, const의 차이 var, let, const의 차이 앞에서 발견한 var 키워드의 문제점은 크게 세 가지가 존재한다. 변수 중복 선언 가능하여, 예기치 못한 값을 반환할 수 있다. 함수 레벨 스코프로 인해 함수 외부에서 선언한 변수는 모두 전역 변수로 된다. 변수 선언문 이전에 변수를 참조하면 언제나 undefined를 반환한다. ES6에서 나온 let과 const 키워드는 위의 세 가지 문제점을 해결했다. 1. 변수 중복 선언 불가 (1) let let 키워드로는 변수 중복 선언이 불가하지만, 재할당은 가능하다. let name = 'kmj' console.log(name) // output: kmj let name = 'howdy' // output: Uncaught SyntaxError: Identifier 'na.. 2023. 1. 9.
[JavaScript] Chapter 25. 변수란_1 - 변수 선언 및 할당, 호이스팅, 스코프 자바스크립트에서 var로 변수 선언이 가능했는데, 왜 const와 let이 나왔으며 이 둘의 사용을 권장할까? 이를 정확하게 알기 위해서는, 변수의 선언 및 할당 과정, 호이스팅, 스코프를 알아야한다. 변수 먼저 자바스크립트에서 변수가 무엇인지 알아보자. 변수(variable)는 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름을 말한다. const myNumber = 23 // 변수명(식별자): myNumber // 해당 값의 위치(메모리 주소): 0012CCGWH80 // 변수 값(저장된 값): 23 자바스크립트는 매니지드 언어(managed language)이기 때문에 개발자가 직접 메모리를 제어하지 못한다. 따라서 개발자가 직접 메모리 주소를 통해.. 2023. 1. 9.
[SASS] Chapter 01. sass(scss) sass(scss) : css의 확장 언어 css보다 조금 더 높은 자유도를 개발자들에게 부여 변수, 반복문, 가정문 등 다양하고 강력한 기능을 제공 그래서 기능적으로 자유도는 높지만, 역설적이게도 그만큼 많은 학습이 요구된다. 브라우저가 읽을 수 있는 언어는 3가지 뿐이다. (html, js, css) sass, scss는 브라우저가 읽을 수 없는 확장자다. 그래서 sass(scss) 확장자로 된 파일을 css 파일로 컴파일(변환)시켜주는 과정이 필요하다. 2023. 1. 9.
[CSS] Chapter 13. 브라우저 크기마다 CSS가 바뀌는 Media Query .box { width: 100%; height: 100px; border: 4px solid red; } @media screen and (max-width: 1260px) { .box { width: 90%; background-color: red; } } // 테블릿 화면 @media screen and (max-width: 768px) { .box { width: 80%; background-color: blue; } } // 모바일 브라우저 @media screen and (max-width: 576px) { .box { background-color: greend; } } media query는 css 맨 마지막에 사용된다. 왜 그러느냐? css는 맨 마지막에 있는 것들이 적용되기 때문에. 2023. 1. 7.
[CSS] Chapter 12. Position(static, relative, absolute, fixed, sticky), z-index, overflow position 요소를 어떻게 배치할지 결정하는 CSS 속성 우선 Normal Flow 개념을 이해하는 것이 중요함 Normal Flow란? 요소의 레이아웃을 전혀 제어하지 않았을 때, 브라우저에서 기본적으로 요소가 배치되는 흐름 Remind) 인라인 요소, 블록 레벨 요소 등 특성에 따라 기본적으로 요소가 배치되는 방식이 있음 즉 요소의 특성에 따라 Normal Flow가 정해져 있는 것 코드에 작성된 순서에 맞게 차곡차곡 HTML 요소가 표시된다. positon 속성을 통해 Normal Flow에서 벗어나, 개발자가 원하는 대로 제어하여 배치할 수 있음 position 속성은 top, bottom, left, right 속성과 함께 사용함 position의 종류에 따라 top, bottom, left.. 2023. 1. 6.
[HTML] Chapter 10. 이모티콘_svg(vector data), fontawesome, bootstrap 버튼 보이기엔 둘 다 같지만, 차이점이 있다. button 태그의 컨텐츠로 "버튼"을 주는 것 input 태그의 value로 "버튼"을 주는 것 무슨 뜻이냐 하면 input 태그에는 value 안에 "버튼" 이라는 속성을 통해서 text를 전달해야 한다. 그런데 button 태그는 여는 태그와 닫는 태그로 이루어져 있고, 컨텐츠를 받을 수 있기 때문에 다른 태그가 들어가도 무방하다. (일반적으로 잘 사용하진 않는다) 그 말은 button 태그에 img가 들어가도 되는 것이다. 그래서 어떤 이미지를 버튼처럼 만들고 싶을 때 input 태그에 버튼을 사용하는 것이 아니라, button 태그를 통해서 img 태그를 넣어 만들 수 있다. 하지만 button 안에 img를 넣을 때는 일반적인 이미지가 아니라 이모.. 2023. 1. 4.