분류 전체보기 157

== 와 === 의 차이

비교 연산자는 좌항과 우항의 피연산자를 비교한 다음 그 결과를 불리언 값으로 반환된다. 동등 비교(==) 연산자와 일치 비교(===) 연산자는 좌항과 우항의 피연산자가 같은 값으로 평가되는지 비교해 불리언 값을 반환한다, 하지만 비교하는 엄격성의 정도가 다르다! 결론부터 말하면 동등비교는 느슨한 비교를 하지만 일치 비교 연산자는 엄격한 비교를 한다. 비교 연산자 의미 사례 설명 부수 효과 == 동등 비교 x == y x와 y의 값이 같음 없음 === 일치 비교 x === y x와 y의 값과 타입이 같음 없음 != 부동등 비교 x != y x와 y의 값이 다름 없음 !=== 불일치 비교 x !== y x와 y의 값의 타입이 다름 없음 동등비교(==)연산자는 좌항과 우항의 피연산자를 비교 할 때 먼저 암묵적..

javascript 2022.11.18

동적 타이핑

c나 자바같은 정적 타입 언어는 변수에 할당할 수 있는 값의 종류, 즉 데이터 타입을 사전에 선언해야 한다. 이를 명시적 타입 선언 이라 한다. // c변수에는 1 바이트 정수 타입의 값 (-128 - ~127) 만 할당할 수 있다. char c; 정적 타입 언어는 변수 변경할 수 없으며 변수에 선언힌 타입에 맞는 값만 할당할 수 있다. 정적 타입 언어는 컴파일 시점에 타입 체크(선언한 데이터 타입에 맞는 값을 할당했는지 검사하는 처리)를 수행, 만약 타입 체크를 통과하지 못했다면 에러를 발생시키고 프로그램의 실행 자체를 막아 안정적인 코드의 구현을 통해 런타임에 발생하는 에러를 줄인다. 하지만! 자바스크립트는 정적 타입 언어와 다르게 변수를 선언할 때 타입을 선언하지 않는다. 다만 var, let , ..

javascript 2022.11.18

항해 TIL pre-on 마지막날

오늘은 콜백함수, 화살표 함수, 즉시 실행 함수, setInterval함수, setTimeout함수와 , clearInterval함수, clearTimeout에 대해 알아보았다. 콜백 함수 자바스크립트는 함수도 하나의 자료형이므로 매개변수로 전달할 수 있습니다. 이렇게 매개변수로 전달하는 함수를 콜백 함수라고 합니다. 위 사진에서 callTreeTimes() 함수는 함수를 매개변수로 받아 해당 함수를 3번 호출합니다. callTreeTimes() 함수의 callback매개변수에 print() 함수에 전달했다. 그리고 callThreeTimes() 함수 내부에서는 callback(i) 형태로 함수를 호출하고 있다. 따라서 매개변수로 전달했던 print()함수가 print(0), print(1), print..

javascript 2022.11.12

표현식인 문과 표현식이 아니문

표현식은 문의 일부일 수도 있고 그 자체로 문이 될 수도 있다. 이 사진과 같이 표현식과 문은 비슷해서 구별하기 어렵다고 느끼게 된다. 표현식과 문을 구별하는 방법에 대해 살펴보자 문에는 표현식인 문과 표현식이 아닌 문이 있다. 표현식인 문은 값으로 평가될 수 있는 문이며, 표현식이 아닌 문은 값으로 평가될 수 없는 문을 말한다. 예를 들어 변수 선언문은 값으로 평가될 수 없다. 따라서 표현식이 아닌 문이다. 하지만 할당 문은 값으로 평가될 수 있다. 따라서 표현식인 문이다. 표현식인 문과 표현식이 아닌 문을 구별하는 가장 간단하고 명료한 방법은 변수에 할당해 보는 것이다. 위 사진들과 같이 표현식인 문은 값으로 평가되므로 변수에 할당할 수 있다. 하지만 표현식이 아닌 문은 값으로 평가할 수 없으므로 변..

javascript 2022.11.12

함수 리터럴(2)

