Today I Learned-04

졍이🥨·2022년 11월 17일
0

개발일지

목록 보기
11/38

2022-11-17 (목)

혼자 공부하는 자바 스크립트 Chap_02


자바스크립트의 비교 연산자 Boolean === 양쪽이 같다 !== 양쪽이 다르다

자바스크립트의 비교 연산자는 숫자는 물론 문자열 자료형도 비교할 수 있다. 문자열 자료형은 사전의 앞쪽에 있을 수록 값이 작다. 다음 표현식에서 '가방'은 '하마'보다 사전의 앞쪽에 나오므로 false 이다.
ex) '가방' > '하마 ' -> false

*불 부정 연산자
문자열과 연싼자를 적용할 수 있는 것처러 불에도 연산자를 적용할 수 있다. 불 부정 연산자는 ! 기호를 사용하여 참을 거짓으로, 거짓을 참으로 바꾼다.
!true
-> false
!false
->true

불 논리합/논리곱 연산자
불에는 논리합 연산자와 논리곱 영산자를 적용할 수 있다.
연산자 : && -> 논리곱 연산자
연산자 : || -> 논리합 연산자 (
엔터키 위에 있는 \ + Shift키)

&&연산자는 양쪽 변의 값이 모두 true일 때 true를 결과로 낸다.
이외에는 모두 false.
반면에, ||연산자는 양쪽 변의 값중 하나만 true여도 true 결과로 낸다.

특이한 예시(혼공자스_p.94)이지만 간단히 설명하면 &&연산자는 '그리고', ||연산자는 '또는'으로 하나하나 매치해보면 쉽게 기억할 수 있다.

*자료형 검사
자바스크립트는 숫자, 문자열, 불 같은 자료형을 확인할 때는 typeof 연산자를 사용한다. typeof 연산자도 논리 부정 연산자(!), 플러스 연산자(+), 마이너스 연산자 (-) 처럼 피연산자를 1개만 갖는 단항 연산자다.
typeof('문자열')
-> "String"
typeof(273)
-> "number"
typeof(true)
-> "Boolean"

tyoeof 연산자 뒤에 괄호()가 없어도 상관없다.
typeof '문자열'
-> "String"
typeof 273
-> "number"

하지만 typeof 연산자는 다음과 같이 문자열과 비교해서 자료형을 확인하는 경우가 많다. (하지만 가급적 괄호()사용하기)
typeof 10 === 'number'
-> True


<템플릿 문자열> 과거에 자바스크립트는 문자열 내부에 표현식을 삽입할 때 다음과 같이 문자열 연결 연산자(+)를 사용해야 했다. ex) console.log('표현식 273 + 52의 값은' + (273 + 52) + '입니다!') -> 표현식 273 + 52의 값은 325 입니다! 위처럼 표현식을 많이 결합하면 코드가 복잡해진다. 사용하고 있는 자바스크립트에서는 '템플릿 문자열'이라는 기능이 추가되어 이러한 코드를 간단하게 작성 가능하다.

템플릿 문자열은 백틱기호로 감싸만든다. 문자열 내부에 '${...}`기호를 사용하여 표현식을 넣으면 표현식이 문자열 안에서 계산된다. (백틱이 계속 지워져서 혼공자스_p.98 확인하기)

ex) consol.log((백틱)`표현식 273 + 52의 값은 4{273 + 52}입니다!`(백틱))

<==연산자와 !=연산자>
대부분의 프로그래밍 언어는 자료가 같은지 다른지를 비교할 때 ==연산자와 !=연산자를 사용한다. 91쪽에서 살펴보았던 ===연산자와 !==연산자는 '값과 자료형이 같은지'를 비교하는 연산자. ==연산자와 !=연산자는 '값이 같은지'를 비교하는 연산자.


상수는 '항상 같은 수', 값에 이름을 한 번 붙이면 값을 수정할 수 없음. 변수는 '변할 수 있는 수', 값을 수정할 수 있음.

상수는 한 번 값을 저장하면 수정할 수 없어서 쌓아서 저장할 수 있으므로 저장 효율(성능)이 좋지만, 변수는 값을 저장하고 수정할 수 있는 기능이 포함되어야 하니 쌓아 둘 수가 없어서 저장 효율(성능)이 나쁘다.

상수를 만드는 과정은 '선언'이라고 표현하고, const 키워드로 선언한다.
ex) const 이름 = 값

상수를 만든 뒤에는 상수 이름을 사용해서 자료를 사용할 수 있다. 숫자가 들어있는 상수는 숫자 연산을 할 수 있다. 마찬가지로 문자열이 들어있는 상수는 문자열 연산을 할 수 있다.

상수에 값을 선언할 때 나타날 수 있는 오류 (p.104-105)


변수를 만들 때는 let 키워드를 사용한다.

let 이름 = 값

