안녕하세요. 자바스크립트 애로우함수에 대해 질문드립니다. let a = [1, 2, 3, 4, 5]; let b = 3; a = a.filter((x) => { if ( b !== x ) { return x } }); 이것과 a = a.filter(x => b !== x); 이것이 같다는것은 알고 있습니다. 그렇다면 a = a.filter(x => b !== x ); a = a.filter((x) => b !== x ); 이 차이점은 무엇인가요?
안녕하세요, 선생님. this 강의를 듣고 아래와 같이 this 바인딩 코드를 작성하였는데, 함수를 실행시킨 곳에서 this 바인딩이 되서 전역에 있는 name 변수 값인 outer가 출력이 될 줄 알았는데 전혀 예상과 다르게 undefined가 출력이 되는데요. 왜 그런지 궁금합니다. const name = 'outer'; function test1() { const name = 'test1'; console.log(this.name); } const test2 = () => { const name = 'test2'; console.log(this.name); }; test1(); // undefined test2(); // undefined
userSchema . pre ( 'save' , function ( next ) { // 비밀번호 암호와 var user = this ; if ( user . isModified ( 'password' )) { bcrypt . genSalt ( saltRounds , function ( err , salt ) { if ( err ) return next ( err ); bcrypt . hash ( user . password , salt , function ( err , hash ) { if ( err ) return next ( err ); user . password = hash ; next (); }); }); } else { next (); } }); 이거를 function 들을 화살표 함수로 바꿔보았는데 에러가 뜹니다. 혹시 왜그런지 알 수 있을까요?