[Java Script] 자바스크립트

개린이·2023년 10월 17일
0

JavaScript

목록 보기
1/4
post-thumbnail

자바스크립트(JavaScript)


자바스크립트의 역사

1995년

  • 넨스케이프 커뮤니케이션즈: 네비게이터 브라우저( 90% 이상의 점유율 )

1996년

  • 브렌던 아이크를 영입 후 동적인 프로그램을 개발하기 위해 언어를 개발하게 됨 10일만에 모카라는 언어를 개발하게된다.
  • 네비게이터2에 탑재( 모카 -> 라이브스크립트 -> 자바스크립트 )
  • MS 익스플로러의 jscript 등장 -> 호환성 문제 발생 -> 크로스 브라우징 이슈가 발생

1997년

  • ECMAScript(비영리 표준화 기구 ECMA 인터내셔널) -> 자바스크립트에서 표준화

1999년

  • 비동기적(Asynchronous) 서버와 브라우저가 데이터를 교환할 수 있는 통신 기능 Ajax(Asynchronous JavaScript and XML)이 탄생

2005년

  • 구글이 크롬 발표(V8 자바스크립트 엔진)
  • 자바스크립트 기반으로 구글맵에 Ajax기술을 사용

2006년

  • jQuery 등장으로 크로스 브라우징 이슈를 해결

2009년

  • 탈 브라우징(웹 브라우저를 벗어나 os 애플리케이션 개발에도 사용)
  • Node.js의 등장

이후

  • SPA(Single Page Application) 개발
  • React, Vue, Angular

자바스크립트의 특징

  • 객체 기반의 스크립트 언어
  • 대소문자를 구별
  • 문장 끝에 ;(세미콜론)을 사용(생략이 가능)

스크립트 적용 방법

  1. 내부 스크립트 사용
<script> ~ </script>
script 태그 안에 문법을 입력
  1. 외부 자바스크립트로 사용
    js 파일을 생성 후 css와 마찬가지로 head 쪽에
<script src="자바스크립트 파일"></script>

자바스크립트의 실행 순서

인터프리터 방식이므로 위에서 아래로 실행된다.

  1. JavaScript 파일 및 문장을 <head> ~ </head> 사이에 넣었을 경우
    • 문서가 시작되면 head에 있는 script를 다운로드 또는 실행
    • body에 있는 HTML 태그를 실행 -> 끝

      단점 만약 자바스크립트 파일이 다운이 안되거나 느릴 경우 빈화면이 보일 수 있다.

  2. JavaScript 파일 및 문장을 <body> 끝에 넣었을 경우
    • 문서가 시작되면 body에 있는 HTML 태그가 실행된다.
    • script가 실행되고 끝난다

      단점 완벽하지 않은 HTML 문서가 먼저 보여 잘못된 UI가 실행될 수 있다.

  3. <script async>를 사용할 경우
    • 문서가 시작되면 head에 있는 script를 다운로드 또는 실행
    • body에 있는 HTML 태그를 실행 -> 끝

      단점 script 파일이 여러개 있을 경우 먼저 다운로드된 script 파일을 먼저 실행하게 됨, script 파일이 서로 연관되어 있는 경우 하나의 스크립트만 실행하면 문제가 발생할 수 있다.

  4. <script defer>를 사용할 경우
    • 문서가 시작되면 head에 있는 script를 다운로드 또는 실행
    • body에 있는 HTML 태그를 실행 -> 끝

      html이 시작되고 script 파일을 동시에 다운로드/실행을 진행하게 된다, script 실행은 페이지 구성이 모두 끝날 때까지 지연, script 순서에 따라 실행


CSS, JavaScript의 변경된 내용이 반영되지 않을 경우(케쉬가 남을 경우)

  1. f12키 -> 새로고침 버튼을 누르고 있는 상태에서 "강력새로고침"을 선택
  2. 컨트롤 + 쉬프트 + R

자바스크립트의 출력

Web API Console을 통해 브라우저 Consol 창에 출력

console.log('안녕하세요 자바스크립트!')


주석문

// : 한줄 주석
/* 내용 */ : 여러줄 주석


변수

데이터를 저장할 수 있는 메모리 공간이며 값이 변경될 수 있다. 자바스크립트는 변수 타입이 없으며 자동으로 타입이 지정된다. 대신 let, var 키워드를 사용하여 변수를 선언

var

