자바 스크립트를 시작해 보면 인상적이었습니다.

자바 스크립트를 시작해 보면 인상적이었습니다.

2022-10-03 last update

8 minutes reading 자바스크립트 es6

소개



최근 자바스크립트를 공부하기 시작했지만, 공부하고 있어 개인적으로 인상적이라는 것을 복습이 정리합니다.
언어 기능적인 시점이 메인으로 되어 있다.

완전하게 입문자이므로 잘못되어 있는 것도 있다고 생각하고, 아직 아직 모르는 것도 많이 있으므로 여러가지 가르쳐 주세요.

평상시는 C++ 쓰고 있는 사람입니다.

세미콜론이 없어도 좋다.



어느 정도는 세미콜론이 없어도 자동으로 판단 해주는 것 같습니다.

sample.js
    var  a = 0      //OK
    var  b = 1;     //OK

JS계 쿠마의 주류를 모르겠지만, 자신은 무서워서 세미콜론을 붙여 두고 싶다고 느꼈다

undefined



sample.js
    var  a;//初期化されていない(未定義値)
    console.log(a);//undefined

초기화되어 있지 않은 변수 등 미정의치에는 그것 전용의 것이 준비되어 있는 것 같다



마찬가지로 Infinity, NaN, null이 있다고합니다.

===,!== 연산자



초보에서 누군가라고 생각하는 사람

sample.js
    var a = 1;
    var b = '1';

    console.log(a == b);    //true
    console.log(a === b);   //false

데이터형도 같은지 체크하고 싶을 때는===나!==를 사용한다

오히려 1 =='1'이 true인 것에 놀랐다.



sample.js
    console.log(null == undefined);    //true
    console.log(null === undefined);   //false

for in



sample.js

    var hoge = { a: 1, b: 2, c: 3 };

    for (var paramName in hoge)
    {
        console.log(paramName,hoge[paramName]);
    }

output
a 1
b 2
c 3

객체가 가지는 멤버 변수의 이름을 취득할 수 있는 이미지
operator[]로 그 값에 액세스 할 수 있다

클래스 버전



sample.js

        class Hoge
        {
            constructor() 
            {
                this.a = 1;
                this.b = 2;
                this.c = 3;
            }
        };
        var hoge = new Hoge();

        for (var paramName in hoge) 
        {
            console.log(paramName,hoge[paramName]);
        }

Array가 편리



sample.js
    [1, 2, 3]
        .map(value => value * 2)
        .forEach((value, index) => { console.log(index, value); });

편리한 것 (작은 느낌)



범위 기반 for는 for of

sample.js
    var ar = [1, 2, 3];

    for (var elm of ar) 
    {
        console.log(elm);
    }

블록 범위 없음



sample.js
    {
        var hoge = 1;
        var hoge = 2;
    }
    console.log(hoge);//2

변수를 재선언하거나 범위를 벗어나거나
이러한 코드는 문제없이 통과합니다.

sample.js
    {
        let hoge = 1;
        //let hoge = 2; error
    }
    //console.log(hoge); error

var가 아닌 let으로 하면 블록 스코프를 실현할 수 있다
JS에 익숙하지 않은 자신은 기본 let으로 하면 되는 것은? 라고 생각했다

클래스에 액세스 지정자가 없음



private라든지 public이든 없다고 한다
해결책을 살펴보면 여러 가지가 있습니다.

원래 옛날에는 class 구문도 없고 function으로 그렇게 했던 것 같아서 놀랐다

operator 오버로드는 불가능합니까?



C++를 좋아하는 사람은 이것이 할 수 있으면 기쁘다(시안하지만)

요약



완전한 입문자의 시점에서 인상적이었던 것을 정리했다

입문자이므로 여러 가지를 가르쳐주세요.
아직 공부 도중이므로 속편은 나올지도

Haskell을 공부하면 JS와 H 공부하고 있다고 말할 수 있다