[TIL]JavaScript問題セット


Day7 🏁


質問なしでgooglingだけですべての質問を済ませました!!
今日白俊は休みますハハハ、、、

データ型


オリジナルタイプ(Primitive type)オブジェクトタイプ(Object type)番号(数値)アレイ(文字列)文字列(文字列)機能(ブール)RegExp(未定義)Null(空)Symbol(ES 6追加)

String


「」「」「」

String Propertyとメソッド


.split()


指定した区切り文字を使用して複数の文字列を区切ります.
var str1 = "Hi!Elice";

str1.split("!");  // [Hi, Elice]

.charAt()


配列のインデックス値を返します
var str1 = "Hi!Elice";

str1.charAt(1);  // i

.length


文字データの文字数を返します.
const str = '0123'
console.log(str.length) //4

const str = '01 23'
console.log(str.length) //5(띄어쓰기도 갯수에 포함)

.indexOf()


呼び出したstringオブジェクトから、指定した値と一致する最初のインデックスが返されます.
一致する値がない場合は-1を返します.
const result = 'Hello world!'.indexOf('world')
console.log(result) //6

const result = 'Hello world!'.indexOf('안녕')
console.log(result) //-1

.slice()


文字列の一部を抽出し、文字列を返します.
  • endIndexは前の場所に抽出されます(0の場合は対応する2つのインデックス文字列が返されます(3の場合は3が返されます)
  • const str = 'Hello world!'
    console.log(str.slice(0, 3)) //Hel

    .replace()


    1番目に見つかった文字データを2番目の文字データに置き換える
    const str = 'Hello world!'
    console.log(str.replace('world', '안녕') //Hello 안녕!
    
    const str = 'Hello world!'
    console.log(str.replace(' world!', '') //Hello

    .match()


    特定の文字データから正規表現で特定の文字に一致し、配列データに戻る
  • /.+(?=@/)正規表現
  • const str = '[email protected]'
    console.log(str.match(/.+(?=@/)) //okdol0611을 포함한 배열데이터
    
    const str = '[email protected]'
    console.log(str.match(/.+(?=@/)[0]) //okdol0611

    .trim()


    文字データの前と後のスペースを削除します(ログインウィンドウでIDを入力している間にうっかりスペースを入力すると、エラーが発生しないように文字データとして認識されます).
    const str = '    Hello world     '
    console.log(str.trim()) //Hello world

    Math


    デジタルデータに変換

    const pi = 3.14159265358979
    console.log(pi) //3.14159265358979
    
    const integer = parseInt(str) 
    //숫자가 들어있는 문자데이터를 넣으면 숫자만 추출돼서 정수(integer)로 반환
    const float = parseFloat(str) 
    //소수점자리 숫자도 유지하면서 문자데이터를 숫자로 변환
    
    console.log(integer) //3
    console.log(float) //3.14
    console.log(typeof integer, typeof float) //number number

    Math Propertyとメソッド


    .toFixed()

    const pi = 3.14159265358979
    console.log(pi) //3.14159265358979
    
    const str = pi.toFixed(2)
    // 메소드가 호출될때 인수로 소수점 몇번째자리까지 유지할것인지 표기해 문자데이터로 반환
    console.log(str) //3.14
    console.log(typeof str) //string

    Math.abs()

    console.log('abs: ', Math.abs(-12)) //abs: 12
    //주어진 숫자의 절대값을 반환

    Math.min()

    console.log('min: ', Math.min(2, 8)) //min: 2
    //인수로 들어온 숫자 데이터중에 가장 작은값을 반환

    Math.max()

    console.log('max: ', Math.max(2,8)) //max: 8
    //인수로 들어온 숫자 데이터중에 가장 큰값을 반환

    Math.ceil()

    console.log('ceil: ', Math.ceil(3.14)) //ceil: 4
    //올림처리된 값 반환

    Math.floor()

    console.log('floor: ', Math.floor(3.14)) //floor: 3
    //내림처리된 값 반환

    Math.round()

    console.log('round: ', Math.round(3.14)) //round: 3
    //반올림 처리 된 값 반환

    random()

    console.log('random: ', Math.random()) //random:  0.8935768296443671
    //랜덤한 숫자(난수) 반환, 0이상 1미만의 부동 소숫점 난수를 반환합니다.

    Array


    相互に関連付けられたデータを組み合わせ、配列と名前を付けます.
    [] //빈 배열
    [ 1, 2, 3, 4, 5 ]
    [ 1, 'A', true, null ]

    アレイメソッド


    .length


    配列データに含まれるアイテムの数を返します.
    const numbers = [1, 2, 3, 4]
    console.log(numers.length) //4
    
    console.log([1,2].length) //2
    //배열리터럴에 직접적으로도 사용할 수 있음
    
    console.log([].length) //0
    //빈 배열, 배열에 데이터가 채워져있는지 아닌지 확인할 수 있음

    .push


    配列データの末尾にアイテムを追加
    const fruits = ['사과', '바나나', '체리']
    fruits.push('오렌지')
    
    console.log(fruits) //(4) ['사과', '바나나', '체리', '오렌지']

    .concat()


    2つの配列データを結合して新しい配列データを返します.
  • 元データ破損なし
  • const numbers = [1, 2, 3, 4]
    const fruits = ['사과', '바나나', '체리']
    
    console.log(numbers.concat(fruits)) //(7) [1, 2, 3, 4, '사과', '바나나', '체리']
    console.log(numers) //(4) [1, 2, 3, 4]
    console.log(fruits) //(3) ['사과', '바나나', '체리']
    //다시 각각 출력해도 원본의 데이터 손상 X

    .forEach()


    特定のコールバック関数(戻り値なし)を繰り返し、アイテム数と等しい数で実行します.
  • コールバック関数:関数形式を伝達するパラメータ(簡単に言えば、関数では関数)
  • 事実arrayあまり使いにくい
  • index=i
  • const fruits = ['사과', '바나나', '체리']
    
    fruits.forEach(function (item, i, array) {
    	console.log(item, i, array)
    })
    //사과 0 (3) ['사과', '바나나', '체리']
    //바나나 1 (3) ['사과', '바나나', '체리']
    //체리 2 (3) ['사과', '바나나', '체리']

    .map()


    アイテムの数に応じて、returnキーで返されたデータをコールバック繰返し+コールバック関数で集計し、新しい配列を作成して使用します.
  • .forEach()は値を返さなかった
  • const numbers = [1, 2, 3, 4]
    const fruits = ['사과', '바나나', '체리']
    
    const a = fruits.forEach((fruit, index) => {
    	console.log(`${fruit}-${index}`)
    })
    console.log(a)
    //사과-0
    //바나나-1
    //체리-2
    //undefined
    
    const b = fruits.map((fruit, index) => `${fruit}-${index}`)
    console.log(b) //(3) [사과-0, 바나나-1, 체리-2]
  • 対象文字{}
  • const fruits = ['사과', '바나나', '체리']
    
    const b = fruits.map((fruit, index) => ({
    		id: index,
    		name: fruit
    	}))
    console.log(b) //(3) [{id:0, name: "사과"}, {...}, {...}]

    算術演算子

    console.log(1 + 2)
    console.log(5 - 7)
    console.log(3 * 4)
    console.log(10 / 2)
    console.log(7 % 5) //나머지 2
    
    var value = 10
    console.log(++value) //11
    console.log(--value) //10

    -演算子の前後(++n、n++)の差異を増減


    問題を解くときに思ったのとは違う値段が出たので、探してみました.
  • 増減演算子は、増分演算子(++)と減算演算子(--)に分けられます.
    増分演算子は変数値を1増加させ、減算演算子は変数値を1減少させる.
  • また、増減演算子は、プリアンブル(++n)とポストガイド(n+)に分けられる.
    出力演算子の先頭または後導または増減を使用したnは、1の増加した値を得る.
  • int a = 1, b = 1, c = 1, d = 1;
     
    	++a;
    	b++;
    	c = c + 1;
    	d += 1;
     
    	printf("출력값: %d, %d, %d, %d\n", a, b, c, d);	
      		  /* 다음의 결과값은 모두 2다.
      		  출력값: 2, 2, 2, 2 */

    電位(++n)


    演算子++が被演算子nの前にある場合を電位と呼び、増加した値を演算結果値1とする.

    後列(n+)


    反対に 演算子++が被演算子nの後にある場合を後位と呼び、1を増やす前の値を演算結果値とする.
    では 演算結果値とは何か、簡単に言えば「演算そのものの値を増減する」ということです.
    すなわち、「n++または++n」自体の結果値である.
    int a = 1, b = 1;
     
    printf("출력값: %d, %d \n", ++a, b++);
    	/* 출력값: 2, 1 */
    前の増加後の値は2、後の増加前の値は1です.
    すなわち,異なる「演算結果値」が得られ,これが上位と下位の違いである.
    以上の内容は図の通りです.

    ( 画像ソース )
    前列と後列では演算結果値は異なるが、演算終了後nの値はいずれも11に等しいことを忘れないでください.

    比較演算子


    comparison operator
    const a = 1
    const b = 1
    
    console.log(a === b) //true
    //=== 일치연산자 : 가운데연산자를 기준으로 왼쪽,오른쪽 데이터를 비교해서 일치하는지를 확인함 
    
    function isEqual(x, y) {
        return x === y
    }
    
    console.log(isEqual(1, 1)) //true
    console.log(isEqual(2, '2')) //false
    const a = 1
    const b = 3
    
    console.log(a !== b) // true
    // !== 불일치연산자 : 서로 다른값인지 확인해줌
    
    console.log(a < b) //true
    console.log(a > b) //false
    
    const x = 13
    const y = 13
    
    console.log(x >= y) //true
    console.log(x <= y) //true
    // =기호를 <>괄호보다 뒤에 적어야함

    論理演算子


    logical operator
    const a = 1 === 1
    const b = 'AB' === 'AB'
    const c = false
    
    console.log(a) //true
    console.log(b) //true
    console.log(c) //false
    
    console.log('&&: ', a && b && c) //&&: false
    // && 그리고, end연산자 : 모든값이 true 인가? 하나라도 false값이 있느면 false가됨
    console.log('||: ', a || b) //||: 'true
    // || 또는, or 연산자 : 모든값중에 true라는 값이 하나라도 있으면 true
    console.log('!: ', !a) //!: false
    // ! 부정, not 연산자 : 뒤쪽에있는 데이터가 true면 false, false면 true로 반대값을 출력함

    割付演算子


    assignment operator
    // 할당 연산자
    
    let a = 2 // = 할당연산자
    //const : 재할당불가능 , let : 재할당 가능
    // a = a + 1 아래랑 같은 의미
    a += 1 //-, *, /, % 연산자 모두 대입 가능함
    
    console.log(a) //3

    ソース📚

  • Ellis SWエンジニアリング第2期カリキュラムリソース
  • 増減演算子の前後の差異
  • Math.pow()