개발일지

개발일지 1일차

index.ys 2023. 3. 7. 01:39

변수(varible)

-변수는 사용자나 서버로부터 입력받은 정보를 저장하는 용도로 사용된다.

 

 

let

let 변수이름 = 값 (변수를 할당했다, 재할당 가능)

let a = 'Hello';
let name = 'Sinok Kim' // name이라는 변수에 Sinrok Kim 이라는 값을 할당
console.log(name) // 변수 name이 가리키고 있는 값 Sinrok Kim 을 출력

name = 'William' // 위에서 선언했던 name이라는 변수에 "William"이라는 값을 재할당
console.log(name) // 변수 name이 가리키고 있는 값 "William"을 출력

 

한 줄에 여러 변수를 선언하는 것도 가능하다.

let user = 'John', age = 25, message = 'Hello';

 

하지만 가독성을 위해 한 줄에는 하나의 변수를 작성해야한다..

 

let user = 'John';
let age = 25;
let message = 'Hello';

 

변수요약

var, let, const를 사용해 변수를 선언할 수 있습니다. 선언된 변수엔 데이터를 저장할 수 있죠.

변수명은 변수가 담고 있는 것이 무엇인지 쉽게 알 수 있도록 지어져야 합니다.

 

 

데이터 타입

-데이터들을 컴퓨터가 보다 빠르고 효율적으로 처리하기 위함이다.

 

문자 (String)

- 자바스크립트에선 문자열을 따옴표로 묶는다 ('string') or ("string")

let str = "Hello";
let str2 = 'Single quotes are ok too';
let phrase = `can embed another ${str}`;

 

숫자 (Number)

- 숫자 데이터 나이, 거리, 무게, 가격.. 정말 무수히 많은 종류의 데이터를 숫자로 표현할 수 있다.

console.log(10) // 10을 출력

const myAge = 37
const yourAge = 25

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

const로 변수 할당

 

Boolean

- 자바스크립트에서 참과 거짓을 나타내는 true / false를 표현하는 데이터 ( 비교연산자에서 자주사용)

const isMan = true
const isWoman = false

console.log(isMan)
console.log(isWoman)

const로 변수 할당후 isMan, isWoman 변수에게 각각 true와 false값을 강제로 부여

 

null, undefined

- null은 텅텅 비어 있는 값을 의미한다.

- undefined은 변수를 선언만 하고 값이 할당되어 있지 않은 것이다.

let name1 = null
console.log(name) // null을 출력

let name2
console.log(name2) // undefined를 출력

 

typeof 연산자

-연산자는 인수의 자료형을 반환합니다

typeof undefined // "undefined"

typeof 0 // "number"

typeof 10n // "bigint"

typeof true // "boolean"

typeof "foo" // "string"

typeof Symbol("id") // "symbol"

typeof Math // "object"  (1) math는 수학연산을 제공하는 내장객체이기때문에 "object"를 출력

typeof null // "object"  (2)

typeof alert // "function"  (3)

 

typeof 연산자 요약

숫자형 – 정수, 부동 소수점 숫자 등의 숫자를 나타낼 때 사용. 정수의 한계는 ±253

bigint – 길이 제약 없이 정수를 나타낼 수 있다.
 
문자형 – 빈 문자열이나 글자들로 이뤄진 문자열을 나타낼 때 사용.
 
불린형true, false를 나타낼 때 사용
 
nullnull 값만을 위한 독립 자료형입니다. null은 알 수 없는 값을 나타냄
 
undefinedundefined 값만을 위한 독립 자료형입니다. undefined는 할당되지 않은 값을 나타냄
 
객체형 – 복잡한 데이터 구조를 표현할 때 사용
 
심볼형 – 객체의 고유 식별자를 만들 때 사용
 
typeof x 또는 typeof(x) 형태로 사용
 
피연산자의 자료형을 문자열 형태로 반환
 
null의 typeof 연산은 "object"인데, 이는 언어상 오류입니다. null은 객체x
 
 
형변환

문자형으로 변환

-함수와 연산자에 전달되는 값은 대부분 적절한 자료형으로 자동 변환됩니다. 이런 과정을 "형 변환(type conversion)"

