일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- heroku
- ES6
- graphQL
- ECMAScript
- GRID
- 리액트
- node.js
- TypeScript
- API
- DART
- form
- CLONE
- javscript
- MongoDB
- frontend
- Mongoose
- Component
- HTML
- Flutter
- CSS
- 자바스크립트
- pug
- NextJs
- JavaScript
- clonecoding
- backend
- react
- express
- nodejs
- Session
- Today
- Total
Enjoy Programming
javascript의 기본 문법을 알아보자 본문
1. 변수 (variable)
프로그래밍을 공부하면 가장 중요한게 변수이다.
variable이란 메모리상에 value를 저장하고 그 저장된 value를 참조하기 위해 사용한다.
memory address에 접근하기 위해 사람이 이해 할 수 있는 언어로 지정한 identifier(식별자)
javascript에서는 변수를 선언할때 const, let, var를 사용한다. (var는 점점 쓰지 않는 추세이다.
2. value
값을 정의 하기에 앞서 용어 두개를 더 정리하자
변수는 이미 알고 있으니
data type: 프로그래밍 언어에서 사용할 수 있는 값의 type
literal : 소스코드 안에서 직접 만들어 낸 상수 값 자체를 말하며 값을 구성하는 최소 단위
여기에 value는 프로그램에 의해 조작될 수 있는 대상을 말한다.
값은 간단하게 literal notation을 사용해 표기 할 수 있다
ex> true, false, null, 'hello', 100, 1.2, [1, 2, 3], {name : 'lee', age : 37}
숫자, 문자열, 불리언과 같은 원시 type의 literal은 다양한 연산자의 피연산자가 되어 하나의 값으로 평가될 수 있다.
이렇게 literal은 연산에 의해 하나의 값이 될 수 있다.
ex> 산술연산 - 10.3 + 1001
자바스크립트의 데이터 타입은 총 7가지가 있다.
* 원시타입 (primitive data type)
원시타입은 immutable value(변경불가능) 으로 c언어와 다르게 문자열 string도 immutable이다.
- number
js의 숫자 자료형은 단 하나만 존재한다. 정수만을 표현하기 위한 자료형이 없다. 모든 수를 실수로 처리한다.
2진수 8진수 16진수와 같은 진수 literal은 10진수로 해석되어 반환된다.
유효하지 않은 숫자에 대해서는 NaN을 반환. 전역 객체의 isNaN()메소드를 이용하여 NaN의 여부를 판별 가능
무한대도 제공하는데 양의 무한대는 infinity, 음의 무한대는 -infinity를 반환 - isFinite()메소드로 유한 여부를 판단.
- string
자바스크립트에서 string타입은 텍스트 데이터를 나타냄. 이는 16비트 부호없는 정수 값 요소들의 집합.
한번 문자열이 생성되면 그 문자열을 수정할 수 없다. but 원래 문자열에서 일부가 수정된 다른 새로운 문자열을 만드는건 가능
- boolean
논리 요소를 나타내고 true or false, 조건문에 자주 사용되며 0, null, undefined, NaN, false, ""는 false로 간주됨
- null
null 타입은 null만이 유일한 값으로 갖는다. 의도적으로 변수에 값이 없음을 명시하기 위해 사용. 이것은 해당 변수가
참조하고 있는 메모리의 주소값을 삭제하는 것을 의미한다.
- undefined
값을 할당하지 않은 변수는 undefined값을 가진다. 객체의 존재하지 않는 프로퍼티에 접근했을 경우도 반환된다.
- symbol(es6)
ECMAScript6에 추가된 Symbold은 유일하고 immutable한 primitive value이다. 또한 object 속성의 key값으로 사용 될 수 있다.
* 객체 타입 ( Object data type )
- objects
computer science에서 객체는 식별자(identifier)로 참조할 수 있는, 메모리에 있는 값을 뜻한다.
object는 데이터와 그 데이터에 관련된 동작(절차, 방법, 기능)을 모두 포함하는 개념. 다시 말해서
property와 method를 모두 포함 할 수 있는 독립적인 주체.
- 자바스크립트의 객체는 key와 value로 구성된 property의 집합이다. property의 value로 자바스크립트에서 사용할 수 있는
모든 값을 사용 할 수 있다. 자바스크립트의 함수는 일급 객체이므로 값으로 취급 할 수 있다. 따라서 프로퍼티 값으로 함수를 사용할 수 도
있으며 프로퍼티 값이 함수 일 경우 일반함수와 구분하기 위해 메소드라 부른다.
property (속성)
객체는 속성을 담고 있는 가방으로 볼 수 있다. 속성은 키값으로 식별 된다. 키값은 string이거나 symbol값이다.
➜data property
키에 값을 연결하고 아래와 같은 특성(attribute)들이 있다.
➜accessor property
값을 가져오거나 값을 저장하기 위해 키에 하나 혹은 두개의 접근자 함수(get, set) 연결짓는다.
추가적인건 여기서 확인하자
developer.mozilla.org/ko/docs/Web/JavaScript/Data_structures
3. 연산자
연산자 (operator)는 하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리, 타입 연산 등을 수행해 하나의 값을 만든다.
이때 연산의 대상을 피연산자(operand)라고 한다.
*피연산자의 타입은 반드시 일치할 필요는 없다. 이때 자바스크립트는 암묵적 타입 강제 변환을 통해 연산을 수행한다.
증가 및 감소 연산자 (++) (--) 이건 이미 다른 프로그래미이 언어에서 배워서 알고있는 부분
주의할 점은 역시 값에는 안되고 변수에 적용해야하며
전치 후치 연산자 구분만 잘해주자.
할당 연산자(=) (+=) (-=) (*=) (/=)
4. keyword
키워드는 수행할 동자을 규정한 것이다. 예를 들어 let은 새로운 변수를 생성할 것을 지시하는 키워드 이다.
5. statement
각각의 명령을 statement라 하며 statement가 실행되면 무슨 일인가가 일어나게 된다.
statement는 literal, operator, expression, keyword등으로 구성되며 ;으로 끝이 난다.
코드 블럭으로 그룹화 할 수 있다. 그룹화의 목적은 함께 실행되어져야 하는 statement를 define하기 위함 이다.
자바스크립트는 블록 유효범위를 생성하지 않는다. 함수 단위의 유효범위만이 생성된다.
6. expression
expression은 하나의 값으로 evaluation(평가)된다. literal, variable, obejct's property, array's element, call function
call method, 등은 모두 expression이며 하나의 값으로 평가된다. expression은 결국 하나의 값이 되기에
다른 expression의 일부가 되어 조금 더 복잡한 표현식을 구성 할 수도 있다.
'JavaScript > Vanilla Js' 카테고리의 다른 글
vanilla js challenge1 (0) | 2021.04.21 |
---|---|
Arrow function (ES6) (0) | 2021.04.09 |
브라우저의 동작 원리 (0) | 2021.04.07 |
2. javascript 개발 환경 (0) | 2021.04.02 |
1. javascript의 기본 개념 (0) | 2021.04.02 |