- 논리연산자
- 빈값(undefined, null)
- 변수 let
- 상수 const
- 변수 var
- 별 찍기 repeat(count)
논리연산자
Boolean()
- 매개변수로 사용되는 값의 참/거짓 여부를 반환한다.
- 문자열 또는 숫자의 bool값을 알고 싶은 경우 Boolean을 사용하여 형변환을 한다.
Boolean('a') // true
false를 반환하는 값들
- 빈값,0(false), NaN, undefined, null은 false를 반환한다.
- Boolean대신 !!를 사용해도 같은 결과를 얻을 수 있다.
!!'a' // true
!!'' // false
!!' ' // true
!!0 // false
!!'0' // true
!!NaN // false
!!undefined // false
!!null // false
연산자 !
!(2<0) // true
!2 < 0 // false
// ! 연산자의 우선순위가 비교연산자보다 높다.
// !2 = false = 0
빈 값 (undefined, null)
undefined
- 반환값이 없을 때는 undefined를 반환한다.
- undefined와 false는 같지 않으며, undefined는 false인 값들과 같지 않다.
console.log("hello, world!") // undefined
typeof undefined // undefined
!!undefined // false
undefined == false // false
undefined == 0 // false
undefined == '' // false
null
- null은 defined처럼 빈 값을 의미하지만, 서로 자료형이 다르다.
- null은 false와 같지 않으며, 다른 거짓인 값들과도 같지 않다.
undefined == null // true -> 빈 값은 같지만
undefined === null // false -> 자료형은 다르다.
!!null // true
null == false // false
null == 0 // false
null == '' // false
null 값 확인
- typeof null을 사용할 경우, null 이아니라 object가 나온다.
이는 JavaScript버그이다. - null 값을 확인하기 위해서는 === null 을 사용한다.
변수 let
변수
- 값을 저장하고 저장한 값을 불러올 수 있게 하는 것
- 변수를 만드는 행위는 선언(declaration)한다고 표현한다.
- 변수를 만드는 방법은 let, const, var 으로 총 3개가 있다.
let string = 123213421; // undefined
// 변수 선언과 함께 초기화
string // 123213421
let empty; // undefined
empty // undefined
// 값을 대입하지 않은 변수를 입력하면 undefined를 출력
변수명 주의
- 변수명으로 사용할 수 있는 특수문자는 '$' 와 '_' 뿐이다.
- 변수명에 숫자를 사용할 수 있으나, 숫자가 제일 처음 나오면 안 된다.
- 한글이나 한자, 유니코드 까지도 변수명으로 쓸 수 있다.
- 예약어는 자바스크립트 프로그래밍에서 특정한 역할을 하므로 변수명으로 쓸 수 없다.
let $_ = 'hello' // undefined
let 안녕 = 'hi' // undefined
let banana3; // undefined
let 3banana; // 에러발생
let let; // 예약어 아님
let class; // 예약어
let 과 class 의 차이
- let과 class 둘 다 예약어이지만, let은 유일하게 예약어가 아니었던 적이 있기 때문에 에러메시지가 상이하다.
변수 바꾸기
- 선언은 undefined이지만 변경은 값을 가진다.
- undefined, null 둘 다 변수값을 비우는 역할을 한다.
그러나 undefined는 기본값이고, null은 개발자가 임의로 정해주는 값이기 때문에
개발자가 의도를 가지고 변수를 비울 경우, null로 바꾸는 것이 더 명확하다.
let fruit = "apple" // undefined
fruit = "banana" // banana
fruit = undefined // undefined
fruit = null // null
상수(const)
상수
- const는 상수(constant)의 줄임말이다.
- 상수는 변하지 않고 고정된 값을 담을 때 사용한다.
- const는 객체의 내부 값에서는 적용되지 않기 때문에 엄밀히 말해 상수가 아니다. 따라서 const도 보통 변수라고 부르곤 한다.
- 한번 값을 대입하면 다른 값을 대입할 수 없다는 특성이 있기 때문에 , 상수는 선언과 동시에 초기화를 하지 않으면 에러가 발생한다.
const value = "상수" // undefined
value = "상수아님" // 에러발생
// 상수는 변하지 않는 수. 값을 바꿀 수 없다.
let value2 // empty
const value3 // 에러발생
// const 는 값을 바꿀 수 없으므로 처음에 값을 선언하지 않으면 에러가 발생한다.
변수 var
var
- var는 변수(variable)의 줄임말이다.
- 예전에는 많이 사용했으나, const와 let을 사용해 변수를 선언하는 방식으로 옮겨가고 있다.
- 과거에는 var을 많이 사용했으므로 var의 특성은 알아두는 것이 좋다.
1. var은 선언할 때 초기화 하지 않으면 에러가 발생하는 대신 undefined가 대입된다는 점에서 let과 비슷하다
하지만 var은 기존에 선언했던 variable변수를 다시 선언해도 에러가 나지 않는다.
var variable = "변수" // undefined
variable = "바꿀수있다." // undefined
// 값을 변경할 수 있으며 let 과 매우 유사하다.
var value4 = "선언" // undefined
var value4 = "다시선언" // 값을 다시 선언 할 수 있으며 let은 이때 에러가 발생한다.
let value5 = "선언" // undefined
let value5 = "다시선언" // 에러발생!
// let은 재선언 할 수 없다.
2. 예약어를 변수명으로 사용할 수 있다.
var undefined = "undefined" // undefined
var Infinity = "Infinity" // undefined
var let = "let" // undefined
// var 은 예약어를 변수로 사용할 수 있다.
// var 을 사용하면 직관적으로 알기 어려운 부분이 많기때문에 let을 사용한다.
이와 같이 var을 사용하여 변수를 선언할 경우, 실수로 변수를 다시 선언하는 문제가 발생할 수 있고 예약어를 변수명으로 쓰게 되면 개발자가 코드를 이해하는 데에 혼란을 줄 수 있다.
별 찍기
repeat()
str.repeat(count);
- 문자열을 매개변수 count 만큼 반복한 새로운 문자열을 반환한다.
- 매개변수 count : 문자열을 반복할 횟수. 0과 양의 무한대 사이의 정수. [0, +∞)
- 반환값 : 현재 문자열을 주어진 횟수만큼 반복해 붙인 문자열
'Study > JavaScript' 카테고리의 다른 글
[JavaScript] 태그선택과 이벤트리스너 (0) | 2023.03.05 |
---|---|
[JavaScript] 객체 - 함수, 객체 리터럴 (1) | 2023.02.26 |
[JavaScript] 객체 - 배열 (0) | 2023.02.25 |
[JavaScript] 문자열 숫자 boolean 값비교 (0) | 2023.02.18 |
[JavaScript] 참고페이지 (0) | 2023.02.04 |