ホームページ > 記事 > ウェブフロントエンド > JavaScript に関するあまり知られていない知識ポイント
ネイティブ関数
よく使われるネイティブ関数
String()
Number()
Boolean()
Array()
Object()
Function()
Re gExp()
Date()
Error()
Symbol()
内部プロパティ[クラス]
typeofの戻り値がobjectであるすべてのオブジェクトには、内部プロパティ[クラス]が含まれます、 このプロパティには直接アクセスできません 。通常は Object.prototype.toString(..) を通じて表示されます 。例: :
Object.prototype.toString .call(null);
カプセル化されたオブジェクトラッパー
基本型の値には.lengthなどの属性がないため と
.toString( )
メソッド。 "abc" ;
var b = new String(a); var c = Object(a);
カプセル化された関数を直接使用することは一般的に推奨されません 解凍
オブジェクト内の基本型の値をカプセル化します。valueOf() 関数を使用できます。
var a = new String("abc"); " b.valueOf(); // 42 c.valueOf(); // true コンストラクタとしてのネイティブ関数 Array(. .)
var a = new Array( 1,2 ,3);
a; // [1,2,3]
// [1,2,3]
b; ,2,3]
コンストラクタArray(..)、はキーワード
newを含める必要はありません、が含まれていない場合は自動的に入力されますArrayコンストラクタがパラメータを1つだけ取る場合、パラメータは配列内の要素の場合ではなく、配列
のプリセットの長さになります。var a = new Array(3);
a.length; // 3
a;
空の cell 配列を作成して使用しないでくださいObject(..) , Function(.. ),
とRegExp(..)
絶対に必要な場合を除き、Object(..)/Function(..)/RegExp(..)を使用しないでください
Date(..)
とエラー(..)
作成時間は new Date()を使用する必要があり、は主に現在のUnixタイムスタンプDate.new()を取得し、日付オブジェクトのgetTime()を通して取得するために使用されます。 。 エラーオブジェクト(error object)を作成します 主に現在実行中のコンテキストを取得します。 シンボル(..) 基本データ型——シンボル。シンボルには固有の特別な値があり、属性 に名前を付けるために使用しても、名前が簡単に重複することはありません。 Symbolの静的属性形式, Symbol.create, Symbol.iterator obj[Sybol.iterator] = function() {/*..*/} Symbol(..)を使用ネイティブ コンストラクターはシンボルのカスタマイズに使用され、新しい キーワードを含めることはできません。それ以外の場合はエラーが報告されます。 var mysym = Symbol("自分のシンボル"); mysym; // シンボル(自分のシンボル) mysym.toString(); typeof mysym; // "シンボル" プロトタイプの種類 文字列内の指定された値を見つける 文字列の位置。 String#charAt(..) 文字列内の指定した位置の文字を取得します 、 String#slice(. .) 文字列の指定部分を取得 andString#toLowerCase() 文字列を大文字と小文字に変換します String#トリム() 文字列の前後のスペースを削除し、新しい文字列を返します キャスト ‖ある型から別の型への変換、これは Case で示されています JavaScriptにおける型変換は常にスカラー基本型を返します。抽象値操作 メソッドはすべてを含むように再定義されました。 ユニットが文字列化された後、それらは一緒に接続されます。 var a = [1,2,3]; JSON文字列置換, ; JSON.stringify(..) オブジェクト内で未定義、関数、シンボルに遭遇した場合、自動的に無視され、配列内ではnullを返します。 JSON.stringify(function(){}); in in through in in Instant on [1,unknown,function( ){},4] は、任意の型の適切な値 を返し、 alignment によって文字列化されます。 数学的な演算など、数値以外の値を数値として使用する必要がある場合があります。 true は 1 に変換され、false は0に変換され、未定義のはNaNに変換されます nullを変換から0まで対応する基本型の場合、抽象操作 は、まず値 に valueOf() メソッドがあるかどうかを確認し、ある場合はその値を強制的な型変換に使用します。そうでない場合は、 toString()の戻り値を使用して、強制的な型変換を実行します。 valueOf() も toString() も値 を返さない場合、TypeError エラーが発生します。 ToBoolean False value: 値は以下の2つに分類できます。 はfalse の値にキャストできます。 )の値 未定義nullfalse+0,-0とNaN "" by ブラウザ 特定の状況下では、通常の 構文に基づいて、 はいくつかの外部を作成します値、これらは false value オブジェクト" です。 int は によって作成されます var a = 42; var c = "3.14"; var d = Number(c);b; // "42" 文字列と数値の間の表示変換を実現する他の方法もあります 日付表示を変換します数値への変換 別の単項演算子 一般的な使用法は、日付オブジェクト (Date) オブジェクトを 数値にキャストすることです。 var timestamp = +new Date(); 数値文字列の明示的な解析 文字列内の数値を解析し、文字列を数値にキャストした場合の戻り結果はすべて数値です。 例: Number(a) // 42 parseInt(b); // 42 parseInt(..) parseInt(..) のような文字列を対象としています 数値や他の種類のパラメータを渡すのは無意味です Booleanへの表示変換 I明示的です ToBoolean キャスト: var b = [];var c = {}; var e = 0; var g;Boolean(a); // true var a = "0"; var b = []; var c = {}; var d = ""; var e = 0; var f = null; var g; !!a; // true !!b; // true !!d; ; // false!!f; // false !!g // false 文字列と数値間の暗黙的なキャスト +演算子は数値の加算と文字列の連結の両方に使用できます。 var a = "42"; var b = "0"; var c= 42; var d = 0; a + b; // "42" c + d; // 42 オブジェクトの - 演算は + var a = [3] 暗黙的キャストからブール値への数値へのキャスト 暗黙的キャストからブール値へのキャスト 以下の場合に暗黙的キャストが発生します ステートメント内の条件式。 ステートメント内の条件判断式( 2番目)3.while(..) anddo.. while(..) ループ内の条件判定式。 4.? : 論理演算子|| ( 論理OR) と(論理AND) 左側のオペランド(条件判定として)式) || と && || と && 演算子の戻り値は、2 つのオペランドのいずれかの値です var a = 42;var b = "abc"; a || 42 a && b; b; // "abc" c&& b; // null の場合、条件判定結果が の場合、最初の数値が返されます は 2 番目のオペランドを返します。 &&はその逆です。 以下は || 非常に一般的な の使用法です。 function foo(a,b){ b = b || "ワールド";console.log(a + " " + b );} シンボルの強制型変換 緩和等価性と厳密等価性 == は等価比較でのキャストを許可しますが、=== は許可しません” ulousint() 注 は NaN +0 と等しくありません-0 と等しい 大まかに等しくない != は ==の逆、!==はと同じ 理由 文字列間の等価比較と数値 Type(x) が数値であり、Type(y)が文字列の場合、x== ToNumber (y) を返します の結果。 Type(x) Type(y) が数値の場合、ToNumber(x)== y の結果を返します。 var a = "42"; a == b; // false Type(x) がブール型の場合、ToNumber(x) == yの結果 If Type(y) はブール型で、 x == ToNumber(y) の結果を返します 最初: var x = true; x == y; // falsevar x = "42";var y = false;x == y ; // falseの等価比較 未定義 == と 未定義 の間 1. x が null、y が 未定義、の場合、結果は true 2.x が未定義、y がnull、の場合、結果はtrue ( function array)とスカラープリミティブ型(string)について比較してみます。 /数値/の比較ブール値)の間。 1.Type(x) が文字列または数値、type(y)がオブジェクトの場合、 は x == ToPrimitive(y) の結果を返します 2.Type(x)がオブジェクトで、Type(y)が文字列または数値の場合、 ToPromitive(x) == y の結果を返します。 var a = 42;var b = [42];a == b; // true var a = "abc";var b = Object(a); new String(a) a === b; // false a == b; // true a == b は を介してキャストを実行し、a に等しいプリミティブ値 "abc" を返します。 等しい false 値の比較は日常的であり、型破りな比較です "0" == null; // false "0 " == false; // true -- めまいがする! "0" == NaN; // false"0" == ""; // false ; // false false == 0; // true -- ハロー! false == "" // true -- めまい! false == [] // true -- めまい! false == {} // false "" == null; // false "" == NaN; == 0; // true -- "" == []; // true -- めまい! "" == {}; // false 0 == 未定義; // false 0 == NaN; []; 本当 -- 0 == {}; false [] == ![] // true [] == ![] は 2 == [2] "" == [null]; //true42 == "43" // false 暗黙的なキャストの安全な使用 false が含まれます。 ==.2. 両側の値に []、"" が含まれる場合、 または 、==は使用しないようにしてください。現時点では、強制的な型変換を避けるために === を使用するのが最善です。 抽象関係比較 var a = ["42"];var b = ["043"]; a < // false a は文字列を返し、 は "42 " と " 043" を比較します。 "0" はアルファベット順で "4" より小さいため、最終結果は false になります。 var a = [4,2]; var b = [0,4,3]; var a = {b:42}; var b = {b:43}; a < // false a は [オブジェクト Object]、b も [object Object] つまり、アルファベット順では a < b は成り立ちません。 var a = {b:42}; a < b; // false a > ; b; // false
以上がJavaScript に関するあまり知られていない知識ポイントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。