본문 바로가기

Tech/JS5

.filter(Boolean) https://github.com/mdn/yari/pull/4233/files에서 .filter(Boolean)를 보았다. 무슨 문법일까? avoid possible duplicate section IDs by peterbe · Pull Request #4233 · mdn/yari Fixes #4227 I ran out of time but I'd like to write an end-to-end test that checks this. That's why it's a Draft PR. Some good pages to test this on: http://localhost:3000/en-US/docs/W... github.com const allIDs = new Map(); sections .map((.. 2021. 7. 30.
undefined 초기화 코어 자바스크립트를 읽다가 다음과 같은 문장을 접할 수 있었다. 예제 1-19의 [1]의 '값을 대입하지 않은 변수. 즉 데이터 영역의 메모리 주소를 지정하지 않은 식별자에 접근할 때 undefined를 반환한다'는 내용은 다른 자바스크립트 입문서에서 소개하는 내용과는 거리가 있습니다. 즉 'var a'라는 구문에 의해 식별자 a에 자동으로 undefined가 '할당된다'고 소개하는 것이 일반적입니다. 그런데 자바스크립트가 실제로 그렇게 동작하는 것은 아닙니다. 정확히는 아무것도 할당되지 않고 끝나며, 이후 변수 a에 접근하고자 할 때 비로소 undefined를 반환하는 것이 맞습니다. var a 로 선언하고 아무것도 할당하지 않았을 때, 아무것도 할당이 되지 않는다는게 사실일까? 궁금해졌다. MDN M.. 2021. 7. 30.
불변성 Immutability Immutability(변경불가성)는 객체가 생성된 이후 그 상태를 변경할 수 없는 디자인 패턴이다. 객체는 참조 형태로 전달하고 전달 받는다. 의도하지 않은 객체의 변경이 발생하는 원인의 대다수는 “객체의 레퍼런스를 참조한 다른 객체에서 객체를 변경”하기 때문이다. var user = { name: 'hochan', gender: 'male' } var changeName = function (user, newName) { var newUser = user; newUser.name = newName; return newUser; }; var user2 = changeName(user, 'holee'); console.log(user.name, user2.name) // holee holee consol.. 2021. 7. 30.
ES5 vs ES6 Javascript에서는 ES5(2009년 12월)와 ES6(2015년)의 차이를 많이 물어보곤한다. 버전 차이에 따른 기능 추가가 가장 뚜렷한 두 버전이기 때문이다. Javascript는 ES6를 기점으로 매년 새로운 버전을 표준으로 반영하고있다. 어떤 변화가 있었는지 알아보자. https://262.ecma-international.org/6.0/ ECMAScript 2015 Language Specification – ECMA-262 6th Edition 5.1.1 Context-Free Grammars A context-free grammar consists of a number of productions. Each production has an abstract symbol called a no.. 2021. 7. 30.
자바스크립트 꼬리물기와 for에 관하여... 재귀 함수에 관하여 (&& unrolling recursion) 모든 프로그래밍 문제는 패턴을 찾으면 쉽게 해결할 수 있다. 우리는 패턴을 짜기에 가장 먼저 재귀 함수를 쉽게 떠올릴 수 있다. 그렇게에 주로 재귀 함수를 통해 문제를 해결하려고 한다. 1부터 num까지 더하는 재귀 함수 function sum(num){ if (num == 1) return (1); return (sum(num-1) + num); } 하지만, 재귀 함수들은 항상 stackoverflow의 위험 가능성이 있다. 우리는 고작 재귀 함수로 100000의 덧셈도 계산하지 못한다. 또한, 이런 코드들은 잠재적으로 버그를 일으킬 가능성이 높고 버그를 알기도 쉽지 않다. 꼬리물기 재귀 함수 C는 메모리를 모두 사용할 때까지 제한 없이 .. 2021. 5. 28.