이 글은 필자의 함수 리터럴 다음 애기이다. 함수의 동작원리에 대해 알고 있다면 상관없지만 그렇지 않다면 이 전 글을 보고 오는걸 권장한다. 함수 표현식 저번 글에서도 말했듯이 자바 스크립트의 함수는 값처럼 변수에 할당할 수도 있고 프로퍼티 값이 될 수도 있으며 배열의 요소가 될 수도 있다. 이처럼 값의 성질을 갖는 객체를 일급객체라 한다. 함수 리터럴의 함수 이름은 생략할 수 있다. 이러한 함수를 익명 함수라 한다. 함수 표현식의 함수 리터럴은 함수 이름을 생략하는 것이 일반적이다. 함수 선언문에서 이 전 글에서 본 바와 같이 함수를 호출할 때는 이름이 아니라 함수 객체를 가리키는 식별자를 사용해야 한다. 함수 이름은 함수 몸체 내부에서만 유효한 식별자이므로 함수 이름은 함수를 호출할 수 없다. 자바스..

javascript 2022.11.12

함수 리터럴

리터럴은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기 방식을 말한다. 즉, 리터럴은 값을 생성하기 위한 표기법이다. 따라서 함수 리터럴도 평가되어 값을 생성하며, 이 값은 객체다. 즉 함수는 객체다. 자바스크립트의 함수는 객체 타입의 값이다. 따라서 숫자 값을 숫자 리터럴로 생성하고 객체 리터럴로 생성하는 것 처럼 함수도 함수 리터럴로 생성할 수 있다. 함수 리터럴은 function 키워드, 함수이름, 매개 변수 목록 , 함수 몸체로 구성된다. 구성 요소 설명 함수 이름 함수 이름은 식별자다. 따라서 네이밍 규칙을 준수해야 한다. 함수 이름은 함수 몸체 내에서만 참조할 수 있는 식별자다. 함수 이름은 생략할 수 있다. 이름이 있는 함수를 기명함수, 이름이 없는 함수를 무명/..

javascript 2022.11.11

함수 맛보기?

이번 예제에서는 함수에 대해서 얘기해보자. 제목에 함수 맛보기라고 적은 이유는 필자에 블로그에서는 객체와 함수에 대해서는 많은 글을 써보려고 한다(많관부). 그런 의미에서 이번 글은 간략하게 적어보려고 한다. 자바스크립트에서 함수는 가장 중요하며 또 객체와도 관련성이 깊다고 생각한다. 일단 코드에서 함수를 정의하는 형태로 익명함수와(함수의 이름을 넣지 않는) 선언적 함수가 대표적이다. 함수의 장점 반복되는 코드를 한 번만 함수에 중괄호에서 정의해놓고 필요할 때마다 그 함수를 호출해서 반복 작업을 피할 수 있다. 긴 프로그램을 기능별로 나눠 여러 함수로 나누어 작성하면 모듈화로 전체 코드의 가독성이 좋아진다. 기능별(함수 별)로 수정이 가능하므로 유지보수가 쉽다. 익명 함수 function () {. } ..

javascript 2022.11.11

git에 대해(2)

PR 이 무엇인가? PR(Pull Request, 풀리퀘스트) 는 내 작업 내역을 바로 merge 하지 않고, 참여하고 있는 프로젝트에 내 작업(branch)을 merge 해달라고 요청(Request)을 먼저 보내는 것입니다. 작업한 내용에 대해 코드 리뷰를 하거나 같이 토론하면서 개선시킬 수 있는 기회가 생기는 것이지요! 프로젝트 기준에 맞지 않는다면 PR 은 거부(reject) 될 수도 있습니다. 이렇게 리뷰한 후 작업내역을 최종 반영하면 프로젝트 퀄리티가 더 높아지겠지요? 또 기본적으로 프로젝트 품질을 관리해야 하는 회사에서 작업하거나, 여러 사람들이 참여하는 오픈소스에서는 PR 후 merge 하는 과정을 거치게 됩니다. 다른 repo 에 PR 하기 - fork 개념탑재 내가 주인이 아닌 다른 re..

git 2022.11.11

break 와 continue 키워드

break 키워드란? break 키워드는 for 반복문의 형태( for, for... in, for... of)와 while 반복문(while, do.. while)과 switch 조건문에서 사용된다. 반복문에서 사용했을시에 break키워드를 만나면 그 반복문을 종료하고 밖으로 나가게 된다. switch 문에서는 조건의 맞는 case에 코드가 실행된다면 다른 case가 실행되지 않게 braek를 실행해 switch문을 종료하게 해주는 역할을 하게 된다. 만약 다른 곳에서 break를 사용시에 에러를 발생시킨다. 위 사진과같이 if문에서 사용 시 에러를 발생시킨다. 위 사진과 같이 for문에서 조건문에 true로 설정 후에 무한히 실행되는 for문에서 break키워드로 실행을 종료시킬 수 있다. 위 사진과..

javascript 2022.11.10