operator

String concatenation

 

Numeric operators
++, -- operators
= operator
<= operator
Logical operators
Equality operators

strick equality >> 코딩할 때 웬만하면 이렇게 검사하는 것이 좋다.

object를 신경써야 한다. 메모리에 탑재될 때 레퍼런스 형태로 저장된다.

 

If operators

name 이 df 이기 때문에 else가 실행

? operator

if operator를 간단하게 사용 참이면 왼쪽 거짓이면 오른쪽 출력

묶고 묶고 사용할 경우 코드 가독성이 떨어진다. if 나 switch를 사용하는 것이 좋다. 간단한 경우만 사용

 

switch operators

else if를 여러개 반복 할 경우 switch 사용 고려한다.

타입 스크립트에서 정해져 있는 타입을 검사하거나 비슷한 아이들을 검사할 때는 스위치를 쓰는것이 가독성이 좋다.

while loop

Variable 변수 설명

Variable 변경 될 수 있는 값

let 변수를 만들 때 사용하는 키워드


var

var는 쓰지 않는다.

자바스크립트 var는 선언전에 값을 할당하고 출력할 수 있다. >> var hoisting

let을 이용하면 에러가 발생한다. >> 이게 정상이다.

var는 block scope이 없다. >> 블록을 철저히 무시 한다. >> 블록 안에 선언 했음에도 불구하고 콘솔을 이용해서 밖에서 출력하게 되면 정상적으로 출력된다.

 

>> let 이 나옴


Constant

Constant : 한번 할당하면 값이 절대 바뀌지 않는다.

 

장점

    보안상의 이유 > 한번 작성하면 다른 해커들이 값을 변경하는것을 방지 할 수 있다.

    어플리케이션을 효율적으로 빠르게 동작하도록 한다.

    코드 변경 시 실수를 방지할 수 있다.

 

자바스크립트에서는 변수를 선언할때 Mutable 타입의 let, Immutable 타입의 const가 있다.


Variable types

js 에서는 number 타입만 이용하여 숫자를 이용하면 된다. number라고 선언 할 필요도 없다.

let a = 1;

let b = 1.2;


boolean


Dynamic typing

자바스크립트는 dynamically typed language라고도 불린다. 변수를 선언 할 때 어떤 타입인지 선언 하지 않고 프로그램이 동작할때 할당된 값에 따라 타입이 변경 될 수 있다.

 

좋은 아이디어가 있을 때, 빠르게 프로토타입을 하고 싶을 때 유용하지만 규모가 있는 프로젝트를 만들 때 힘들어 질 수 있다.

 

에러가 런타임으로 발생하는 경우가 많다 >> TS가 나왔다 >> 자바스크립트에 type이 더 해진 것

 

 

출처 : 

https://www.youtube.com/watch?v=OCCpGh4ujb8

<head> 안에 <script>가 있는 경우

단점 : js 파일이 사이즈가 크고 인터넷이 느리다면 사용자가 웹 사이트를 보는데 많은 시간이 소요된다.

 

<body> 안에 제일 끝 부분에<script>가 있는 경우

장점: 페이지가 준비된 후 스크립트를 만나서 실행 js를 받기전에 사용자가 빠르게 페이지 컨텐츠를 볼 수 있다.

 

단점: 웹사이트가 자바스크립트에 굉장히 의존적이라면 사용자가 의미있는 컨텐츠를 보기위해서 서버에서 자바스크립트를 받아오고 실행하는 시간을 기다려야 한다.

 

<script>에 async 사용하는 경우

장점: 바디끝에 사용하는것보다 다운받는 시간을 절약할 수 있다.

단점: 자바스크립트가 HTML이 parsing 되기전에 실행 되기 때문에 자바스크립트에서 조작하려는 시점에 html이 원하는 요소가 아직 정의되지 않을 수 있다. 자바스크립트를 실행하기 위해 멈출 수 있어서 사용자가 보기에 시간이 걸릴 수 있다.

 

<script>에 defer사용하는 경우

장점: pasing html동안 필요한 js 다운 다 받은 후 사용자에게 페이지를 보여준 후 js를 바로 실행 한다.

 

async 다수

먼저 다운된 js를 실행한다. 정의된 스크립트 순서에 상관없이 다운로드 된 것을 실행하기 때문에 js가 순서에 의존적인 것이라면 async를 사용한다면 문제가 생길 수 있다.

 

defer 다수

parsing 하는 동안 필요한 js를 다 다운 받은 후 순서대로 실행한다. 정의한 순서가 지켜지기 때문에 원하는대로 js가 실행되는것을 예상 할 수 있다.

 

<head> 안에 defer 옵션으로 사용하는 것이 효율적이며 안전하다.

 

순수 바닐라 자바스크립트를 사용 하는경우

'use strict '; 사용하는 것이 좋다.

굉장히 유연한 언어로 만들어졌다 >> 위험할 수 있다. >> 개발자가 많은 실수를 할 수 있다.

 

use strict를 선언하는 경우 더 이상 비상식적인 것을 쓸 수 없다.

자바스크립트 엔진이 효율적이고 빠르게 자바스크립트를 분석할 수 있다.

 

출처 : 

https://www.youtube.com/watch?v=tJieVCgGzhs&t=240s

JavaScript는 웹페이지의 동작을 담당한다.


인터프리터 언어
동적 프로토타입 기반 객체 지향 언어
동적 타입 언어
함수가 일급 객체
함수가 클로저를 정의

 


<기본 요소>

 Number, String, Boolean, Null, Undefined

 

<NaN>

숫자가 아닌것

 

<변수>

값에 어떤 이름을 지정하고 JavaScript로 그 값을 저장하여 나중에 다시 돌아오거나 다시 쓰거나 업데이트 하거나 불러올 수 있게 해준다.

let someName = value;

ex) let year = 2023;

 


<const>

상수: 일정한 값

const luckyNum = 26;

luckyNum += 1;

-> TypeError

상수 값은 업데이트할 수도 없고 변경할 수도 없다.

 

let : 재할당이 가능한 변수를 만들 수 있고

const: 상수값인 변수를 만들 수 있다.

 

 


<boolean>

TRUE or FALSE

 


<변수 명명 과 규칙>

let 1user = 45; syntaxError > 변수명이 숫자로 시작 X

카멜케이스를 많이 쓴다. 첫 단어는 소문자로 사용한다.

let currentYear = 1999;

boolean 사용할경우 변수명에 is 붙이는게 알아보기 쉽다.

let isGameOver = true;

 

 

+ Recent posts