ES5

7547 단어

Strict


"use strict";

Object 메서드


Object.create()


var a=Object.create(b)//b 대상을 a.proto에 추가하여 계승
세밀한 제어
    var FantasticFour = Object.create(
        marvelProto,
        {
            title: {
                value: "Fantastic Four",
                enumerable: true,
                writable: false,
                configurable: false
            },
            year: {
                value: "1961",
                enumerable: true,
                writable: false,
                configurable: false
            }
        }
    );
    console.log(
        FantasticFour.title
        + " was first published by " +
        FantasticFour.publisher
        + " in " +
        FantasticFour.year
    );

Object.preventExtensions() 및 Object.isExtensible()

    //Let's see if we can add some more info to the object
    if (Object.isExtensible(marvelProto)){
        //true
        marvelProto.flagshipCharater = "Spider-Man";
    };

    //Stop extensions
    Object.preventExtensions(marvelProto);

    //Adding an Editor in Chief field throws an error
    marvelProto.editorInChief = "Axel Alonso";
    >>>TypeError: Can't add property editorInChief, object is not extensible

Object.seal () 및 Object.isSealed()


Object.seal은 먼저 Object를 호출합니다.preventExtensions (), 새로운 특성을 추가하지 못하게 하고 모든 대상 특성의 configurable 로고를 false로 설정합니다.
    //Can we delete configurable properties?
    if (!Object.isSealed(marvelProto)){
        //we can
        delete marvelProto.flagshipCharacter;
    };

    //Seal the object
    Object.seal(marvelProto);

    //deleting the Editor in Chief field throws an error
    delete marvelProto.editorInChief;
    >>>Error: property "use strict";marvelProto.editorInChief is 
    non-configurable and can't be deleted

Object.freeze () 및 Object.isFrozen()


Object.freeze에서 Object를 호출합니다.seal () 는 대상의 설정을 멈추고 모든 대상 특성의 writeable 로고를false로 설정하여 완벽한 정적 대상을 제공합니다.
    //Can we write writeable properties?
    if (!Object.isFrozen(marvelProto)){
        //we can
        marvelProto.flagshipCharacter = "Iron Man";
    };

    //Seal the object
    Object.freeze(marvelProto);

    //Changing the Flagship Character throws an error
    marvelProto.flagshipCharacter = "Wolverine";
    >>>Error: "use strict";marvelProto.flagshipCharacter is read-only

Object.getPrototypeOf()


새로운 메서드 Object.getPrototypeOf()가 객체의 원형을 반환합니다.이 메서드의 값은 비표준 Object와 같습니다.proto 특성.

Object.keys() 및 Object.getOwnPropertyNames()


Object.keys () 는enumerable가true인 속성을 되돌려줍니다.Object.getOwnPropertyNames () 는 상술한 방법과 유사하지만,enumerable 로고가false로 설정된 특성도 포함됩니다.상속된 등록 정보는 무시됩니다.
    //BUT... keys returns ONLY properties on object itself
    //inherited properties are ignored
    //launchComic (enumerable:false) is also skipped
    console.log(Object.keys(marvelProto));
    >>>["publisher", "founded", "founder", "headquarters"]

    //getOwnPropertyNames also operates only on 
    //properties of the object itself, but it
    //also includes properties that have the
    //enumerable flag set to false 
    console.log(Object.getOwnPropertyNames(marvelProto);
    >>>["launchComic", "founder", "founded", "headquarters", "publisher"]

getters와setters


Get과 set은 객체 특성을 함수에 바인딩합니다. 이 함수는 속성의 값에 액세스하거나 쓰기 위해 호출됩니다.Get은 매개변수를 적용하지 않습니다.set은 매개 변수(설정할 값)를 받아들인다.
    var FantasticFour = Object.create(
        marvelProto,
        {
            title : {
                value : "Fantastic Four",
        
            },
            year : {
                value : "1961",
        
            }
        }
    );

    //Use Object.defineProperty to set the getters and setters
    //Alternatively, this could be set in the Object.create above
    Object.defineProperty(FantasticFour, "bestIssue", {
        get: function () { return fave; },
        set: function (num) {
            fave = "The best single issue of Fantastic Four is issue #" + num;
        }
    }
    );

    FantasticFour.bestIssue = 51;
    console.log(FantasticFour.bestIssue);
    >>>The best single issue of Fantastic Four is #51

Object.defineProperty()


Array 메서드


Array.forEach()


수조의 원소마다 한 번씩 실행하는 함수
    var arr = [8, 10, 13, 10, 8, 1, 5];
    function logger(element, index, array) {
        console.log("The value of the element at index " + index + " is " + element);
    }
    arr.forEach(logger);

Array.map()


새 수조를 되돌려줍니다. 새 수조는 원시 수조의 모든 요소에서 하나의 함수 파라미터를 호출하여 생성합니다.
    var arr = [8, 10, 13, 10, 8, 1, 5];
    function square(num){
        return num * num;    
    }    
    console.log(arr.map(square));  
    >>>[64, 100, 169, 100, 64, 1, 25]

Array.reduce () 및 Array.reduceRight()

    var arr = [8, 10, 13, 10, 8, 1, 5];

    console.log(arr.reduce(function(a, b){ return  a + b; }));           
    >>>55

    console.log(arr.reduce(function(a, b){ return  a +" "+ b; }));               
    >>>8 10 13 10 8 1 5

    console.log(arr.reduceRight(function(a, b){ return  a + b; }));           
    >>>55

    console.log(arr.reduceRight(function(a, b){ return  a +" "+ b; }));
    >>>5 1 8 10 13 10 8

Array.filter()

    var arr = [8, 10, 13, 10, 8, 1, 5];
    function odd(element, index, array) {
        return (element%2);
    }
    console.log(arr.filter(odd));
    >>>[13, 1, 5]

Array.every () 및 Array.some()


만약 그룹의 모든 요소가 제공된 함수로 이루어진 테스트를 통과한다면, Array.every()가 true로 돌아갑니다.만약 그룹의 모든 요소가 제공된 함수로 이루어진 테스트를 통과한다면, Array.some()가 true로 돌아갑니다.
    var arr = [8, 10, 13, 10, 8, 1, 5];
    function odd(element, index, array) {
        return (element%2);
    }
    console.log(arr.every(odd));
    >>>false

    console.log([1,3,5].every(odd))
    >>>true

    console.log(arr.some(odd));
    >>>true

    console.log([2,4,6].some(odd))
    >>>false

Array.indexOf() 및 Array.lastIndexOf()

    var arr = [8, 10, 13, 10, 8, 1, 5];

    console.log("lastIndexOF is " + arr.lastIndexOf(10));
    >>>lastIndexOF is 3

    console.log("indexOF is " + arr.indexOf(10));
    >>>indexOF is 1

Others


JSON.parse() 및 JSON.stringify()


Date.now()


Function.prototype.bind()


link

좋은 웹페이지 즐겨찾기