TECH I.S.

JavaScript ES5

ES5とも呼ばれるECMAScript 2009は、JavaScriptの最初のメジャーリビジョンです。

この章では、ES5の最も重要な機能について説明します。

ES5 の機能


ブラウザのサポート

ES5最新のすべてのブラウザーで完全にサポートされています。
Chrome IE Edge Firefox Safari Opera
Yes 9.0 Yes Yes Yes Yes

「use strict」ディレクティブ

"use strict"JavaScript コードを「strict mode」で実行する必要があることを定義します。

strict modeでは、たとえば、宣言されていない変数を使用できません。


すべてのプログラムでstrict modeを使用できます。宣言されていない変数の使用を防ぐなど、よりクリーンなコードを作成するのに役立ちます。"use strict"単なる文字列式です。古いブラウザーは、理解できなくてもエラーをスローしません。


詳細については、JS Strict モードを参照してください。


Property Access on Strings

このcharAt()メソッドは、文字列内の指定されたインデックス(位置)にある文字を返します。

var str = "HELLO WORLD"; str.charAt(0);            // returns H

ES5では、文字列のプロパティアクセスが許可されます。

var str = "HELLO WORLD"; str[0];                   // returns H

文字列のプロパティアクセスは、少し予測できない場合があります。詳細については、JS 文字列メソッドを参照してください。


Strings Over Multiple Lines


"Hello \ Dolly!";


メソッドはユニバーサル サポートされていない可能性があります。古いブラウザでは、バックスラッシュの前後のスペースの扱いが異なる場合があります。一部の古いブラウザーでは、\ 文字の後ろにスペースを使用できません。

文字列リテラルを分割するより安全な方法は、文字列加算を使用することです。

"Hello " + "Dolly!";


Reserved Words as Property Names

ES5では、予約語をプロパティ名として使用できます。

オブジェクトの例

var obj = {name: "John", new: "yes"}


String trim()

このtrim()メソッドは、文字列の両側から空白を削除します。

var str = "       Hello World!        "; alert(str.trim());

詳細については、JS 文字列メソッドを参照してください。


Array.isArray()

このisArray()メソッドは、オブジェクトが配列かどうかをチェックします。

function myFunction() {   var fruits = ["Banana", "Orange", "Apple", "Mango"];   var x = document.getElementById("demo"); x.innerHTML = Array.isArray(fruits); }

詳細については、JS 配列を参照してください。


Array forEach()

このforEach()メソッドは、配列要素ごとに関数を1回呼び出します。

var txt = ""; var numbers = [45, 4, 9, 16, 25]; numbers.forEach(myFunction); function myFunction(value) {  txt = txt + value + "<br>"; }

詳細については、JS 配列反復メソッドを参照してください。


Array map()

この例では、各配列値を2で乗算します。

var numbers1 = [45, 4, 9, 16, 25]; var numbers2 = numbers1.map(myFunction); function myFunction(value) {   return value * 2; }

詳細については、JS 配列反復メソッドを参照してください。


Array filter()

この例では、18より大きい値を持つ要素から新しい配列を作成します。

var numbers = [45, 4, 9, 16, 25]; var over18 = numbers.filter(myFunction); function myFunction(value) {   return value > 18; }

詳細はこちらJS 配列反復メソッド


Array reduce()

この例では、配列内のすべての数値の合計を見つけます。

var numbers1 = [45, 4, 9, 16, 25]; var sum = numbers1.reduce(myFunction); function myFunction(total, value) {   return total + value; }

詳細はこちらJS 配列反復メソッド


Array reduceRight()

この例では、配列内のすべての数値の合計も求めています。

var numbers1 = [45, 4, 9, 16, 25]; var sum = numbers1.reduceRight(myFunction); function myFunction(total, value) {   return total + value; }

詳細はこちらJS 配列反復メソッド


Array every()

この例では、すべての値が18を超えているかどうかを確認します。

var numbers = [45, 4, 9, 16, 25]; var allOver18 = numbers.every(myFunction); function myFunction(value) {   return value > 18; }