이라고 한다.

let value = true;
alert(typeof value); // boolean

value = String(value); // 변수 value엔 문자열 "true"가 저장됩니다.
alert(typeof value); // string

 

숫자형으로 변환

- 숫자형으로의 변환은 수학과 관련된 함수와 표현식에서 자동으로 일어남.

alert( "6" / "2" ); // 3, 문자열이 숫자형으로 자동변환된 후 연산이 수행됩니다

Number(value) 함수를 사용하면 주어진 값(value)을 숫자형으로 명시해서 변환가능 

let str = "123";
alert(typeof str); // string

let num = Number(str); // 문자열 "123"이 숫자 123으로 변환됩니다.

alert(typeof num); // number

String -> Number로 형변환

 

숫자 이외의 글자가 들어가 있는 문자열을 숫자형으로 변환하려고 하면, 그 결과는 NaN이 된다 (Not a Number)

let age = Number("임의의 문자열 123");

alert(age); // NaN, 형 변환이 실패합니다. 문자와 숫자가 섞여 있는경우

불린(Boolean)형으로 변환

- 숫자 0, 빈 문자열, null, undefined, NaN과 같이 직관적으로도 “비어있다고” 느껴지는 값들은 false로 나타냄

alert( Boolean(1) ); // 숫자 1(true)
alert( Boolean(0) ); // 숫자 0(false)

alert( Boolean("hello") ); // 문자열(true)
alert( Boolean("") ); // 빈 문자열(false)

 

형변환 요약

- 문자형으로 변환 은 무언가를 출력할 때 주로 일어납니다. String(value)을 사용하면 문자형으로 명시적 변환이 가능
- 숫자형으로 변환 은 수학 관련 연산시 주로 일어납니다. Number(value)로도 형 변환가능
 
- 숫자형으로의 변환은 다음 규칙을 따릅니다.

 

- 불린형으로의 형 변환은 다음 규칙을 따릅니다.

 

기본 연산자와 수학

- 자바스크립트에서 지원하는 수학 연산자는 다음과 같습니다.
덧셈 연산자 +,
뺄셈 연산자 -,
 
곱셈 연산자 *,
 
나눗셈 연산자 /,
 
나머지 연산자 %,
거듭제곱 연산자 **
 
 

나머지 연산자 %

alert( 5 % 2 ); // 5를 2로 나눈 후의 나머지인 1을 출력
alert( 8 % 3 ); // 8을 3으로 나눈 후의 나머지인 2를 출력

 

거듭제곱 연산자 **

alert( 2 ** 2 ); // 4  (2 * 2)
alert( 2 ** 3 ); // 8  (2 * 2 * 2)
alert( 2 ** 4 ); // 16 (2 * 2 * 2 * 2)

 

이항 연산자 '+'와 문자열 연결

let s = "my" + "string";
alert(s); // mystring
alert( '1' + 2 ); // "12"
alert( 2 + '1' ); // "21"

+연산자로 "String" + "String"을 연결

 

할당 연산자

- 할당(assignment) 연산자

let x = 2 * 2 + 1;

alert( x ); // 5

let a = 1;
let b = 2;

let c = 3 - (a = b + 1);

alert( a ); // 3
alert( c ); // 0

 

증가·감소 연산자

- 숫자를 하나 늘리거나 줄이는 것은 자주 사용되는 연산입니다.

- 증가·감소 연산자는 변수에만 쓸 수 있다.

//증가 연산자 ++는 변수를 1증가시킨다.
let counter = 2;
counter++;      // counter = counter + 1과 동일하게 동작합니다. 하지만 식은 더 짧습니다.
alert( counter ); // 3


//감소연산자 --는 변수를 1감소시킨다.
let counter = 2;
counter--;      // counter = counter - 1과 동일하게 동작합니다. 하지만 식은 더 짧습니다.
alert( counter ); // 1

 

 

 

비교 연산자

