본문 바로가기

Javascript

(8)
동치 비교 및 동일성 strict equality ,no type conversion var num = 0; var obj = new String("0"); var str = "0"; var b = false; console.log(num === num); // true console.log(obj === obj); // true console.log(str === str); // true console.log(num === obj); // false console.log(num === str); // false console.log(obj === str); // false console.log(null === undefined); // false console.log(obj === null); // false console..
String.prototype method indexOf() String 인스턴스에서 특정 문자나 문자열이 처음으로 등장하는 위치의 인덱스를 반환함. lastIndexOf() String 인스턴스에서 특정 문자나 문자열이 마지막으로 등장하는 위치의 인덱스를 반환함. charAt() String 인스턴스에서 전달받은 인덱스에 위치한 문자를 반환함. charCodeAt() String 인스턴스에서 전달받은 인덱스에 위치한 문자의 UTF-16 코드를 반환함. (0 ~ 65535) charPointAt() String 인스턴스에서 전달받은 인덱스에 위치한 문자의 유니코드 코드 포인트(unicode code point)를 반환함. slice() String 인스턴스에서 전달받은 시작 인덱스부터 종료 인덱스 바로 앞까지의 문자열을 추출한 새 문자열을 반환함..
Array.prototype method 배열 내장함수 : 배열을 다룰 때 유용한 내장 함수 참고 :Array - JavaScript | MDN (mozilla.org) forEach 우선 for문을 사용하면 const superHeroes = ['아이언맨', '캡틴 아메리카', '토르', '닥터 스트레인지'] for (let i = 0; i { console.log(hero); }) map map 은 배열 안의 각 원소를 변환 할 때 사용 되며, 이 과정에서..
표현식과 연산자 1. 표현식과 연산자 값은 다양한 방법으로 생성할 수 있다. 여기서 말하는 다양한 방법이란 표현식을 말한다. 프로그래밍 언어에서 표현식은 중요한 역할을 한다. 다시 한번 표현식에 대해 살펴보자. 표현식(expression)은 리터럴, 식별자, 연산자, 함수 호출 등의 조합을 말한다. 표현식은 평가(evaluation. 표현식을 실행하여 하나의 값을 만드는 과정)되어 하나의 값을 만든다. 즉, 표현식은 하나의 값으로 평가될 수 있는 문(statement, 문과 표현식 참고)이다. 표현식은 리터럴 표현식, 식별자 표현식, 연산자 표현식, 함수/메소드 호출 표현식 등으로 나누어 볼 수 있지만 결국 평가되어 하나의 값을 만든다는 점에서 모두 동일하다. // 리터럴 표현식 10 // 식별자 표현식 sum // 연..
데이터타입 , undefined, null, NaN 차이점 undefined undefined 는 변수를 선언은 하였지만, 값을 할당하지 않을 경우의 상태를 나타낸다.(변수의 초기값인 셈) const word console.log(word) // undefined 원시 자료형에서의 undefined Boolean(undefined) // false Number(undefined) // NaN String(undefined)// 'undefined' typeof(undefined) // 'undefined' null null 은 명시적으로 값이 비어있는 상태를 나타낼 때 사용된다. const word = null console.log(word) // null 원시 자료형에서의 null Boolean(null) // false Number(null) // 0 Str..
원시타입(primitive type)과 참조타입(reference type) 원시타입(primitive type)과 참조타입(reference type) 원시타입(primitive type) String, Number, Boolean, Null, Undefined와 같은 타입이며 ES6(ECMAScript 2015)에서Symbol타입이 추가되어 총 6개의 로 이루어진 타입이다. 원시타입은 메모리에 값을 그대로 저장한다. const a = 3100; let b = a; b = 3; console.log(a); // result 3100 참조타입(reference type) 객체, 배열, 함수 ... 등과 같은 Object형식의 타입이며, 메모리에 값을 주소로 저장하고, 출력시 메모리주소와 일치하는 값을 출력한다. const origin = { a: 1, b: 2, c: 3, d: ..
자바스크립트 동작원리 비동기처리 part2 비동기적 자바스크립트 비동기처리란 특정 코드가 종료되지 않았어도 대기하지 않고 다음 코드를 실행하는 자바스크립트의 특성이다. 동기식 (Synchronous) 먼저 시작된 하나의 작업이 끝날 때까지 다른 작업을 시작하지 않고 기다렸다가 다 끝나면 새로운 작업을 시작하는 방식이다. 위 그림 Synchronous와 같이 작업이 직렬로 배치되어 실행되며 작업 실행의 순서가 확실히 정해져 있는 것을 동기식 처리라 부른다. 비동기식 (Asynchronous) 동기식 방식과는 다르게 먼저 시작된 작업의 완료 여부와는 상관없이 새로운 작업을 시작하는 방식이다. 위 그림 Asynchronous와 같이 작업이 병렬로 배치되어 실행되며 작업의 순서가 확실하지 않아 나중에 시작된 작업이 먼저 끝나는 경우도 발생한다. 이와 같..
자바스크립트 동작원리 , 비동기처리 part1 자바스크립트 엔진 아래는 자바스크립트 엔진의 구조도를 간단히 나타낸 그림입니다. 엔진의 주요 두 구성요소는 Memory Heap : 메모리 할당이 일어나는 곳 Call Stack : 코드 실행에 따라 호출 스택이 쌓이는 곳 런타임 거의 모든 자바스크립트 개발자들이 setTimeout 과 같은 브라우저 내장 API를 사용합니다. 하지만, 이 API를 자바스크립트 엔진에서 제공하지는 않습니다. 그럼 얘네들은 대체 어디서 오는 걸까요? 사실 현실은 좀 더 복잡합니다. 위 그림처럼, 자바스크립트 엔진 이외에도 자바스크립트에 관여하는 다른 요소들이 많습니다. DOM, Ajax, setTimeout 과같이 브라우저에서 제공하는 API 들을 Web API라고 합니다. 그리고 아래쪽에 이벤트 루프와 콜백 큐도 있네요...