오늘 내가 배운 것
1. 자바스크립트의 특징
2. JavaScript (JS) 적용하는 방법
3. 변수와 상수의 예약어와, 기본 연산자
4. 변수명 표기법
1. JavaScript(자바스크립트)의 특징
자바스크립트는 Prototype기반 언어이다.
웹 페이지를 만드는 과정에서 동적요소를 만들고 싶어서 생긴 언어였다.
타입을 지정하지 않고 사용할 수 있어서 처음배우는 사람들한테 좋다.
코드를 한 줄씩 읽어 내려가는 인터프리터 언어이기 때문에, 번역과 실행이 동시에 이루어진다.
인터프리터와 반대되는건 컴파일 언어이다. 컴파일 언어는 프로그램을 실행하기 전에 기계어(컴퓨터 언어)로 컴파일(번역)을 하고 실행하는 언어이다.
한 줄씩 처리하다 보니 처리 자체의 속도는 컴파일 언어의 비해 느리다.
-> 많은 양의 코드를 작성 후 컴파일 언어는 컴파일을 하는 시간을 써야 하는 반면 인터프리터 언어는 명령을 내리는 즉시 첫 줄부터 출력해서 보여준다.
작성한 코드를 구동해줄 엔진이 필요하다, 구동해주는 환경이 필요하다.(런타임이 필요하다.)
자바스크립트 엔진은 자바스크립트를 읽어서 컴퓨터가 읽을 수 있는 기계어로 변환해주는 역할을 하고 같은 엔진이라도 구동해주는 환경이 다를 수 있다 .
웹 브라우저(크롬)와 node.js 는 같은 엔진이고 다른 환경(다른 런타임) 이다.
Javascript(JS)는 처음에 웹 페이지를 만드는 과정에서 동적요소를 만들고 싶어서 생긴 언어였다.
그래서 중요도가 높지 않았고, 단순했는데 시간이 지나면서 중요도가 높아지고 오랜 텀이 있은 후에 자바스크립트의 스펙이 업그레이드되었다. ES6, ES7 …
자바스크립트가 브라우저에서 사용되다가 업그레이드 되면서 다른 환경이 생겼는데, 그것이 Node.js 런타임이다.
브라우저에서 쓰이는 언어랑, Node.JS에서 쓰이는 언어는 자바스크립트로 동일하지만, 브라우저에 초점이 되어있는 자바스크립트와 내 컴퓨터(서버)에 초점이 맞춰져 있는 자바스크립트로 목적(환경)이 다르기 때문에 같은 언어지만 혼용해서 쓰지 못한다.
2. JavaScript (JS) 적용하는 방법
자바스크립트는 HTML에서 head 부분, body 부분이 원하는 곳에 쓸 수 있다.
CSS의 style 엘리먼트처럼 <script> 를 쓰는 방법, 외부 파일의 링크를 연결하여 적용하는 방법이 있다.
모두 JS 문법에 맞춰 써야 한다.
<script type="text/javascript">
console.log("hello,world!");
</script>
<script src="./public/js/index2.js" type="text/javascript">
</script>
JavaScript(자바스크립트) Hello, World! 출력하기
console.log(Hello, World!) // 괄호 안에 내용을 출력해준다.라는 의미
세미콜론 ; 는 생략 가능하다.
3. 변수와 상수 예약어 와 기본 연산자
예약어 : 이미 쓰임이 정해져 있는 키워드를 의미한다. 이 예약어는 변수명으로 사용할 수 없고
변수의 예약어는 var, let가 있고, 상수의 예약어로는 const가 있다.
변수의 var는 hoisting (호이스팅) 이라는 이슈가 있어서 쓰이지 않는다.. (호이스팅은 밑에..!)
그러므로 let(변수) 과 const(상수)를 사용한다.
선언 방법
예약어[let, const] 변수명[개발자 임의] = [데이터 값]
예약어와 변수명 사이는 띄어쓰기로 구분한다.
변수 : let
재선언 X , 재할당 O
let number //선언
number = 1 //할당
console.log(number) //출력
//let number // 불가
number = 10 //재할당
console.log(number)
상수 : const
재선언X , 재할당X
선언과 동시에 값을 할당해야 한다. (대입 연산자를 활용 )
const num1 = 1
console.log(num1)
기본 연산자
대입연산자 : " = " ( 수학의 같다는 등호랑 다른 의미, 우측항을 좌측항에 대입시키는 연산자 )
산술 연산자 : "+" , " - " , " / " , " * " , " % " (% : 나머지를 구하는 연산자)
산술 연산자에서 + 를 제외한 다른 연산자는 데이터 타입이 number 타입 (숫자 타입)이다.
+ 연산자는 string 타입( 글자 타입) + string 타입을 출력해줄 수 있다.
let string = "A"
let string2 = "B"
// AB
let num = 1
let num2 = 2
console.log(num + num2) //number 타입 + number 타입 >> 둘다 숫자 타입으로 두개를 더한 값을 출력 : 3
console.log(string + num) // A1
console.log(num + string) //1A
데이터 타입의 중요성!
//데이터 타입의 중요성...
let strNum = "101"
let num3 = 3
console.log(strNum + num3) // 1013
// 만약 - 를 하게 되면 98이 나오는데 string 타입은 '+' 만 가능하다.
4. 변수명 표기법
변수명 표기법
1. 특수문자 불가(1~2개 가능하다고 하지만...)
2. 첫 글자를 숫자로 불가
3. 예약어(키워드) 불가.
변수명 컨벤션(협업하는 사람들끼리의 규칙, 관행, 관례)
1. 카멜 표기법 : 첫 글자는 소문자로 시작하고 단어가 바뀔 때마다 대문자로 시작함. firstName
2. 파스칼 표기법 : 모든 단어의 처음을 대문자로 시작함. FirstName
3. 스네이크 표기법 : 단어 사이에 언더바를 사용한다. first_Name
호이스팅 (Hoisting)
hoisting ( 호이스팅)은 자바스크립트 문법에서 변수나 함수를 선언 이전에 사용할 수 있다는 뜻,
변수나 함수를 선언하기 전에 사용할 수 있었기 때문에 끌어올려지는 것처럼 보였을 뿐 실제로 끌어올려지는 것은 아니다.
실행 컨텍스트가 생성될 때 ( 코드들이 실행되기 위한 환경이 생성될 때) 식별자 정보를 수집하는데, 이때 변수들을 먼저 담기 때문에 할당 전에 사용할 수 있게 된다.(메모리에 변수가 할당) 그래서 var 변수를 선언 전에 사용하게 되면 에러를 띄우는 것이 아닌 undefined 을 출력해준다.
let, const는 호이스팅이 되지 않느냐? - 아니다. 그렇지만.....
실행 컨텍스트가 생성될 때 변수들은 다 정보를 담기 때문에 호이스팅이 되는 것은 맞으나, 초기화 단계를 거쳐 var 와 달리 선언은 되어 있지만 변수에 값을 담기 위한 메모리에 공간이 확보되어 있지는 않기 때문에 할당 이전에 미리 사용할 수 없게 된 것이다.
'시작 > TIL(Today I Learned)' 카테고리의 다른 글
221101 JavaScript - 함수 (function) (0) | 2022.11.01 |
---|---|
221031 JavaScript - prompt()함수, 지역변수, 전역변수, 조건문 if-else if문, 데이터타입, 배열 (0) | 2022.10.31 |
221027 로그인 팝업 만들기 - form태그 / CSS-before, after / 반응형 웹 만들기 - 미디어쿼리 (0) | 2022.10.27 |
221026-게시판 만들기 : HTML table 태그, CSS-!important, box-shadow, CSS 선택자 (0) | 2022.10.26 |
221025 HTML/CSS 를 이용한 애니메이션 효과-학원 홈페이지 클론코딩 (0) | 2022.10.25 |