본문 바로가기

전체 보기

(223)
스코프 , 객체 Memory leak 렉 - 메모를 업그레이드 해주면 줄어든다 원시타입과 객체는 다르다 이뮤터블 vs 뮤터블 값이 변한다는게 뭐냐? 값이 안변한다는게 뭐냐? 수학적 상수로 생각하면 안됨 값을 가지고 있을 수 있으면 변수 변수 상수와 이뮤터블 뮤터블은 구분해서 생각해야된다 상수의 구분 단위는 : 재할당이 가능한가 아닌가지 값이 변하냐 안하냐가 아니다 ㅡ>ex)재할당이 아닌행위를 통해 (객체) 변한 경우 대부분언어는 문자열을 객체나 배열로 다루는데, (몇글자가 될지 모른다) 변수는 프로그래밍에서 좋다고 말할 수 없다(에러가 나올 가능성이 많다) 자료형이 다르거나, 예상한 값이 안나온다 변수를 최대한 적게 사용하는게 좋다 꼭 써야되는 경우면 전역변수보다 지역 변수로 쓰고 없애지는게 낫다(스코프를 좁게) 스코프..
사이트 및 오늘 공부한내용 https://underscorejs.org/#map Underscore.js Underscore is a JavaScript library that provides a whole mess of useful functional programming helpers without extending any built-in objects. It’s the answer to the question: “If I sit down in front of a blank HTML page, and want to start being productive underscorejs.org 10 ~ 12 변수, 상수 (재할당을 할 수 있느냐 없느냐 원시값 (값을 변경할 수 있냐없냐) 의도적:명시 의도x엔진 :암묵적 암묵적형변환의 문..
연산자,조건문,형변환 논리 연산자 항상 true false만을 리턴하진 않는다. not은 항상 불리언값을 반환한다 typeof = 연산자다 typeof('1') 이 표현식이..
값, 표현식 ,문 ,리터럴, 정의,선언,호이스팅 값, 더이상 표현될 수 없는 표현식 표현식 = 값을 생성하는문, 하나의 값으로 평가될 수 있는 문 문 : 명령문, 제어문 컴퓨터에게 명령의 무리 하나 이상의 표현식과 키워드의 조합으로 구성된 자바스크립트 엔진에게 내리는 명령 리터럴: 소스코드 안에서 직접 만들어낸 고정된 값 ㅡ>js엔진에의해 값으로 변경 엔진에게 사람이 이해 할수 있게 명령 리터럴은 값이 되므로 값이라고 해도 무방 정의: 변수에 값을 할당해 실체를 명확히 하는것. 변수를 선언 메모리의 공간의 이름을 정함 단, 자바스크립트에서는 선언만해도 undefined값으로 자동 정의됨 구분x 변수 호이스팅 : 선언문이 호출문보다 뒤에있음에도 참조에러가 아닌, undefined가 출력되는것. 선언문이 자바스크립트 런타임이 아닌, 파싱타임에 실행되기 때..
변수 ~ 연산자 eslint 환경만들기 메모리란? 1바이트 단위로 저장된 셀단위 int i = 정적타입 언어 타입이 정적이다 (선언할때) var a 동적타입 언어 타입이 동적이다 (할당할때 변수에 값에따라 종류가 달라진다) 선두 주소만 기억하고, 타입에 의해서 몇 바이트를 가져와야겠다 앎 자바스크립트는 개발자가 타입을 덜 신경쓰게 만든 언어다. 타입이 없는게 아니다. type스크립트를 쓰면 (자바 스크립트를 정적 타입언어 처럼 사용할 수 있게 만듬) 자바스크립트 실행환경 3가지 cmd창에 node 치고 거기에 자바스크립트 코드 작성 console 에디터사용 초기화단계 var x 자바스크립트 엔진한테 x라는 변수명(식별자)를 사용하겠다고 알리는것 실행컨텍스트때, x라는거 사용하겠다고 써두고 메모리공간확보 원시타입값은 변경..
변수, 선언, 식별자, 할당, 정의 변수,:어떠한 '한 값'을 갖기위한 메모리의 '주소' 또는 '그 자체' 선언 var a (주소의 값의 이름을 엔진에게 알려준다. 그자체를 엔진에게 알려준다) 할당 (그 공간 자체에 값을 할당) 식별자(변수,함수 등 다른것과 구별할 수 있게 하는것) -어떤것을 구분하기 위한 것 변수,함수 ( 그중 이미 선언된 식별자가 예약어) 정의(var a ; 를 하게되면 '타언어에선 선언'만 되지만 자바스크립트에서는 자동으로 undefined라는 값으로 할당까지 이뤄지고, 정의된다. 그렇기 때문에 선언과 정의를 구분하는 것은 의미가 없고, 굳이 차이점을 만들어야한다면 var a = null;을 하여 a에 값이 없게 만들어야 한다 선언만 된 상황)
var, let, const의 차이는? var, let, const는 변수를 선언하기 위한 키워드이며 버전에 따른 차이가 있습니다. es6 이전에는 모두 var 키워드로 변수를 선언했고 편리했지만 단점을 발생시켰습니다 es6 이후 let과 const 키워드가 생겨난 후, 더 이상 var 키워드는 사용하지 않는 것이 좋으며 대표적인 차이는 호이스팅 되는 방식입니다. var 키워드는 함수 레벨 스코프를 지원하며 let, const 키워드는 블록 레벨 스코프를 지원합니다 let 과 const의 차이는 재할당이 가능 여부인데 let은 가능 const는 불가능합니다. --- var의 단점: - 함수 레벨 스코프 - var 키워드 생략 허용 - 변수 중복 선언 허용 - 변수 호이스팅 - 긴 생명주기 - 암묵적 결합 - 스코프 체인 상 종점에 위치 - 네..
브라우저의 동작원리 브라우저의 동작원리 사용자가 브라우저에다가 주소검색창에 블라블라를 치고 엔터를 치면, 브라우저 엔진에서 서버에 자원을 요청하고 받은뒤, 랜더링엔진에 가서 html파일을 로드한뒤, 파싱해서 dom트리를 그린다 그리는 와중에 css링크를 만나면, dom트리 그리던걸 중단하고 css를 로드해서 파싱하고 cssom트리를 그린다. dom트리와 cssom트리를 다 그리면 렌더트리를 완성하는데, 완성하기전에 script태그를 만나면, 자바스크립트 엔진으로가서 자바스크립트를 로드한뒤 파싱하고, ast를 그린다 이것을 다끝내면 렌더트리를 그린뒤 사용자에게 보여준다. 이과정이 브라우저의 동작원리이고, 이때 브라우저의 핵심기능은 렌더링트리가, script태그를 바디 끝부분에 작성하는이유는 dom트리가 다그려지기 전에 동작들..