본문 바로가기

Javascript

[JavaScript] 숫자 타입의 정수와 실수의 관계 자바스크립트에서는 추상적 비교 연산인 == 키워드를 제공한다. 추상적 비교 연산을 이용하여 값을 비교한다면 의도치 않은 결과값을 반환할 수 있다. 1 == '1' // true 의도치 않은 결과를 방지하기 위해 ES5에서는 보다 엄격한 비교 연산인 === 키워드를 제공한다. 1 === '1' // false 정수와 실수를 비교 연산하면 결과값은 true일까 false일까? 1 === 1.0 // true 자바스크립트에서 숫자 타입은 모두 실수로 처리되기때문에 정답은 true이다. 정수가 아닌 실수로 처리되기 때문에 정수끼리 나누기 연산을 하더라도 실수가 출력된다. 16/5 // 3.2 또한, 자바스크립트에서는 2진수, 8진수 16진수를 표현하기 위한 타입을 제공하지 않기 때문에 모두 10진수로 표현된다... 더보기
[JavaScript] 변수 선언과 값 할당의 메모리 구조 JavaScript에서 변수 선언과 할당에 따른 메모리 구조는 다음과 같습니다. JavaScript는 변수 선언과 값 할당을 함께 표현하여도 변수 선언과 할당을 나눠서 표현합니다. // 개발자가 작성한 코드 let value = 'hello'; // 자바스킯트 엔진이 실행하는 코드 let value = undefined; value = 'hello'; 같은 변수에 값을 할당하기 때문에 사용했던 메모리 공간에 값을 할당할 것이라고 생각할 수 있지만 실제로는 새로운 메모리 공간을 생성하여 값을 저장합니다. 새로운 값을 할당하여도 새로운 메모리 공간을 생성하여 값을 저장합니다. 이후 참조되지 않은 불필요한 값들은 가비지컬렉터에 의해 정리됩니다. 더보기
[JavaScript] 호이스팅(hosting)의 이해 JavaScript에서 var 키워드를 사용하는 경우 호이스팅을 조심해야합니다. 즉, 변수 사용 시 예상하지 못한 결과를 반환할 수 있습니다. 호이스팅(hoisting)이란, 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미합니다. https://developer.mozilla.org/ko/docs/Glossary/Hoisting 호이스팅 - 용어 사전 | MDN JavaScript에서 호이스팅(hoisting)이란, 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미합니다. var로 선언한 변수의 경우 호이스팅 시 undefined로 변수를 초기화합니다 developer.mozilla.org 호이스팅으로 인해 발견되는 문제점을 보완하기 위해 ES6에서.. 더보기
[JavaScript] 배열 내 특정 값 찾기 - find(), includes() ,Set 객체의 has() find() 메서드를 통해 배열 내 특정 값 찾기 const array = [1, 2, 3, 4]; array.find(data => data === 1);// 1 array.find(data => data === 3);// 3 array.find(data => data === 5);// undefinded 주어진 조건을 만족하는 값을 출력한다. 주어진 조건을 만족하는 값이 존재하지 않을 경우 undefinded를 리턴한다. includes() 메서드를 통해 배열 내 특정 값 찾기 const array = [1, 2, 3, 4]; array.includes(1)// true array.includes(3)// true array.includes(5)// false 값이 존재하는 경우 true를 리턴한다... 더보기
[JavaScript] Set 객체를 통해 배열 중복 제거 const array = new Set([1, 2, 3, 3, 2, 1]); console.log(array) // {1, 2, 3} 더보기
[React][Next.js] <Link></Link>를 통한 라우터 기능 - <Link> 내부에 <a> 태그를 넣는 이유 사용 방법 import Link from 'next/link' function Home() { return ( About ) } export default Home Next.js에서 라우터 기능은 다음과 같이 사용합니다. ... 형식을 사용하지 않는 이유 React는 SPA(Single Page Application)구조를 가지고 있어 하나의 페이지에서 모든 행위들이 일어나야하는데 About us 형식을 사용하게 되면 새로고침(페이지 이동)을 하기 때문입니다. 내부에 태그를 넣는 이유 About 위와 같이 태그를 넣지 않아도 넣은 것과 외관상 차이가 없으며 기능도 정상적으로 동작하는 것을 확인할 수 있습니다. About 그러나 위와 같이 태그 내부에 class 요소를 추가하여 HTML를 랜더링하면 cla.. 더보기
mongoose에서 화살표 함수(arrow function)이 동작하지 않는 이유 javascript에서 제공하는 this는 예외적으로 화살표 함수를 사용할 수 없다. 문제 발생 회원가입 API 호출 시 결과가 false인 경우 오류 메시지가 나오도록 구현하였는데 따로 오류 메시지가 출력되지 않음. 오류 메시지가 출력되지 않은 이유는 아직 파악하지 못함. 원인 결론, this는 화살표 함수를 사용하지 못한다. moogoose 패키지의 userSchema.pre() 함수 사용하여 비밀번호 암호화하는 기능을 구현 비밀번호 정보르르 불러오기 위하여 스키마 정보를 this로 조회 userSchema.pre("save", (next) => { let user = this; if (user.isModified("password")) { // 비밀번호를 암호화 bcrypt.genSalt(saltR.. 더보기
[JavaScript] reverse 함수 reverse()는 배열의 순서를 반전시킵니다. const num = [10, 20, 30, 40, 50]; const value = num.reverse(); console.log(value); // [50, 40, 30, 20, 10] 더보기

반응형