arguments는 배열처럼 보이지만 배열은 아닌 함수의 지역변수이다. 함수가 실행되면 arguments가 생성된다. function a(){ console.log(arguments); console.log(arguements.length);}a(1,2,3,4); //[ 1,2,3,4, callee: ƒ, Symbol(Symbol.iterator): ƒ ] , 4 a(); // [callee: ƒ, Symbol(Symbol.iterator): ƒ] , 0 arguments는 배열은 아니지만 length 프로퍼티를 가지고 있는 object다. 따라서 arguments는 pop메소드를 가지고 있지 않다. 그러나 array처럼 만들어줄 수 있다. var args = [ ...arguments]; console..
2비트는, 0과 1로 이루어질 수 있는 2진수의 메모리를 말한다. 바이트란 이 2진수의 비트가 8개 모여있을 것을 말한다. 바이트가 한번에 표현할 수 있고 담을 수 있는 메모리는 곧 2^8개를 의미한다. 자바스크립트에서 표현하는 수의 메모리는 "이중정밀도 64비트 IEEE 754값"이다. 자바스크립트에서 수를 표현할 때 주의해아하는 부분이 있는데, 첫째는 아주 큰 값을 표현할 때이고 둘째는 정수가 아닌 소수를 표현할 때이다. C언어와 비교하자면 C언어는 정해진 메모리에서 정확한 수를 알려주지만 크기가 정해진 메모리를 초과할 경우 받아들이지 못한다. 이에 반해 자바스크립트의 경우는 메모리의 크기가 정해져있지만 아주 큰 규모의 수도 받아들일 수 있다. 그러나 정해진 메모리에서 받아들이기 위해서는 의도적으로 ..
var tab = function(){ var test= document.getElementById('test'); var tabWrapper = document.querySelector('.module_tab ul'); var tabList = tabWrapper.getElementsByTagName("li"); var tabBtn = tabWrapper.getElementsByTagName('button'); var tabBlock = tabWrapper.querySelectorAll('.module_tab__contents'); console.log(test); // console.log(tabWrapper); // ... console.log(tabList); //HTMLCollection(4) ..
C언어에서는 number, string이 객체로 존재한다. 어느정도 C언어를 기반으로 만들어진 javascript에서 기존 언어들의 개념으로 생각해보면, 수(number)와 문자열(string)은 수많은 객체들 중에 존재한다고 이해할 수도 있다. 그러나 자바스크립트에서는 수와 문자열을 원시객체로써 받아들인다. 또한 수와 문자열 뿐 아니라 null과 boolean, undefined 도 원시객체이다. (주의할 점은, 자바스크립트라는 언어에서만 그렇다는 점이다.)-nullnull은 크기가 정해진 그릇에 아무것도 담고 있지 않는다는 의미를 지니고 있다. 그런데 컴퓨터는 사실 아무것도 담겨 있지 않은 그릇이라는 개념을 받아들이지 않는다. 그렇기 때문에 보이지는 않지만 null이 가진 그릇 안에는 0이 담겨있다...
css를 하나 줄 때 $(.test).css('background-color', 'red'); // returns : string css를 다중으로 줄 때 바른 방식의 코딩$(.test).css({ 'background-color' : 'red', 'width': '30px', 'color' : 'blue'});// returns : array 틀린 방식의 코딩$(.test).css([ 'background-color' : 'red', 'width': '30px', 'color' : 'blue']);
jquery를 이용했을때 쉽게 코드를 짤 수 있다는 장점이 있지만, jquery로 짠 코드가 순수 javascript를 사용한 코드보다 브라우저에서 코드의 구동속도가 느리다는 점을 간과할 수 없다.속도가 빠른 순으로 나열해보면, 1. getElementById를 이용하는 경우가 가장 빠르다. (var $a = document.getElementById('song');) 2. queryselector 로 id를 불러올 때 (var $a = document.querySelector('#song');) 3. jquery의 id셀렉터 (var $a = $('#song');) 4. queryselector로 class를 불러올때 (var $a = document.querySelector('.artist');) 5..
자바스크립트 리딩 스터디를 하는 중에 변수의 초기화 방법에 대해서 얘기를 나눴다. 변수를 처음에 선언할 때는 var 변수명; 의 형식을 갖는다. 이를 개인적으로는 "이제 (변수명)이라는 변수가 존재한다~"라고 해석했다. 변수에 선언을 할때에는 var 변수명 = (값); 의 형식으로 했다. 이를 "이 (변수명)은 (값)을 메모리에 담았어~/ (값)을 가지고 있어~"라고 해석했다. 그렇다면 이 변수명에 들어있는 값을 초기화하고 싶을 때는 어떻게 해야하는가? i) var 변수명; 변수명을 다시 선언해주는가? ii) var 변수명 = undefined; 개인적으로 두번째 방법을 사용해왔다. 왜냐하면 /*var 변수명*/이라는 것은 "변수 (변수명)이 존재해~"라는 말을 다시 한번 반복해주는 것에 미치지않기 때문..
자바스크립트의 데이터타입은 크게 두 분류로 나눌 수 있다. 변경불가능한 값인 "기본타입"과 식별자(Identifier*)로 참조할 수 있는, 메모리에 있는 값인 "객체(object)". 기본 타입에는 숫자(number), 문자열, 블린(Boolean), null, undefined, Symbol(ECMAScript 67에서 정의된 래퍼타입)이 있다. 객체에는 배열(array), 함수(function), 정규표현식(RegExp), 날짜(date)가 있다. *Identifier : 식별자는 문자숫자식의 형태와 특정한 특수기호($, _)을 포함할 수 있고, 숫자로 시작하지 않는 특성을 가지고 있다. 데이터의 호출방식에는 두 가지 방법이 존재한다. 1, 값에 의한 호출(call by value)2. 참조에 의한..