NaN이란 Not a Number의 줄인말이며 숫자가 아니다라고 알려주는 기호그래서바나나에서 사과를 빼면 NaN가 나오지만typeof NaN을 해보면 숫자라고 알려준다....사람의 직관하고 다른 건 외워줘야 한다.즉 NaN은 숫자는 아니지만 숫자다!parseInt는 정
과거10은 5보다 크다 === 참6은 8보다 작다 === 참이런식으로 명제를 많이 봐왔다.이걸 묶어서 참 거짓을 알려면?10 > 5 이고 6 < 8 이렇게 표시할 수 있다.이를 자바스크립트로 표현할라면?이렇게 표현하면 된다.&&은 말로 표현하면 그리고라는 말로 양
콜백함수란?어떤 동작이 일어나고 다음에 일어나는 함수들을 콜백함수라고 함반드시 자리가 중요함예시잘못된 예시둘의 차이점?잘못된 예시에서는 onClick() 하고 함수를 호출하면 리턴값이 들어감뒤에 return undefined가 생략이 되어 있어서 onClick() 하면
함수를 인자로 받거나 또는 함수를 반환함으로써 작동 하는 함수원래 함수를 만들고 사용을 할때 함수명()을 하게 되면 함수의 결과값인 undefined가 나오게 되는데 이를 return 값으로 내가 실행하고자 하는 함수를 넣게 되면 undefined대신에 return 안
this는 함수 내에서 함수 호출 맥락(context)를 의미함.맥락이라는 것은 상황에 따라서 달라진다는 의미인데 즉 함수를 어떻게 호출하느냐에 따라 this가 가르키는 대상이 달라짐.자바스크립트에서는 this는 이 둘을 연결시켜주는 실질적인 연결점의 역할을 함.아무것
let과 var는 크게 다르지 않음에러가 나오지 않음에러를 반환함var aaa = "hi"를 선언하기 전에 콘솔에 찍어도 에러가 나오지 않음.애초에 정의되지 않았다고 오류가 발생함다음과 같이 var는 실제로 코드가 이동하지는 않으나 최상위로 끌어올라감.이를 호이스팅이라
이러한 것을 객체 리터럴이라고 하며 개발을 하다보면 이러한 객체를 여러개 만들 필요가 있다.(유저, 장바구니 등등)보통 함수에 대문자로 시작을 하며 this를 이용해서 이름과 나이를 인자로 받아주고 new 연산자를 이용해서 호출을 한다.생성자 함수 === 붕어빵 틀필요
1. computed property 객체에 key값에 변수를 넣기 위해서는 []가 필요함 (템플릿 리터럴 안됨) 식 자체를 넣는 것도 가능함 함수 역시 가능하다. 2. 객체 메서드 가. Objcet.assign() 객체 복제 ![](https://velog
지금까지의 property key 모양은 문자형 이였음.다음과 같이 유일한 식별자를 만들 수가 있음.비교연산자를 사용해도 같지 않음.전체의 코드 중에 딱 하나문자열을 전달해줘서 설명을 붙혀줄 수 있음object의 property로 넣어주기computed property
10진수에서 2진수/16진수로 바꿀 필요가 있음결과값은 숫자결과값은 숫자결과값은 숫자소수점 둘째자리까지 표현기존 숫자에 100을 곱한뒤 반올림 하고 그것을 다시 100으로 나누면 됨만약 소수점 0번째 자리 즉 정수이거나 기존의 자리보다 더 내려갔을 경우??0번째 자리는
여러줄을 포함할 수 있음배열처럼 길이를 알 수 있음단 배열처럼 한글자만 바꿀 수는 없음영문의 대소문자로 바꿀 수 있음.외울필요없고 대문자가 소문자보다 크다, a보다 z가 크다라는 것만 기억하면 된다.
배열 메서드특정요소 지우기원본배열이 바뀜보통 첫번째와 두번째 인자만 사용함해당 요소가 있으면 해당 요소의 index값을 반환함끝에서 부터 찾고 싶으면 lastIndexOf를 사용하면 된다.포함하면 true, 아니면 false첫번째 true 값만 반환하고 끝 만약 없으면
배열을 정렬해주는 메서드문자열을 기준으로 정렬해줌그런데 숫자로 입력을 하면?뒤죽박죽이 됨??함수를 인수로 받아서 처리를 해야 제대로된 정렬을 할 수 있음a와 b를 빼서 음수가 나오면 앞으로 보냄이래서 lodash를 쓴다\_.sortBy(arr)을 쓰면 개꿀배열을 순회하
구조 분해 할당 구문은 배열이나 객체의 속성을 분해해서 그 값을 변수에 담을 수 있게 하는 표현식예시split 이용예시일때 a랑 b랑 바꾸고 싶다면?let a = b라고 하는 순간 a는 사라지게 됨 그래서 b를 참조할 수 없기에 의미 없는 변수let c = a를 만들고
갯수를 맞출 필요없음 정해져 있지 않은 갯수의 인수를 배열로 나타낼 수 있게 함여기서 주의점은 나머지 매개변수는 마지막에 있어야 함배열의 중간에 사용하는 것도 가능하다배열 메서드를 따로 쓰지 않아도 사용할 수 있어서 편함
이런것을 Closure이라고 함1) 함수와 렉시컬 환경의 조합2) 함수가 생성될 당시의 외부 변수를 기억3) 생성 이후에도 계속 접근 가능
일정 시간이 지난 후 함수를 실행하는 것두개의 인자를 받음뒤에 인수를 하나 붙혀서 함수의 인자값으로 넣어줄 수 있음clearTimeout은 예정된 작업을 없앰setTimeout은 타임아이디를 반환하는데 이를 이용해서 스케쥴링을 취소할 수 있다.일정 시간 간격으로 함수를
함수 호출 방식과 관계없이 this를 지정할 수 있음에서 this가 가르키는 것은 windows이다그래서 windows.name을 하는 것이고 windows.name은 아무것도 없기 때문에 나오지 않는 것임call을 붙히게 되면windows.name이 아니라 call이
user에 name이라는 property가 있으니까 true가 나오고 age는 없으니까 false가 나온다는 건 당연하다하지만hasOwnProperty를 만든 적이 없는데 이 친구는 어디서 나온 것일까??바로 prototype에 귀속이 되어 있는 것이다.객체의 prop
기존 객체 생성법Class로 생성법class와 constructor를 사용했는데 이는 property로 집어넣고 그 외에는 prototype으로 집어넣는다기존의 방법의 경우생성자 함수로 생성을 하면property로 들어오게 되는데class로 사용을하면 construct
물건을 주문한다고 했을 때 상황을 가정하면가. 물건을 주문한다.나. 물건이 나온다 or 물건을 만드는데 실패해서 못나온다그 중간 과정에서 물건이 나왔는지 여부를 계속 확인할 수도 있다.만약 물건이 안나오면 다시 요청을 해야한다.요청을 했을 경우 가게에 전화번호를 주면
promise보다 더 가독성 있게 작성할 수 있다.함수 앞에 async를 붙혀주면 된다.async로 작성한 함수를 실행하면다음과 같이 promise를 반환한다.이를 통해서 then을 사용할 수 있게 된다.그 결과값을 리턴할 수 있다.Promise의 값을 그대로 반환한다
함수의 실행을 중간에 멈췄다가 재개할 수 있는 기능사용법function 옆에 \*을 붙혀서 사용함내부에 yield 키워드를 사용하고 yield에서 함수를 멈출 수 있음a를 호출하면 반환값이 없음value랑 done property를 가짐value는 yield 오른쪽의
함수를 변수에 할당해 주는 것으로 함수 선언문과 문법만 다르고 동작방식, 실행방식도 동일하다.그렇다면 왜 함수 표현식을 쓸까??호출하는 타이밍이 다르기 때문이다.함수 선언문은 어디서든 호출이 가능하다.선언문 위에서 호출하든 아래에서 호출하든 동일하게 호출이 된다.자바스
이상한 코드를 봤다.분명 내가 알고 있는 화살표 함수는 이거 였는데??내가 알고 있는 것과 조금 달랐다.그래서 구글링을 해보니,,,https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Functions
맨날 onClick만 해봤으니 우클릭도 해볼까??이런식으로 구현할 수 있다.onContextMenu는 자바스크립트에서 우클릭을 할 수 있게 해주는 이벤트이다일반 onClick 이벤트 함수와 동일하게 사용하면 된다.하지만 중요한 것은 event.preventDefault
this는 함수르 호출하는 방법에 의해 결정된다. but bind메소드를 이용해서는 호출과 무관하게 묶을 수 있다. 예시 myWhoAmI와 someone.whoAmI가 같지만 다른결과가 나오게 된다. 전자에서는 someone을 가르키는 반면 후자의 경우는 win
함수를 선언하면오른쪽 그림처럼 스코프가 생기게 된다.즉 outer라는 공간(함수) 안에 a라는 변수의 이름에 1이 할당이 되있는 것이다.이제 outer라는 함수 내부에 inner라는 함수를 만들어 보면다음과 같이 된다.outer라는 함수 스코프 안에 inner라는 함수
자바스크립트는 싱글스레드 언어이다.싱글스레드란?스레드가 하나라는 의미로 자바스크립트에는 콜스택이 하나이기 때문에 붙혀졌다.콜스택이란?코드를 실행해주는 곳이라고 생각하면 되며 콜스택은 무조건 비워지려는 특성이 있다.예시위에서 부터 하나하나 실행이 되기 때문에 2, 1초쉬
이라는 html에서 id가 test인 div에 <h1>안녕하세요</h1>를 출력하고 싶으면?Uncaught TypeError: Failed to execute 'insertAdjacentElement' on 'Element': parameter 2 is no
주구장창 리액트에서만 module을 내보내고 받고 해왔다.하지만 바닐라로 구현해보면서 당연히 되야할 것들이 되지 않아 당황스러워서 블로그에 글을 쓰기로 하였다.우선 경로에 .js로 파일을 생성해준다.export 하는 방법은 아래와 같다참고https://ko.j