Search
Duplicate

기본 문법

1. 문장

JS 코드 실행 단위

Statement

세미콜론(;) 까지 하나의 문장으로 본다
⇒ Ex: var book = "책";

문장 시작 위치

위치 제약은 없습니다.
들여쓰기: 일반적으로 2칸, 4칸
function Hello(){ var book = "책"; var car = "차"; }
JavaScript
복사
1번 들여쓰기한 book과 2번 들여쓰기를 한 car는 둘 다 문제없이 동작한다. (파이썬 처럼 인덴트가 문법적 강제사항인 언어도 있습니다. )
하지만, 가독성이 떨어지기에 왠만해선 코드간의 인덴트를 맞춰주는게 좋습니다.

2. 변수

값을 저장하는 영역

사용 목적

: 변수에 저장된 값을 재사용 하기 위함입니다.

변수 선언 방법

var book1; //변수만 선언 var book2 = "책"; //변수에 값을 할당 var book3 ="책3", book4 = "책4"; //콤마로 구분하여 다수 작성 var book5 = "책5", book6 = "책6"; //줄 바꾸어 작성
JavaScript
복사
시맨틱: 의미를 부여하여 변수 이름을 작명하는 것

변수에 값 할당 방법

var point = 123, point = 456; //좌측-> 우측으로 진행되며 최종적으로 할당된 값을 point에 할당합니다. console.log(point); // 456 var point2 = point3 = 123; // 같은 값 할당 console.log(point2, ", ", point3); // 123, 123
JavaScript
복사
같은 값 할당의 경우 오래된 브라우저에서 문제가 생길 수 있기에 권장하지 않는다. ⇒ 값이 연동되는 경우가 생긴다. (추후 로직에서 point3에 다른 값을 할당하면 point2도 변경되는 경우가 생김. )

3. 주석

JS코드로 인식하지 않는 문장

주석의 종류

한 줄 주석
//var point = 123;
JavaScript
복사
블록(Block) 주석
/* var book = '책'; var car = '차'; */
JavaScript
복사
Multi-line을 지원하는 주석
/** 코드 */ 형태
/** * @author hansol * @desc ... * @return String */
JavaScript
복사
JS 스펙에 정의된 문법은 아니며 블록 주석과 같다.
개발자들의 코딩 관례( 프로그램 API 설명 문서)
JS Specification : 자바스크립트 문법을 작성한 문서 ES3, ES5는 JS Specification의 에디션(Edition)

4. console.log()

소괄호 안에 작성된 값을 브라우저 콘솔 창에 출력하는 메소드

특징