詳細はこちらJS 配列反復メソッド


Array some()

この例では、一部の値が18を超えているかどうかを確認します。

var numbers = [45, 4, 9, 16, 25]; var allOver18 = numbers.some(myFunction); function myFunction(value) {   return value > 18; }

詳細はこちらJS 配列反復メソッド


Array indexOf()

要素値の配列を検索し、その位置を返します。

var fruits = ["Banana", "Orange", "Apple", "Mango"]; var a = fruits.indexOf("Apple");

詳細はこちらJS 配列反復メソッド


Array lastIndexOf()

lastIndexOf()indexOf()は同じです、しかし配列の最後から検索します。

var fruits = ["Banana", "Orange", "Apple", "Mango"]; var a = fruits.lastIndexOf("Apple");

詳細はこちらJS 配列反復メソッド


JSON.parse()

JSONの一般的な用途は、Web サーバーからデータを受信することです。

Webサーバーから次のテキスト文字列を受け取ったとします。

'{"name":"John", "age":30, "city":"New York"}'

JavaScriptの関数JSON.parse()は、テキストをJavaScript オブジェクトに変換するために使用されます。

var obj = JSON.parse('{"name":"John", "age":30, "city":"New York"}');

詳しくはJSON チュートリアルを参照して下さい。


JSON.stringify()

JSONの一般的な用途は、Webサーバーにデータを送信することです。

データをWebサーバーに送信する場合、データは文字列でなければなりません。

JavaScriptに次のオブジェクトがあるとします。

var obj = {name:"John", age:30, city:"New York"};
JavaScript関数JSON.stringify()を使用し、それを文字列に変換します。
var myJSON = JSON.stringify(obj);

結果は、JSON表記に従った文字列になります。

myJSONが文字列になり、サーバーに送信する準備が整いました。

var obj = {name:"John", age:30, city:"New York"}; var myJSON = JSON.stringify(obj); document.getElementById("demo").innerHTML = myJSON;

詳しくは、JSON チュートリアルを参照して下さい。


Date.now()

Date.now()は、ゼロの日付(1970年1月1日 00:00:00 UTC)からのミリ秒数を返します。

var timInMSs = Date.now();

Date.now()は、Dateオブジェクトに対して実行されたgetTime()と同じものを返す。

詳くはこちらJS datesを参照してください。


Date toISOString()

toISOString()メソッドは、ISO標準形式を使用してDateオブジェクトを文字列に変換します。

const d = new Date(); document.getElementById("demo").innerHTML = d.toISOString();


Date toJSON()

toJSON()Dateオブジェクトを、JSON dateとしてフォーマットされた文字列に変換します。

JSON dateの形式は、ISO-8601 standardと同じです: YYYY-MM-DDTHH:mm:ss.sssZ:

d = new Date(); document.getElementById("demo").innerHTML = d.toJSON();


Property Getters and Setters

ES5では、プロパティを取得または設定するような構文でオブジェクトメソッドを定義できます。

この例では、fullName というプロパティのgetterを作成します:

// Create an object: var person = {   firstName: "John",   lastName : "Doe",   get fullName() {     return this.firstName + " " + this.lastName;   } }; // Display data from the object using a getter: document.getElementById("demo").innerHTML = person.fullName;

この例では、languageプロパティの*setter*と*getter*を作成しています:

var person = {   firstName: "John",   lastName : "Doe",   language : "NO",   get lang() {     return this.language;   },   set lang(value) {     this.language = value;   } }; // Set an object property using a setter: person.lang = "en"; // Display data from the object using a getter: document.getElementById("demo").innerHTML = person.lang;

この例では、setterを使用して言語の大文字の更新を保護します。

var person = {   firstName: "John",   lastName : "Doe",   language : "NO",   set lang(value) {     this.language = value.toUpperCase();   } }; // Set an object property using a setter: person.lang = "en"; // Display data from the object: document.getElementById("demo").innerHTML = person.language;

