21.12.04 보충정리

초록귤·2021년 12월 4일
0

멋사1기

목록 보기
17/19

!== 엄격한 비교연산

Chakra엔진 알아두는게 좋다.
web 구성 4개.

  • html / css/ js/ web
  • watson(2021) 추가

브라우저에서 할 수 없는 일 > node로 극복한 것.
웹페이지 내 스크립트는 디스크에 저장된 임의의 파일을 읽거나 쓰고, 복사하거나 실행할 때 제약 받을 수 있다.

typescript 자료형의 명시화에 집중해 만든 언어.

언어는 계속 발전되고 있어요.
왜냐! 자바스크립트 자체가 완전한 언어가 아니라, 더럽게 업데이트!
// ES6 => ES2015 (ECMAScript 2015)
// ES7 => ES2016 (ECMAScript 2016)
// ES8 => ES2017 (ECMAScript 2017)
// ES9 => ES2018 (ECMAScript 2018)
// ...
// ES12 => ES2021 (ECMAScript 2021)

o = {one: '1', two:'2' }
o.keys >>undefined ( 없음 )
Object.keys(o) >>['one','two']

왠만한 브라우저에서 ES6 적용
js에서 5년전 업데이트 공부하는게 안정적인듯하다..

ES6~09 간략 정리

식으로 명시

내부 스크립트와 외부 스크립트 변수 공유 가능할까? =가능!

cash? = 브라우저의 기억

어딘가에 저장되어있다면, 봐야한다.
애플리케이션> 저장용량 > 스토리지
HTML안에 직접 스크립트를 작성하는 방식은 대개 스크립트가 아주 간단할 때만 사용
스크립트를 별도의 파일에 작성하여
어느 공간에 무엇을 저장할지 (ex.사용자 로그인 정보 어디에 저장할지) 고민하게 된다
= 개발자 도구에서 볼 수 있음.

변환

  • ; []앞에서는 자동 세미콜론(;)안됨

주석

  • 중첩 주석 지원x

  • 한 줄 주석 //

  • 여러 줄 /* */

    실무에서는 주석보다는 코드자체.
    주석도 resource이기에, 프로젝트 생산성에 영향을 끼친다.

    엄격 모드

  • 사실 중요
    user strict 꼭 사용?

  • 기존 코드는 문법 업데이트되었는데, 브라우저에서 활성화는 x...

  • 따라서 엄격모드 user strict활성화하면 브라우저에서 활성화가능.

    function

    //비정상.
    function test() {
    x=100; }
    test()
    console.log(x) => 100
    왜 이게 나오냐/?? x변수가 선언되지않아서 global 선언
    억지로 실행시키려고 한것.

  • 엄격모드에서는 실행 안된다.(말도 안되는 문법)
    호환안되기 때문에 사용은 회사마다 다름.
    함수 안에서도 사용가능

변수 명명 규칙

  • 변수명에는 오직 숫자,문자, 기호$와 _만 들어갈 수 있다. ('-'올수없다)
  • 첫 글자는 숫가가 될 수없다.
  • 일반적인 변수 소문자 시작이 좋다.
  • 대소문자 구별
  • 변수명 간결 명확하게

var, let, const

const : 값 변경 불가.

자료형 8가지 기본 자료형

숫자형 / 문자형/ 불린형 / object /
(cf. c언어는 한번 숫자 선언하면 문자 선언 못함 js는 가능)
숫자형엔 일반ㄴ적인 숫자 외에 +/-infinity, NaN형.
수학연산 안전하다. num/0 = NaN (에러 발생하지 않음)
숫자 끝에 n이 붙으면 bigInt형이다.

논리값 = true/ false
null값 = 지금까지 소개한 자료형 중 어느 자료형에도 속하지 않음.
= 알 수 없는 값. /존재하지 않는 값/ 비어있는 값
null - null은 null이다 ( typeof(null) = object이지만, 하위호완성을 위한 오류)

alert , prompt

prompt함수는 두 개의 인자 받음 (사용자 입력값, [default값])
confirm("");

큰 따옴표"" 작은 따옴표 '' 역따옴표(백틱) ``

문자형 묶기 가능.

숫자형 변환시

//Number , //String 잘 사용하지않음
Number(NaN) >> NaN
Number(null) >> 0
Number(undefined) >> NaN
Number(true) >> 1
Number(false) >>0
공백 무시된다.
parseInt("")에서도 마찬가지.
parseInt("123z") >> 123
Number("123z") >> NaN

Boolean

Boolean([]) >> true
Boolean({}) >> true
Boolean("") >> false 다른 언어에서는 세개 다 false.. js에서만

용어 : '단항', '이항', '피연산자'

피연산자는 연산자가 연산 수행하는 대상
피연산자를 하나만 받는 연산자는 단항 연산자라고 한다.
+연산자는 문자열 연결과 변환이라는 기능제공.
다른 연산자는 숫자형이 아닌 경우 그 형을 숫자형으로 바꾼다.

연산 우선순위

문자열 비교

'사전'순으로 문자열 비교.
실제 단어를 사전에 실을 때 단어를 구성하는 문자 하나하나를 비교하여 등재 순서를 정하는 것과 같이 자바스크립트도 문자열을 구성하는 문자 하나하나를 비교해가며 문자열 비교.

*정확히는 사전순이 아니라 유니코드 순서다.

aaaaaaa> aa >> true
aaaaaaa>zz >> false

null

이유가 없다.. 그냥 코딩을 만드신 분 설정.

함정 피하기.
일치 연산자 ===를 제외한 비교 연산자의 피연산자에 undefined나 null이 오지 않도록 주의

!!(not 두개 붙이면) boolean형으로 사용!

Null 병합연산자 '??'

스펙에 추가된지 얼마 안된 문법. 구식 브라우저는 폴리필 필요. 실무에서 사용x
?? 와 ||차이
null 병합 연산자는 OR연산자 ||와 상당히 유사해 보임. 실제로 ??를 ||로 바꿔도 그 결과는 동일하다.
null이나 undefined가 아닌 첫 번째 피연산자 출력이다.

  let height =100;
  height = height ?? 200; 
 ==>height =100 //값이 있으면 멈춤
let height = null;
height = height?? 200;
==>height =200 

반복문

최대 2중 쓰게 될것... 아마..

전역, 함수 스코프 메모리 차이


while이 좀더 직관적, 그리고 x의 증가하는 순간을 지정하고 싶을때 사용하자.

호이스팅

func ,
엄격 모드에서 함수 선언문이 코드 블록 내에 위치하면

화살표 함수

let sum =(a,b) => {return a+b};
sum(10,20) => 30

표현식이니까 호이스팅 안됨.

profile
초록색 귤이 노랑색으로 익어가듯, 실력이 익어가기 위해 노력하는 개발자 lahee입니다. 프론트엔드 개발자를 목표로 성장하고 있습니다.

0개의 댓글