JavaScript引用タイプ——単体内蔵オブジェクト

5769 ワード

単体内蔵オブジェクト
ECMA-622の内蔵オブジェクトの定義は、ECMAScriptが提供され、宿主環境に依存しないオブジェクトがあり、これらのオブジェクトはECMAScriptプログラムが実行される前から存在しています.表示する必要はないが、内蔵オブジェクトはすでに実装されているので、ECMA-262で定義されている2つの単体内蔵オブジェクト:GlobalとMath.
1.Globalオブジェクト
Global(グローバル)オブジェクトは、他のオブジェクトの属性と方法ではなく、最終的にはその属性と方法です.グローバルスコープで定義されている属性と関数は全てGlobalオブジェクトの属性です.isNaN()、ifFinite()、parseInt()とパーパーパーファーストファースト()は全部Globalオブジェクトの方法で、Globalオブジェクトは他のいくつかの方法を含んでいます.
  • .URI符号化方法GlobalオブジェクトのencodeURI()とencodeURIcomponent()方法は、ブラウザに送信するためにURI(汎用リソース識別子)を符号化することができる.
  •   var uri = "https://www.baidu.com/illegal value.htm#start";
            //https://www.baidu.com/illegal%20value.htm#start
            alert(encodeURI(uri));
            //https%3A%2F%2Fwww.baidu.com%2Fillegal%20value.htm%23start
            alert(encodeURIComponent(uri));
    
    これに対応しているのはデコデコデコルテとデコデコルデコルミポーネントです.
         var uri = "https%3A%2F%2Fwww.baidu.com%2Fillegal%20value.htm%23start";
            //https%3A%2F%2Fwww.baidu.com%2Fillegal value.htm%23start
            alert(decodeURI(uri));
            //https://www.baidu.com/illegal value.htm#start
            alert(decodeURIComponent(uri));
    
  • .eval()メソッドECMAScript言語の中で最も強い方法eval().eval()メソッドは完全なECMAScript解析器のように、一つのパラメータ、すなわち実行するECMAScript(またはJavaScript)文字列しか受け入れられません.
  • eval("alert('hi')");
    
    に等しい
    alert('hi');
    
    解析器がコード内でeval()メソッドを呼び出すと、実際のECMAScript文を解析して実行結果を元の位置に挿入します.eval()によって実行されるコードは、このコールを含む実行環境の一部と考えられるので、実行されるコードは、その実行環境と同じ作用領域チェーンを有する.eval()が実行するコードは、環境内で定義された変数を含むものを参照することができます.
    var msg = "hello world";
    eval("alert(msg)"); //"hello world"
    
    eval("function sayHi() {alert('hi');}");
    sayHi(); //"hi"
    
    関数sayHi()はeval()の内部で定義されています.しかし、eval()への呼び出しは最終的に関数を定義する実際のコードに置き換えられます.
    eval("var msg = 'hello world';");
    alert('msg'); //"hello world"
    
    eval()で作成された任意の変数や関数は、解析コードの場合は、文字列に含まれています.それらはeval()が実行する時だけ作成します.厳密モードでは、外部からのアクセスがeval()で作成された変数や関数のいずれにもならないため、前の2つの例がエラーを引き起こします.厳格なモードでは、evalのために値を付与すると、エラーが発生します.
    "use strict";
    eval = "hi"; //causes error
    
  • .Globalオブジェクトの属性
  • undefined:特殊値undefined
  • NaN:特殊値NaN
  • Infinity:特殊値Infinity
  • Object:構造関数Object
  • Aray:構造関数Aray
  • Function:構造関数Function
  • Boolean:構造関数Boolean
  • String:構造関数Sring
  • Number:構造関数Number
  • Date:構造関数Date
  • RegExp:構造関数RegExp
  • Err:構造関数Errer
  • EveralErrer:構造関数EveralErrer
  • RangeError:構造関数RangeErr
  • ReferenceErrer:構造関数ReferenceErr
  • SyntxError:構造関数SyntxErrer
  • Type Errer:構造関数TypeErrer
  • URIError:構造関数URIError
  • ECMAScript 5はundefined、NaN、Infinityへの割り当てを明確に禁止しています.このようにすると非厳格モードでもエラーが発生します.
  • .windowオブジェクトECMAScriptはGlobalオブジェクトに直接アクセスする方法を指摘していませんが、Webブラウザはこのグローバルオブジェクトをwindowオブジェクトの一部として実現しています.したがって、グローバルスコープで宣言されたすべての変数と関数は、windowオブジェクトの属性となります.
  • var color = "red";
    function sayColor() {
        alert(window.color);
    }
    window.sayColor(); //"red"
    
    もう一つはGlobalオブジェクトを取得する方法です.
    var global = function () {
        return this;
    }();
    
    以上のコードは、即時に呼び出された関数式を作成し、this値を返します.関数にthis値を指定していない場合、this値はGlobalオブジェクトに等しいです.
    2.Mathオブジェクト
  • 1.Mathオブジェクトの属性
  • Math.E:自然対数の底数、すなわち定数eの値
  • Math.LN 10:10の自然対数
  • Math.LN 2:2の自然対数
  • Math.LOG 2 E:2を底にeの対数
  • Math.LOG 10 E:10を底にeの対数
  • Math.PI:πの値
  • Math.SQRT 1_2:1/2の平方根(2の平方根の逆数)
  • Math.SQRT 2:2の平方根
  • .min()とmax()方法
  • min()とmax()の方法は、値のセットの中の最小値と最大値を決定するために使用される.これらの二つの方法はいずれも任意の複数の数値パラメータを受信することができる.
    var max = Math.max(3,43,12,123);
    alert(max); //123
    
    var min =Math.min(1,31,12,3);
    alert(min); //1
    
    配列内の最大値または最小値を見つけるには、appy()メソッドが使用できます.
    var values = [1, 2, 3, 4, 5, 6, 7, 8];
    var max = Math.max.apply(Math, values);
    
    ポイントは、Mathオブジェクトをapply()の最初のパラメータとして正しく設定することです.次に、2番目のパラメータとして配列することができます.
  • .丸め方法は、小さい数値を整数に丸めるいくつかの方法:Math.ceir()、Math.flor、Math.round()です.
  • Math.ceeir()は、常に数値を上に丸めて、最も近い整数に切り上げる切り込みを実行する.(大)
  • Math.florは、常に数値を最も近い整数に切り下げる切り下げを行います.(小)
  • Math.round()は、常に数値を四捨五入して最も近い整数にする標準的な丸めを実行する.
  • alert(Math.ceil(25.9));//26
    alert(Math.ceil(25.5));//26
    alert(Math.ceil(25.1));//26
    
    alert(Math.floor(25.9));//25
    alert(Math.floor(25.5));//25
    alert(Math.floor(25.1));//25
    
    alert(Math.round(25.9));//26
    alert(Math.round(25.5));//25
    alert(Math.round(25.1));//25
    
  • 4.random()方法Math.random()方法は、0よりも1未満の乱数を返す.次の数式を使うと、Math.random()がある整数範囲からランダムに値を選択できます.
  •   = Math.floor(Math.random()*       +        )
    
    var num = Math.floor(Math.random()*10+1); //1~10
    
    function selectFrom(lowerValue,upperValue) {
        var choices = upperValue - lowerValue + 1;
        return Math.floor(Math.random()*choices + lowerValue);
    }
    var num = selectFrom(2,10);
    alert(num); //2~10(  2 10)
    
    var colors = ["red", "green", "blue", "yellow", "black", "purple", "brown"];
    var color = colors[selectFrom(0,colors.lengh-1)];
    alert(color); //                
    
  • .その他の方法
  • Math.abs(num):numに戻る絶対値
  • Math.exp(num):Math.Eに戻すnum乗べ
  • Math.log(num):numに戻る自然対数
  • Math.pow(num,power):numに戻るパワー乗数
  • Math.sqrt(num):numの平方根に戻る
  • Math.acos(x):xの逆コサイン値
  • を返します.
  • Math.asin(x):x逆正弦波値
  • を返します.
  • Math.athan(x):xの逆切削値
  • を返す.
  • Math.ath 2(y,x):y/xの逆切削値
  • を返します.
  • Math.com(x):xを返すコサイン値
  • Math.sin(x):xを返す正弦波値
  • Math.tan(x):xの正接値
  • を返す.