JavaScript 문법 기초

이선민·2021년 6월 23일
0

JavaScript 기초

변수

// 변수 let, const
let name1 = 'Sunmin Lee'
console.log(name1)  // Sunmin Lee

name1 = 'test'
console.log(name1)  // test

// const는 let과 달리 변수에 값을 재할당할 필요가 없을 때 사용
// 해당 변수가 고정된 값을 계속 갖고 있을 때 쓰면 좋다
const name2 = 'Sunmin'
console.log(name2)  // Sunmin

name2 = 'test2' // name2이라는 변수에 'test2'이라는 값을 다시 재할당 -> 에러
console.log(name2)

데이터 타입

// 데이터 타입 숫자(Number), 문자열(String), Boolean, null, undefined
// 숫자(Number)
console.log(10)

const myAge = 15
const yourAge = 20

console.log(myAge)      // 15를 출력
console.log(yourAge)    // 25를 출력

// 문자열(String)
const firstName = 'Sunmin'
const lastName = 'Lee'

console.log(firstName)  // Sunmin
console.log(lastName)   // Lee

// Boolean -> 참과 거짓을 나타내는 true / false 를 표현하는 데이터
const isMan = true
const isWoman = false

console.log(isMan)      // true
console.log(isWoman)    // false

// null, undefined 
// null -> 텅텅 비어 있는 값을 의미
// undefined -> 변수를 선언만 하고 값이 할당되어 있지 않은 것
let name1 = null
console.log(name1)

let name2 = undefined

연산자(1)

// 연산자 (1)
// 문자열 붙이기
console.log('My' + ' car')  // My car
console.log('1' + 2)        // '1' 은 문자로 인식 -> 12 
console.log(1 + 2)          // 3

// 템플릿 리터럴 (Template literals)
// 백틱(``) 을 사용하여 문자열 데이터를 표현, 이중 따옴표나 작은 따옴표로 문자열을 표현할 때보다 간결하게 문자열 붙이기가 가능
const shoewPrice = 20000
console.log('이 신발의 가격은 ' + shoewPrice + '원입니다.')
console.log(`이 신발의 가격은 ${shoewPrice}원입니다.`) // 템플릿 리터럴

// 산술연산자 (Numeric operators)
console.log(2 + 1)      // 3
console.log(2 - 1)      // 1
console.log(2 * 3)      // 6
console.log(4 / 2)      // 2
console.log(10 % 3)     // 1
console.log(10 ** 2)    // 100

// 증감연산자 (Increment and Decrement operators)
let count = 1
const preCount = ++count
// 먼저 자기 자신에게 1을 더해서 재할당 한 후, 이 값을 preCount 에 할당
// count = count + 1
// const preCount = count
console.log(`count: ${count}, preCount: ${preCount}`) // count: 2, preCount: 2

let count2 = 1
const postCount = count2++
console.log(`count2: ${count2}, postCount: ${postCount}`) // count2: 2, postCount: 1
// count 변수를 let으로 선언한 이유 -> 증감연산자를 활용해 count의 값을 계속 증가시키고 다시 count에 할당하고 있기 때문에

// 대입연산자 (Assignment operators)
const shirtsPrice = 100000
const shoesPrice = 80000
let totalPrice = 0

totalPrice += shirtsPrice   // totalPrice = totalPrice + shirtsPrice 와 동일
console.log(totalPrice) // 100000

totalPrice += shoesPrice    // totalPrice = totalPrice + shoesPrice 와 동일
console.log(totalPrice) // 180000

totalPrice -= shirtsPrice   // totalPrice = totalPrice - shirtsPrice 와 동일
console.log(totalPrice) // 80000

연산자(2)

// 연산자 (2)
// 비교연산자 (Comparison operators)
// 숫자값을 비교하는 연산자 -> 비교연산자를 통해서 얻는 값은 boolean
console.log(1 < 2)  // true
console.log(1 <= 2) // true
console.log(1 > 2)  // false
console.log(1 >= 2) // false


// 논리연산자 (Logical operators)
// || (or)  -> 연산 대상 중 하나만 true 여도 true 리턴
// && (and) -> 연산 대상이 모두 true 여야만 true 리턴
// ! (not)  -> true를 false로, false를 true로 바꿔서 리턴
let isOnSale = true
let isDiscountItem = true

console.log(isOnSale && isDiscountItem) // true
console.log(isOnSale || isDiscountItem) // true

isOnSale = false
console.log(isOnSale && isDiscountItem) // false
console.log(isOnSale || isDiscountItem) // true

isDiscountItem = false
console.log(isOnSale && isDiscountItem) // false
console.log(isOnSale || isDiscountItem) // false

console.log(!isDiscountItem)    // true


// 일치연산자 (Equality operators)
// 두 값이 일치하는지를 비교
console.log(1 === 1)    // true
console.log(1 === 2)    // false

console.log('Javascript' === 'Javascript')  // true
console.log('javascript' === 'Javascript')  // false

// === -> 두 값의 데이터타입과 값 자체가 정확히 일치해야만 true를 리턴한다
console.log(1 === '1')  // false

// == -> 비교하는 두 값의 데이터타입이 일치하지 않을 때 해당 값의 데이터타입을 자동으로 변환해주는 자바스크립트만의 특성이 있다.
// 이 특성이 자칫 개발자의 실수를 유발할 가능성이 크기 때문에 실무에서는 거의 쓰지 않고 있다. 정확한 프로그래밍을 위해 === 만 쓰기
console.log(1 == '1')   // true


// quiz 상품 가격을 나타내는 2개의 변수를 선언 -> 각각의 변수에 원하는 가격값을 할당
// 두 상품을 더한 가격 -> 총 가격을 나타내는 변수에 할당
// 총가격의 20% 할인된 가격을 구해서 '총 구입가격은 몇원입니다.'라는 문자열을 출력하기
const iphonePrice = 200000
const galaxyPrice = 150000
const totalPrice = iphonePrice + galaxyPrice

console.log(`총 구입가격은 ${totalPrice * 0.8}원입니다.`) // 총 구입가격은 280000원입니다.

0개의 댓글