1.
문자, 숫자 등을 출력합니다.
2.
콤마로 구분하여 다수 작성 가능합니다. (ex: console.log("안녕", " ", "하세요."); // 안녕 하세요.
3.
소괄호 안에 작성한 값을 파라미터값이라 부릅니다.

console api 더보기

브라우저 콘솔 창 열기

크롬 브라우저, Window 기준
Ctrl + Shift + i or F12
사파리 브라우저 기준
cmd + option + i

5. 정수, 실수

정수

소수가 없는 숫자
123, -123

실수

소수를 가진 숫자
1.23, 1.0

JS는 정수, 실수를 구분하지 않는다.

1, 1., 1.0 모두 1.0으로 간주한다.
⇒ 다만, 표시는 1로 표시
console.log(1);//1 console.log(1.);//1 console.log(1.0);//1 console.log(1.0001);//1.0001
JavaScript
복사

숫자 처리

정수와 실수를 구분하지 않습니다.
64비트 부동 소수점 처리
IEEE754 표준
부동 소수점 처리란?
123 을 123.0으로 처리
console.log(.123);// 0.123 console.log(0.12 + 5);//5.12
JavaScript
복사
.123처럼 소수점 앞에 값을 작성하지 않으면 0을 붙혀 0.123으로 사용합니다.
정수와 실수를 구분하는 언어에선느 실수(0.12)와 정수(5)를 더할 수 없습니다.
⇒ 그렇기에 5를 실수(5.0)으로 변환하여 사용해야 합니다.
JS에서는 정수와 실수를 구분하지 않고 실수로 계산합니다.
IEEE(Institute of Electrical and Electronics Engineers): 전기전자공학 전문가들의 국제 조직.

6. 상수, 진수

변경할 수 없는 값

상수 변수

상수가 설정된 변수
JS는 변수의 값을 변경할 수 있으므로 상수 변수는 선언적의미
⇒ ES6 에서 const로 상수 선언이 가능하기에 무시해도 된다.

진수

10진수: 123
16진수
0xFF: 255
1번째에 숫자 0 작성
2번째에 영문자 x작성
3번째 이후 0~f 작성
⇒ 대소문자 구분하지 않음
console.log(0xF);//15 console.log(0xff);//255 console.log(0xfff);//4095
JavaScript
복사
0XF → 0X 는 16진수임을 나타냄으로 값이 아니며 그 뒤인 F가 15이므로 값은 15가 출력된다.(A:10, B:11, C:12, D:13, E:14, F:15)
0xff는 (16 * 15 +15)방법으로 계산
0xfff는 (16 * 16 * 15) + (16 * 15) + 15 계산하면 4095가 나온다.
8 진수
ES3에서 폐지되었다가 ES6에서 재정의되었다. 16진수 표기방식과 동일하게 하면된다.
2 진수
ES6에서 특별한 방법 제공

7. 데이터 타입(Data Type)

데이터 타입 형태

숫자 타입: var value = 123;
문자 타입: var value = "book";

typeof 연산자

데이터(값) 타입 반환
typeof value에 데이터를 작성
var point = 123; console.log(typeof point);// number var book = "책"; console.log(typeof book);// string
JavaScript
복사

키워드(keyword)

특별한 기능을 가진 단어 (ex: typeof, instanceof ...)

데이터 타입

데이터 타입을 자료형이라고도 부릅니다. (포스팅에서는 데이터 타입으로 표기)
데이터는 타입을 가집니다.
JS는 데이터를 기준으로 타입을 결정
타입을 먼저 선언하고 타입에 맞는 데이터를 할당하지 않음.
var value에는 타입이랄게 없습니다. 123, "책"과 같은 값을 넣으면 그 값에따라 타입이 결정됩니다.

8. Number 타입, String 타입

언어 타입과 스펙타입

1. 언어 타입

JS 프로그램에서 사용할 수 있는 타입
Undefined, Null, Boolean, String, Number, Object

2. 스펙(문서) 타입

언어 알고리즘을 위한 타입으로 JS프로그램에서 사용 불가
Reference, List, Completion, Property Descriptor, Data Block, Lexical Environment, Lexical Record

Number 타입

Number 타입
부호(+, -)를 가진 값
var point = 123; console.log(typeof point); // number point = -1.23; console.log(typeof point);//number
JavaScript
복사
숫자 값 범위
18,437,736,874,454,810,627 (2의 64승 -2의 53승 +3)
Number 타입의 특수한 3개 값
NaN: Not-a-Number 숫자가 아닌 것을 나타내는 값
var point = 1 * "A"; console.log(point);// NaN
JavaScript
복사
Infinity: 양수 무한대
-Infinity: 음수 무한대

String 타입

문자 타입
값을 "" 또는 '' 사이에 작성
최대 문자수: 2의 53승 -1
큰 따옴표와 작은 따옴표를 같이 사용할 때
var value = "책, '123'"; console.log(value); // 책, '123' var value = '책, "123"'; console.log(value); // 책, '123'
JavaScript
복사
따옴표안에 숫자를 작성하면 문자 타입이 됩니다.
var value = "123"; console.log(typeof value);// string;
JavaScript
복사

9. Undefined, Null 타입

Undefined 타입

스펙: Undefined(대문자)
값: undefined(소문자)
변수의 디폴트(Default)값
var point; console.log(point);// point
JavaScript
복사
변수에 값을 할당하지 않은것을 나타내는 시맨틱

Null 타입

스펙: Null(대문자)
값: null(소문자)

null과 undefined 차이점

undefined는 단지 변수만 선언하면 default로 선언된다.
null은 강제로 할당해야 값이 null이 된다.
의도적으로 값을 할당했는지를 구분할 수 있다.

10. Boolean 타입, Object 타입

Boolean 타입

진리값
값: true, false
console.log(true); // true console.log(false);//false
JavaScript
복사

Object 타입

Object 형태
{name: value} 형태
var book = { title: "책", price: 1000 }; console.log(book);//{title:책, point: 1000}
JavaScript
복사
프로퍼티(Property)
name과 value하나를 지칭한다.
Object는 프로퍼티의 집합이다.

타입 정리

JS의 기본 데이터 타입 정리
기본 데이터 타입을 Primitive 타입이라 합니다.
console.log(typeof 123);//number console.log(typeof "책");//string console.log(typeof true);//boolean console.log(typeof undefined);//undefined
JavaScript
복사
데이터 타입이 같다?
console.log(typeof null);//object console.log(typeof {book: "책"});//object
JavaScript
복사
ES6에서는 구분이 가능해진다!