과거 자바스크립트는 문자열 내부에 표현식을 삽입할 때 다음과 같이 문자열 연결 연산자(+)를 사용해야 했다.
> console.log('표현식 273 + 52의 값은 ' + (273+52) + '입니다...!')
표현식 273 + 52의 값은 325입니다...!
최근 자바스크립트에서는 ::템플릿 문자열::이라는 기능이 추가되어 이러한 코드를 간단하게 작성할 수 있다.
템플릿 문자열은 ::백틱( ):: (option + ₩) 기호로 감싸 만든다. 문자열 내부에
{…}` 기호를 사용하여 표현식을 넣으면 표현식이 문자열 안에서 계산된다.
> console.log(`표현식 273 + 52의 값은 ${273 + 52}입니다...!`)
표현식 273 + 52의 값은 325입니다...!
::=== 연산자::와 ::!== 연산자::는 ‘값과 자료형이 같은지’를 비교하는 연산자이다.
::== 연산자::와 ::!= 연산자::는 ‘값이 같은지’를 비교하는 연산자이다.
> 1 == "1" // 자료형이 달라도 어떻게든 변환을 하고 나면 값이 같아지므로 true
true
> false == "0" // false가 0으로, "0"이 0으로 변환된 뒤에 비교한다.
true
> "" == [] // 빈 문자열은 false, 비어있는 배열 []은 false로 변환된 뒤에 비교한다.
true
> 0 == [] // 0은 false, 비어있는 배열 []은 false로 변환된 뒤에 비교한다.
true
> typeof(abc)
"undefined"
> typeof(그냥식별자)
"undefined"
> let a
undefined
> typeof(a)
"undefined"
prompt(메시지 문자열, 기본 입력 문자열)
confirm() 함수를 사용하면 사용자에게 확인을 요구하는 메시지 창이 나타난다. 사용자가 [확인] 버튼을 클릭하면 true를 리턴하고, [취소] 버튼을 클릭하면 false를 리턴한다.
> Number("273")
273
> typeof(Number("273"))
"number" // 자료형이 숫자이다.
다른 문자가 들어있어서 숫자로 변환할 수 없는 문자열의 경우 ::NaN:: (Not a Number)라는 값을 출력한다.
NaN은 자바스크립트에서 숫자이지만, 숫자로 나타낼 수 없는 숫자를 뜻한다.
Number() 함수를 사용해서 변환했으므로 자바스크립트에서 자료형은 숫자이지만, 실질적으로 숫자로 변환할 수 없으므로 ‘숫자가 아니다(Not a Number)’라고 출력하는 것이다.
> Number("$273")
NaN
> typeof(Number("$273"))
"number"
> String(52.273)
"52.273"
> String(true)
"true"
> String(false)
"false"
문자열이 아닌 다른 자료에 빈 문자열을 문자열 연결 연산자(+)를 사용하여 연결하면 문자열 자료형으로 변환한다.
> 273 + ""
"273"
> true + ""
"true"
::0, NaN, ‘’, “” (빈 문자열), null, undefined:: 라는 5개의 자료형은 false로 변환된다. (암기 !)
> Boolean(0)
false
> Boolean(NaN)
false
> Boolean("")
false
> Boolean(null)
false
> let 변수
undefined
> Boolean(변수)
false
불이 아닌 다른 자료에 논리 부정 연산자(!)를 2번 사용하면 불 자료형으로 변환한다.
> !!273
true
> !!0
false
> !!'안녕하세요'
true
> !!''
false