본문 바로가기

Programming/javascript

(6)
javascript : string 은 immutable call by referrence와 call by value 에 대한 차이점에 대한 이해가 중요합니다. javascript 의 primitive type 들은 모두 call by value 로object type 들은 모두 call by refrerrence 로 데이터 연산이 일어나는데.string 은 immutable 성격을 가지게 하기 위해 object 이지만,call by value 로 데이터 연산이 일어납니다. 위의 경우를 이해하고 있지 않으면,코드 재사용시에 발생할 수 있는 오류를 막을 수 있습니다.
javascript : [오늘의 명심] javascript 작성시에는in browser code, out browser code 를 분리하여 작성.
[javascript] 배열복사(passing by value) 편하게 하기. javascript의 array는 object입니다. 따라서 복사하려는 array 변수를 대입연산 이용시 paasing by reference가 일어나 주소값이 복사되지요. (얕은 복사, shallow copy) 간혹 소스보기를 통해 javascript 코드를 쫓다보면 위 문제를 막고자 반복문을 통해서 copy하는 경우를 보게 됩니다. 이는 코드생산성에 별로 좋지 않은 방법같습니다. 그래서 소개해드릴 방법은 array object가 제공하는 메소드를 이용하는 겁니다. 바로 slice() 메소드입니다. slice 메소드의 매개변수는 숫자를 매개변수로 받고 그 매개변수를 index로 인식하여 해당 index 부터의 값들을 copy하여 array를 새로운 객체로 return합니다. 보통은 array.slice..
[javascript] self.close(); 로 브라우저를 못닫는 경우. 이는 브라우저를 닫는 window 객체의 close() 메소드입니다.이게... IE에서는 잘 작동하지만 chrome 에서는 작동하지 않더군요 ㅠㅠㅠ그래서 검색을 좀 하다보니 알려준 꼼수가 아래와 같습니다. IE, chrome 모두 확인하였습니다만, 다른 메이저 브라우저에서는 미확인하였습니다.(조만간 확인해서 포스트를 업데이트하도록 하겠습니다 ㅠㅠ)
[javascript] class object를 원소로하는 array의 sort 우선 제가 현재 주력으로 사용하는 언어인 java의 자료구조는 내부의 원소들을 정렬할 때 원소의 특정 property만으로 정렬이 가능한데요, (이는 관련해서 조만간 정리해야겠네요^^;) 쉽게 생각하자면 database의 특정 column을 이용하여 내림차순, 오름차순 하듯이 data정렬을 하는 것 입니다. 이는 javascript에서도 그대로 사용이 가능합니다. 우선 javascript 의 Array 는 sort 메소드를 제공합니다. 이는 보통의 문자열이나 숫자를 sort하는 데에 매우 고마운 메소드입니다. 일반적으로 이와 같이 사용할 수 있죠. var a = [33, 4, 1111, 222]; a.sort(); >>>> 1111, 222, 33, 4 이를 javascript the definitive..
[javascript] 기본형(value)을 passing by reference로 통신하기. javascipt 역시도 OOP 개념이 잘 적용되어있습니다.(타입에 대한 강제성이 없다보니 코딩이 빠른만큼, 그만큼 불안하지만 말이죠^^;) function plus(arg){arg = arg+1;} 위와 같이 파라미터에 값만 1을 추가하는 함수가 있다고 합시다. 위와 같은 경우엔 alert으로 1을 출력합니다.literal 이 value 이기 때문에 passing by value 가 된거죠. 그런데 이런 경우말고, function을 이용해서 data를 변조하고 싶은 경우도 있죠?그럴땐 object화 하여야합니다.그리고 함수도 살짝 손봐야겠지요, parameter가 오브젝트이니 그에 맞게 말이죠.위와 같은 경우엔 alert으로 2를 출력합니다. 학교에서 배웠던 passing by reference, pa..