---
title: "190322~24 TIL"
date: 2019-03-24
tags: ["TIL"]
url: https://sub2n.github.io/2019/03/24/190322-24-TIL/
---

# 190322~24 TIL

## Today I Learned

-   #### 배운 것
    
    -   LeetCode [14\. Longest Common Prefix](https://leetcode.com/problems/longest-common-prefix/)를 풀었다.
    
    : 쉬운 문제를 이틀에 걸쳐 풀었는데, javaScript에 String method 중 유용한 indexOf()라는 method가 있다는 것을 알았다. C++에서부터 나는 문자열을 다루는 데에 익숙하지 않다.
    
    -   var의 scope와 javaScript의 Hoisting에 대해 배웠다.
    
    ##### var, let, const
    
    : var는 function-scoped고, let이나 const는 block-scoped이다.
    
    : let은 재할당이 가능, 선언한 이후에 할당할 수 있는 반면 const는 선언과 동시에 값을 할당하여야 하고 그 값을 변경시킬 수 없다. (C처럼)
    
    ##### Hoisting
    
    : hoisting은 끌어올린다는 뜻이다. 자바스크립트에서는 변수가 끌어올려진다. 이 때, 변수의 선언은 hoist되지만 할당부(값)는 hoist되지 않는다. 즉 함수의 선언은 hoist되지만 변수의 값으로 선언한 함수는 hoist되지 않는다.
    

> 그래서 for문에서 var i =0으로 선언한 후 함수 종료 후에 i를 부르면 정의되지 않았다고 뜬다. 그러나 var i가 아니라 그냥 i=0 로 선언하면 i가 hoisting되어 global variable이 된다.

-   #### 느낀 점
    
    scope와 hoisting 등 javaScript를 공부하니 그동안 아무 것도 모르는 상태에서 이것저것 만들어 보면서, 이해되지 않던 오류들이 조금씩 이해되기 시작했다.
    
    어쩌다보니 LeetCode 알고리즘을 스터디로 함께 풀게 됐다. 어려명과 함께 공부하는 건 처음이지만 배울 점이 많을 거라고 생각한다.
    
    indexOf() 등 여러 javaScript String 관련 method를 접할 때마다 정리하고 활용할 수 있도록 해야겠다.