- 보다 큼·작음: a > b, a < b
- 보다 크거나·작거나 같음: a >= b, a <= b
- 같음(동등): a == b. 등호 =가 두 개 연달아 오는 것에 유의하세요. a ​​= b와 같이 등호가 하나일 때는 할당을 의미합니다.
- 같지 않음(부등): 같지 않음을 나타내는 수학 기호 는 자바스크립트에선 a != b로 나타냅니다. 할당연산자 = 앞에
느낌표 !를 붙여서 표시합니다.
 
 

불린형 반환

alert( 2 > 1 );  // 2가 1보다 크다 true(참)
alert( 2 == 1 ); // 2와 1이 같다 false(거짓)
alert( 2 != 1 ); // 2는 1이 아니다 true(참)
 

문자열 비교

alert( 'Z' > 'A' ); // z가 a보다 크다(뒤에 있음) true 참
alert( 'Glow' > 'Glee' ); // o가 e보다 크므로 true 참
alert( 'Bee' > 'Be' ); // bee가 3글자로 문자열이 더 기므로 true 참

 

다른 형을 가진 값간의 비교

- 비교하려는 값의 자료형이 다르면 자바스크립트는 이 값들을 숫자형으로 바꿉니다

alert( '2' > 1 ); // true, 문자열 '2'가 숫자 2로 변환된 후 비교가 진행됩니다.
alert( '01' == 1 ); // true, 문자열 '01'이 숫자 1로 변환된 후 비교가 진행됩니다.

 

- 불린

alert( true == 1 ); // true
alert( false == 0 ); // true

 

일치연산자

- 동등 연산자(equality operator) ==0false를 구별하지 못합니다.

alert( 0 == false ); // true
alert( '' == false ); // true
alert( 0 === false ); // false, 피연산자의 형이 다르기 때문입니다.

- ===는 자료형의 동등여부까지 검사함 

 

null이나 undefined와 비교하기

alert( null === undefined ); // false
alert( null == undefined ); // true

null vs 0

alert( null > 0 );  // (1) false
alert( null == 0 ); // (2) false
alert( null >= 0 ); // (3) true
 

비교 연산자 요약

- 비교 연산자는 불린값을 반환합니다.
 
- 문자열은 문자 단위로 비교되는데, 이때 비교 기준은 ‘사전’ 순입니다.
 
- 서로 다른 타입의 값을 비교할 땐 숫자형으로 형 변환이 이뤄지고 난 후 비교가 진행됩니다(일치 연산자는 제외).
 
- nullundefined는 동등 비교(==) 시 서로 같지만 다른 값과는 같지 않습니다.
 
- null이나 undefined가 될 확률이 있는 변수가 > 또는 <의 피연산자로 올 때는 주의를 기울이시기 바랍니다. null, undefined
여부를 확인하는 코드를 따로 추가하는 습관을 들이길 권유합니다.

 

논리 연산자

- 자바스크립트엔 세 종류의 논리 연산자 ||(OR), &&(AND), !(NOT)이 있다.

 

||(OR)

result = a || b;

alert( true || true );   // true
alert( false || true );  // true
alert( true || false );  // true
alert( false || false ); // false

- 두 연산자중 1개의 연산자만 true여도 true값 반환

- 네 가지 조합이 가능

- if문에서 자주 사용

- 첫번째 truthy를 찾음

 

&&(AND)

result = a && b;

alert( true && true );   // true
alert( false && true );  // false
alert( true && false );  // false
alert( false && false ); // false

- 두 피연산자가 모두가 참일 때 true를 반환

- 첫번째 falsy를 찾음

 

let hour = 12;
let minute = 30;

if (hour == 12 && minute == 30) {
  alert( '현재 시각은 12시 30분입니다.' );
}
true

 

!(NOT)

- 피연산자를 불린형(true / false)으로 변환합니다.
 
- 1에서 변환된 값의 역을 반환합니다.
 
 
result = !value;

alert( !true ); // false
alert( !0 ); // true

//NOT을 두개를 연달아 사용하면 값을 불린으로 변환
alert( !!"non-empty string" ); // true 
alert( !!null ); // false

//내장 함수 Boolean을 사용하면 !!을 사용한 것과 같은 결과를 도출할 수 있습니다.
alert( Boolean("non-empty string") ); // true
alert( Boolean(null) ); // false

 

1일차 개발일지 끝.