변수의 값을 변경할 때는 변수 이름 뒤에 = 기호를 입력하고 값을 넣어주면 된다.

변수 = 값


증감연산자 사용 예시 (p.110) '후위'란 해당 문장을 실행한 후 값을 더하라는 의미. '전위'는 해당 문장을 실행하기 전에 값을 더하는 것. 빼는 경우도 마찬가지.
*undefined 자료형

- 상수와 변수로 선언하지 않은 식별자

- 값이 없는 변수


<자료형 변환>

*문자열 입력

문자열 자료형을 입력핳 때 사용하는 함수는 prompt()입니다.

prompt(메시지 문자열, 기본 입력 문자열)

prompt() 함수 매개변수의 역할(p.117)

return(리턴):함수를 실행한 후 값을 남기는 것


*불 입력

문자열 외에 불 자료형도 confirm()함수를 사용하여 값으로 입력받을 수 있다. confirm()함수는 prompt()함수와 비슷한 형태로 사용한다.

confirm(메시지 문자열)


*숫자 자료형으로 변환하기

다른 자료형을 숫자 자료형으로 변환할 때는 Number()함수를 사용한다.

Number(자료)

숫자가 적혀있는 문자열을 숫자로 변환시킨다. 예를 들어, "273"이라는 문자열울 Number()함수에 넣으면 273이라는 숫자로 변한다.

Number("273")

-> 273

typeof(Number("273"))

-> number


다른 문자가 들어있어서 숫자로 변환할 수 없는 문자열의 경우 NaN(Not a Number)라는 값을 출력한다. NaN은 자바스크립트에서 숫자이지만, 숫자로 나타낼 수 없는 숫자를 말한다.

Number("$273")

-> NaN //값은 숫자로 나타낼 수 없지만

typeof(Number("$273"))

->number //자료형은 숫자가 맞다.


불(Boolean)은 숫자로 변환하면 true는 1로, false는 0으로 변환된다.


*숫자 연산자를 사용해 자료형 변환하기

Number()함수를 사용하지 않고도 다른 자료형을 숫자 자료형으로 변환할 수 있다. 바로 숫자 여산자 -, +, *, /를 사용하는 것이다. 숫자가 아닌 다른 자료에서 0을 빼거나, 1을 곱하거나 또는 1로 나누면 숫자 자료형으로 변환된다.

"52"-0

-> 52

typeof("52"-0)

-> "number"

true - 0

-> 1

typeof(true-0)

-> "number"

참고로, 불과 숫자를 + 연산자로 연결하면 불이 숫자로 변환된 뒤에 더해진다.

1 + true

-> 2

1+ false

-> 1


*문자열 자료형으로 변환하기

다른 자료형을 문자열 자료형으로 변환할 때는 String()함수를 사용한다.

String(자료)

다른 자료형을 문자열로 변환하면 기본 형태의 문자열로 출력된다.

String(52.273)

->"52.773"

String(true)

->"true"

*문자열 연산자를 사용해 자료형 변환하기

String()함수를 사용하지 않고도 다른 자료형을 문자열 자료형으로 변환할 수 있다. '문자 연결 연산자(+)'를 사용하면 된다. 문자열이 아닌 다른 자료에 빈 문자열을 연결하면 문자열 자료형으로 변환한다.

273+""

->"273"

true+""

->"true"


불 자료형으로 변환하기

다른 자료형을 불 자료형으로 변환할 때는 Boolean()함수를 사용한다.

Boolean(자료)

대부분의 자료는 불로 변환했을 때 true로 변환된다. 다만 0, NaN, '...' 혹은 "..."(빈 문자열), null, undefined라는 5개의 자료형은 false로 변환된다.

★위 5개는 외워야함★

Boolean(0)

->false

Boolean(NaN)

->false

Boolean("")

->false


let 변수

-> undefined

Boolean(변수)

->true


*논리 부정 연산자를 사용해 자료형 변환하기

Boolean()함수를 사용하지 않고 논리 부정 연산자(!)를 사용해서 다른 자료형을 불 자료형으로 변환할 수 있다. 불이 아닌 다른 자료에 논리 부정 연산자를 2번 사용하면 불 자료형으로 변환한다.

!!273 // 논리 부정 연산자(!)를 2번 사용해서 불 자료형으로 변환한다.

->true

!!0

->false


!!'안녕하세요'

->true

!!'' //'...' 혹은 "..."(빈 문자열)은 불 자료형으로 변환할 때 false로 나타남

->false


*inch를 cm 단위로 변경하기

프로그램을 만들다보면 프로그래밍이외의 정보다 지식이 필요힐 때가 많다. 현재 프로그램에서도 inch 단위를 cm 단위로 변환할 때 2.54를 곱하는 것은 프로그래밍 이외의 지식이다.

profile
Front-End :)

0개의 댓글