GetterとSetterの詳細については、JS オブジェクト アクセサーを参照して下さい。


Object.defineProperty()

Object.defineProperty()は、ES5の新しいObjectメソッドです。

オブジェクトのプロパティを定義したり、プロパティの値やメタデータを変更したりできます。

// Create an Object:
var person = {
  firstName: "John",
  lastName : "Doe",
  language : "NO",
};

// Change a Property:
Object.defineProperty(person, "language", {
value: "EN",
  writable : true,
  enumerable : true,
  configurable : true
});

// Enumerate Properties
var txt = "";
for (var x in person) {
  txt += person[x] + " ";
}
document.getElementById("demo").innerHTML = txt;

次の例は、言語プロパティを列挙から隠していることを除いて、同じコードです。

// Create an Object:
var person = {
  firstName: "John",
  lastName : "Doe",
  language : "NO",
};

// Change a Property:
Object.defineProperty(person, "language", {
value: "EN",
  writable : true,
  enumerable : false,
  configurable : true
});

// Enumerate Properties
var txt = "";
for (var x in person) {
  txt += person[x] + " ";
}
document.getElementById("demo").innerHTML = txt;

この例では、setterとgetterを作成して、言語の大文字の更新を保護します。

/// Create an Object:
var person = {
  firstName: "John",
lastName : "Doe",
  language : "NO"
};

// Change a Property:
Object.defineProperty(person, "language", {
  get : function() { return language },
  set : function(value) { language = value.toUpperCase()}
});

// Change Language
person.language = "en";

// Display Language
document.getElementById("demo").innerHTML = person.language;


E5 ObjectMethods

ES5では、JavaScriptに多くの新しいオブジェクトメソッドが追加されました。

オブジェクトの管理

// Create object with an existing object as prototype Object.create(parent, donor) // Adding or changing an object property Object.defineProperty(object, property, descriptor) // Adding or changing object properties Object.defineProperties(object, descriptors) // Accessing Properties Object.getOwnPropertyDescriptor(object, property) // Returns all properties as an array Object.getOwnPropertyNames(object) // Accessing the prototype Object.getPrototypeOf(object) // Returns enumerable properties as an array Object.keys(object)

オブジェクトの保護

// Prevents adding properties to an object Object.preventExtensions(object) // Returns true if properties can be added to an object Object.isExtensible(object) // Prevents changes of object properties (not values) Object.seal(object) // Returns true if object is sealed Object.isSealed(object) // Prevents any changes to an object Object.freeze(object) // Returns true if object is frozen Object.isFrozen(object)

詳くはこちらオブジェクト ECMAScript5を参照して下さい。


Function Bind()

bind()メソッドを使用すると、オブジェクトは別のオブジェクトからメソッドを借用できます。

この例では、2つのオブジェクト(個人とメンバー)を作成します。

memberオブジェクトはpersonオブジェクトからfullnameメソッドを借用します。

const person = {   firstName:"John",   lastName: "Doe", fullName: function () {     return this.firstName + " " + this.lastName; } } const member = {   firstName:"Hege",   lastName: "Nilsen", } let fullName = person.fullName.bind(member);

詳くはこちら関数 bind()を参照して下さい。


Trailing Commas

ES5では、オブジェクトと配列の定義で末尾のコンマを使用できます。

オブジェクトの例

person = {   firstName: "John",   lastName: "Doe",   age: 46, }

配列の例

points = [   1,   5,   10,   25,   40,   100, ];

警告 !!!

JSONは、末尾のコンマを使用できません。

JSONオブジェクト:

// Allowed: var person = '{"firstName":"John", "lastName":"Doe", "age":46}' JSON.parse(person) // Not allowed: var person = '{"firstName":"John", "lastName":"Doe", "age":46,}' JSON.parse(person)

JSON 配列:

// Allowed: points = [40, 100, 1, 5, 25, 10] // Not allowed: points = [40, 100, 1, 5, 25, 10,]


プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細