[TIL]#2 javascript variable(変数)

3690 ワード

変数へんすう:変数(リード/ライト)へんすう(リード/ライト)へんすう


let(Added i ES 6):変数を宣言できる唯一のキーワード


Varの場合、値を宣言する前に使用可能(=var昇格)なので無効

Block scope


block内部作成時、外部ロード値時に表示されない
let globalName = ‘global name’;  
{
let name = ‘nahyun’;
console.log(name);
console.log(globalName);
}
console.log(name); // 이 때는 값이 뜨지 않음. 
console.log(globalName); // global한 변수이기 때문에 실행됨

定数(読み取り専用):(jsの値が変わらない場合はconstがより良い)


Constantとは?割り当てると値は変わらないi//immutable datatype
Favor immutable data type always for a few reasons:
  • 安全(補足)
  • Thread safety
  • Reduce human mistakes
  • const dayInWeek =7;	
    Immutable data types: primitive types, frozen objects ( i.e. object. Freeze())
    Mutable data types: all objects by default are mutable in JS

    variable types

  • Primitive, single item: number, string, Boolean, null, undefiened, symbol…
  • オブジェクト、box container:function、first-class function(関数と変数に割り当てることができる)
  • (パラメータとして渡すことも、戻りタイプとして返すこともできる)
  • 警告:計算時に有効な値であるかどうかを確認する必要があります
  • 1)const infinity = 1/0 ;
    console.log(infinity); //값: infinity (숫자를 0으로 나누면, 값이 무한대가 나옴) 
    
    2)const negativeinfinity = -1/0 ;
    console.log(negativeInfinity); //값: negativeinfinity (숫자를 0으로 나누면, 값이 음의 무한대가 나옴)
    
    3)const nAn = ‘not a number’/2;
    console.log(nAn);// 값: NaN(not a number)

    variable_primitive type: number

    Const bigInt=****n;

    variable_primitive type: string

    const char =’c’;
    const Brendan =’brendan’
    const greeting = ‘hello’ + Brendan;
    console.log(`value: $(greeting), type: ${typeof greeting}`))// 값: value: hello Brendan, type: string // template literals(string) **`(backtick을 이용하기 )`** 

    variable_primitive type: boolean


    真偽
  • False: 0. Null,undefined,NaN,"(空の文字列)
  • True: any other value
  • const nahyun = true; (true로 할당 가능) 
    const test = 3<1; //false(내부의 값이 참과 거짓인지 평가) 

    variable_primitive type: null


    let nothing=null(「空の値!」を指定)

    variable_primitive type: null


    let x ; (値が宣言されているのか空なのか分からない)

    variable_primitive type: symbol


    地図、資料構造で一意の識別子が必要な場合、または同時多発コードで優先度が必要な場合に使用されるコード.
    const symbol1= Symbol(‘id’);
    const symbol2= Symbol(‘id’);// 동일한 string을 썼어도 다른것으로 판단(고유한 식별자) 
    If 동일한 string을 symbol로 써서, 동일하게 파악하고 싶다면, Symbol.for 사용
    const gSymbol1 = Symbol.for(‘id’);
    const gSymbol2 = Symbol.for(‘id’); 
    console.log(`value: ${symbol1.description}, type: ${typeof gSymbol1}`)// symbol일 경우에, ‘.description’을 사용하여 쓰기 
    

    variable_ object type: symbol

    const nahyun = { name: ‘nahyun’, age: 28};

    *YouTube DREAMコードELLYの資料を参考に!
    nahyun.age = 27;//変更可能!

    Dynamic typing


    Dynamic typed language(プログラム実行時に割り当てられた値によってタイプが変わる)
    let text = ‘hello’;
    console.log(text.charst(0)); //h
    console.log(`value: ${text}, type: ${typeof text}’); 
    // value: hello, type: string
    text = 5; (재선언) 
    console.log(`value: ${text}, type: ${typeof text}’); 
    //value: 5, type: number
    text = ‘7’ + 8; (재선언)
    console.log(`value: ${text}, type: ${typeof text}’); 
    //value: 78, type: string
    text= ‘8’ / ‘2’; (재선언) 
    console.log(`value: ${text}, type: ${typeof text}’); 
    // value: 4, type: number
    console.log(text.charst(0)); // error가 뜸 
    *Type이 변경되었을 때의 오류 때문에 Type script가 나옴