서른, 생일 ⏐ 일상 에세이 ⏐ 25
·
기록/일상 에세이
'휘갈겨 쓴 이 글을 다시 고쳐쓰지는 않으려 한다. 계절처럼 때로는 그저 흘러가야 할 것이므로.' 오늘은 나의 생일이다. 최선을 다해왔다고 믿었던 지난 시간들을 되돌아 본다. 부끄럽다. 많은 것을 알았다 생각했지만, 나는 아무것도 알지 못하였다. 생의 비극은 그것이 결국 죽음으로 끝나기 때문이 아니라, 죽음을 앞두지 않고는 좀처럼 삶을 마주하지 못하기 때문이다. 시간은 계절처럼 흘러간다. 내 나이도 이제 꽉찬 서른이 되었다. 나이를 계절에 비유할 수 있다면, 지금의 나는 어떤 계절을 지나고 있는 것일까? 모든 계절의 소중함은 그것이 소중한 이들과 각기 다른 순간의 결을 빚어낼 수 있다는 데 있다. 그러니 따스한 봄날이 아니더라도, 선선한 가을 날이 아니더라도 우리는 모든 계절에 함께 행복할 수 있다. 그..
자바스크립트 호이스팅이란?
·
개발/JavaScript
자바스크립트에서 호이스팅(hoisting)이란 무엇일까? 호이스팅을 이해하려면 스코프의 개념과 전역 변수, 지역 변수의 의미를 이해해야 한다. 이번 포스팅에서는 변수 호이스팅과, var, let, const 키워드의 사용, 함수 호이스팅에 대해 정리해 보려 한다. 자바스크립트 변수 호이스팅 자바스크립트는 기본적으로 위에서 아래로 차례차례 코드를 실행해 간다. 따라서 변수를 선언하기 전에, 변수를 호출하면 오류가 발생해야 한다. 그러나 자바스크립트의 호이스팅 기능은 모든 변수 선언문이 해당 스코프의 최상단으로 끌어 올려 처리한다. console.log(bear); // undefined bear = "A market is in bearish trend."; console.log(bear); // "A ma..
Returing과 Mutating 차이점 (정리 중)
·
개발/JavaScript
returning과 mutating의 차이를 보자. 아래의 push 메소드는 기존의 배열을 mutating 하고, 값도 return한다. let pets = [ {name: "Meowsalot", species: "cat", age: 2}, {name: "Barksalot", species: "dog", age: 3}, {name: "Purssloud", species: "cat", age: 8} ] pets.push({name: "Puppster", species: "dog", age: 1}) console.log(pets); returing은 새로운 배열을 반환하는 것이고 mutating은 기존의 배열을 변화시키거나 수정하는 것이다. 그러나 push와 다르게 mutating하지 않는 메소드가 있다. ..
자바스크립트 고차 함수(higher-order function)란?
·
개발/JavaScript
자바스크립트에서 고차 함수란 (1) 함수를 아규먼트로 받거나 (2) 함수를 결과로 리턴하는 함수다. (1) 함수를 아규먼트로 받는 고차 함수의 예 document.addEventListener("click", greeting); function greeting() { return alert("Hello, world!") } (2) 함수를 결과로 리턴하는 고차 함수의 예 function creatMultiplier(multiplier) { return function(x) { return x * multiplier } } let doubleMe = creatMultiplier(2); let tripleMe = creatMultiplier(3); let quadrupleMe = creatMultiplier(..
[JavaScript] ④ 자바스크립트 객체란 무엇일까?
·
개발/JavaScript
자바스크립트는 객체 기반 언어다. 자바스크립트는 객체 기반 프로그래밍 언어이며, 원시 값을 제외한 모든 값은 객체다. 즉, 함수, 배열, 정규 표현식 등이 모두 객체다. 객체는 프로퍼티(property)로 구성되며, 프로퍼티는 키(key)와 값(value)로 구성된다. 프로퍼티의 값이 함수일 경우 이를 메소드(method)라 한다. 객체의 의해 비유를 통해 우선 객체의 개념을 이해해보자. 우리는 실생활에서 객체의 예시를 살펴볼 수 있다. 집에서 키우는 고양이, 사용 중인 키보드, 스마트폰 등이 모두 객체다. 이러한 객체들은 상태(state)를 갖거나 행동(behavior)을 한다. 예를 들어, 고양이의 경우 이름, 눈동자 색, 종, 꼬리 모양 등의 상태와 더불어 꾹꾹이, 뛰어 오르기, 잠자기 등의 행동을..
자바스크립트 스코프란? 글로벌, 로컬, 렉시컬 스코프 뜻
·
개발/JavaScript
안녕하세요. 휘입니다. 오늘은 자바스크립트 스코프에 대해 정리해보려고 합니다. 자바스크립트에서는 변수나 상수, 아규먼트 등이 생성될 때 일종의 접근 범위인 스코프(scope)가 정해지는데요. 스코프에는 글로벌 스코프(global scope)와 로컬 스코프(local scope)가 존재하며, 자바스크립트는 렉시컬 스코프(lexical scope) 방식을 따릅니다. 과연, 어떤 의미일까요? 글로벌 스코프란? 먼저, 글로벌 스코프입니다. 다음 예시에서 myName 변수는 글로벌 스코프를 갖는 전역 변수(global variable)로 선언되었는데요. 글로벌 스코프는 함수 바깥에서도 이를 참조할 수 있게 합니다. var myName = "Jeong" function callingName(){ console.lo..
자바스크립트 do while 반복문
·
개발/JavaScript
자바스크립트 반복문: do while do while 반복문은 while 반복문과 무척 유사하다. 그러나 차이점이 있다면 조건을 만족하든 하지않든, 블록 안의 코드가 한 번은 실행된다는 것이다. 즉, 조건을 확인하기 전 블록 코드를 실행하며, 해당 코드가 false가 되기 전까지 while 반복문을 실행한다.
자바스크립트 조건문 if, else, else if 정리
·
개발/JavaScript
if 구문 if문은 조건문 중 가장 간단한 형태의 것으로, 이를 사용해 우리는 특정 조건이 기준에 부합하는지를 확인할 수 있다. 해당 기준에 부합할 경우(true) 다음 명령문으로 넘어가며, 부합하지 않을 경우(false) 넘어가지 않는다. if문은 크게 두 가지로 구성되는데, 하나는 조건(condition)이고 다른 하나는 명령문(statement)이다. 조건은 true, false 이거나 논리 표현, 비교 표현 등일 수 있다. if-else 구문 if-else 구문은 조건이 true일 경우에는 if 구문을 실행하고, false일 경우에는 else 구문을 실행한다. else if 구문 if-else 구문이 두 개의 블록만을 처리할 수 있는 반면 else if 구문은 여러 개의 조건문을 담을 수 있다.