Javascript/Javascript 4

Javascript에서 Array는 Array가 아니다?

(티스토리는 PC에서 문단이 안보이는 현상이 있습니다.) 우리가 흔히 C++, java 등에 있는 array하고는 다릅니다. c++, java 등에서 사용되는 array는 연속된 메모리주소에 있는 값을 말합니다. int[] a = new int[]{0,1,2,3,4,5}; (메모리주소) (값) (값) (값) (값) ... 00400400 00 01 02 03 04 05 ... 하지만, javascript에서 array는 객체입니다. 연속된 메모리를 가지는 것은 아닙니다. 그리고 객체는 Property를 가질 수 있습니다. var john = []; // john이라는 배열이라는 **객체** 생성. john[“name”] = “john” // 객체는 속성을 가질 수 있음. 그러므로 john[“name”] ..

자바스크립트가 어떠한 방법으로 비교를 하는가? (Do you know x==y Equality Comparison Algorithm in javascript?)

자바스크립트가 어떠한 방법으로 비교를 하는가?어떤 x,y와를 비교한다고 했을때 x==y 를 어떤식으로 비교하여 true 와 false을 내보내는지 알아봅시다.x와 y의 type이 같은지 먼저 체크합니다.x의 type이 Undefined이면 true ( 타입이 같으니까 y는 굳이 할필요가 없습니다.)x의 type이 Null truex의 type이 Number이면x가 NaN이면 falsey가 NaN이면 falsex와 y의 값이 같으면 truex가 +0 y가 -0이면 truey가 -0 y가 +0이면 truefalsex가 null이고 y가 undefined인지 확인x가 undefined 이고 y가 null인지 확인x가 Number, y가 String이면, x==ToNumber(y)를 비교x가 String이고 y..

javascript this에 대해서 제대로 알아봅시다.

ThisThis는 많은 사람들이 헷갈려 합니다. 그러면 어떻게 구별을 해야하는가? This는 호출한 놈이 누군지 보면 됩니다.var someone = { name: 'bugtype', showMessage: function() { console.log(this) } }위와 같은 객체를 만들고 아래와 같이 한번 실행을 해봅시다.// case 1 var object = someone object.showMessage();호출한놈 : object결과 : {name: "bugtype", showMessage: ƒ}// case 2 var object2 = someone.showMessage console.log(object2)호출한놈 : window ( console.log )결과 : ƒ () { console..

apply, call, bind 차이

call(), apply(), bind() 차이call(), apply() 는 ECMA 3에서 추가 되었으며, bind()는 ECMA 5에서 추가 되었습니다.call(), apply()는 invoke입니다. 함수 호출을 즉시 합니다.bind()는 나중에 실행될때 사용 됩니다. 특정 이벤트를 함수를 호출해야 할때 유용합니다.I. call()func.call(this, arg1, arg2, … argN);this 부분에 객체를 넣어주면 그걸 가리키게 된다. 특이사항은 파라미터를 일일이 콤마로 구분해서 넣어줘야 하는 것.// callvar obj = {name:"Niladri"};var greeting = function(a,b,c){ return "welcome "+this.name+" to "+a+" "+..