JS ES5

1594 ワード

厳格モードuse strict
  • var宣言変数
  • を使用する必要があります.
  • カスタム関数thisがwindow
  • を指すことを禁止する
    'use strict'
    funcion Person(name){
        this.name = name;
    }
    Person("Tom"); //error
    new Person("Tom"); //right
  • eval用の役割ドメイン
  • を作成
  • オブジェクト属性名は、
  • を繰り返すことはできません.
    JSONオブジェクト
  • JSON.stringify(obj/arr) jsオブジェクト(配列)回転jsonオブジェクト(配列)
  • JSON.parse(json) jsonオブジェクト回転(配列)jsオブジェクト(配列)
  • Object拡張
  • Object.create(prototype, [descriptors])指定オブジェクトをプロトタイプとして新規オブジェクト
  • を作成する.
    var man = {sex:'mail'};
    var person = Object.create(man, {
        name: {
            value: '',
            writable: true, //  
            configurable: true, //   (   )
            enumerable: true //   
        }
    })
    person.name = 'Tom';
    for (let value in person) {
        console.log(value); //name sex
    }
  • Object.defineProperties(object, descriptors)指定オブジェクトに対して複数の属性を拡張する
  • を定義する.
    var obj1 = {
        firstName: 'Kevin',
        lastName: 'Tseng'
    };
    Object.defineProperties(obj1, {
        fullName: {
            //  
            get: function(){
                return this.firstName + '-' + this.lastName;
            },
            //  
            set: function(data){
                var nameArr = data.split("-");
                this.firstName = nameArr[0];
                this.lastName = nameArr[1];
            }
        }
    })
    console.log(obj1.fullName); //Kevin-Tseng
    obj1.fullName = "Tom-Smith";
    console.log(obj1.fullName, obj1.firstName); //Tom-Smith Tom