var는 너무 유연한 변수 선언 방식으로 이제는 잘 사용하지 않는다. var는 지역변수와 전역변수와의 구분이 없으며 같은 이름의 변수를 선언 및 값을 재할당할 수 있다.

var num = 10;
{
	console.log(num); //전역변수 num = 10
    var num = 20;
}
console.log(num); // 전역변수 num = 20

let

지역변수, 전역변수의 구별이 확실하며 같은 이름의 변수를 선언할 수 없다.

let 변수명 =;
let 변수명;
변수명 =

트랜스 컴파일러

  • 과거 브라우저 및 특정 브라우저 버전등을 모두 사용할 수 있도록 해석해주는 라이브러리
  • BABEL(가장 유명한 라이브러리)

상수(constant)

한번 선언된 사웃는 다시 재정의 및 값을 재할당 할 수 없다.

const 상수명 =;) const num = 10;

const 상수명;
상수명 =; - X 틀린 문법

자바스크립트에서 상수를 권장하는 이유

  • 개발자 실수를 방지하기 위해
  • 해킹을 방지하기 위해

데이터 타입(Data Type)

  • 프로그램에서 다룰 수 있는 값으 종류
  • 자바스크립트는 선언시 타입을 정하지 않기 때문에 많은 문제가 발생할 수 있음
  • 자바스크립트의 타입 유연성을 해결하기 위해 MS의 타입스크립트가 탄생
  1. 숫자형(number)
  • 정수와 실수를 따로 구분하지 않음
  • 모둔 수를 실수 하나로만 표현
  1. 문자형(string)
  • '', "", `` 로 둘러싸인 문자의 집합.
  • let num = 10;
    // 입력한 숫자는 10입니다.
console.log(`입력한 숫자는 ${num}입니다.`)
  1. 논리형(boolean)
  • 참과 거짓으로 표현되는 값
  • 소문자로 쓴다(true, false)
  • false, 0, '', null, undefined는 모두 거짓(false)로 판정
  • false가 아닌 모든 값은 참(true)로 판정함
  1. undefined, null
  • undefined: 타입이 정해지지 않은 타입(변수 선언 후 값이 정해지지 않은 경우)
  • null: null을 저장한 값, 값이 없는 것
  1. 심볼형(symbol)
  • 유일하고 변경 불가능한 기본값을 만듦
  • 객체 속성의 key로 사용
const sym1 = Symbol('apple');
const sym2 = Symbol('apple');
console.log(sym1 == sym2) // 값이 같은지 비교 true
console.log(sym1 === sym2) // 타입과 값이 같은지 비교 false
  1. 객체형(object)
  • 어떤 속성을 하나의 변수에 저장할 수 있게 해주는 집합
  • key value pair 구조로 저장
const 객체명 = {1:키값1,2:키값2...}

자바 스크립트의 변수는 타입이 고정되어 있기 때문에 같은 변수에 다른 타입의 값을 대입할 수 있음.

let user = {userid='apple', name='김사과', age:20}

자동 타입 변환

특정 타입의 값을 기대하는 곳에 다른 타임의 값이 오면 자동으로 타입을 변환해서 사용

const num1 = 10;
const str1 = '10';
console.log(num1 + str1) // 1010
console.log(num1 - str1) // 0
console.log(num1 * str1) // 100
console.log(num1 / str1) // 1
const ch = '삼십';
console.log(ch - 10) // NaN

NaN(Not a Number)

  • 정의되지 않은 값이나 표현할 수 없는 값 이라는 의미
  • 숫자로 변환할 수 없는 연산을 시도

타입변환 함수

강제로 타입을 변환할 수 있는 함수이다.
- Number(): 문자를 숫자로 변환
- String(): 숫자나 불린 등을 문자형으로 변환
- Boolean(): 문자나 숫자 등을 불린형으로 변환
- Object(): 모든 자료형을 객체형으로 변환
- parseInt(): 문자를 소수없는 정수형으로 변환
- parseFloat(): 문자를 실수형으로 변환


자바스크립트 대화상자

Web API: 브라우저에서 제공하는 API(Application Progeamming Interface)

  1. alert(): 사용자에게 메세지를 보여주고 확인을 기다림
  2. confirm(): 사용자에게 메세지를 보여주고 확인이나 취소를 누르면 그 결과값을 불린값으로 반환
  3. prompt(): 사용자에게 메세지를 보여주고 사용자가 입력한 문자열을 반환

0개의 댓글