ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript 中級ノート 第 2 章_JavaScript スキル

JavaScript 中級ノート 第 2 章_JavaScript スキル

WBOY
WBOYオリジナル
2016-05-16 18:46:35945ブラウズ
1、リファレンス
リファレンスは、オブジェクトの実際の位置へのポインタです。次の引用符の使用例を見てください:

[Ctrl A すべて選択 注: 外部 Js を導入する必要がある場合は、更新して実行する必要があります
]

この例では、2 つのオブジェクトはすべて同じオブジェクトを指します。1 つのオブジェクトの属性内容が変更されると、他のオブジェクトにも影響します。
今回は配列を使用して参照を説明します。

[Ctrl A すべて選択 注:
外部 Js を導入する必要がある場合は、更新して実行する必要があります
]
場合arr が再定義されると、次のコードに示すように、参照は同じオブジェクトではなくなります:
[Ctrl A すべて選択 注:
外部 Js を導入する必要がある場合は、更新して実行する必要があります
]


[Ctrl A すべて選択 注:
外部 Js を導入する必要がある場合は、更新して実行する必要があります
]
この例に示すように、文字列操作を実行すると、結果は文字列の変更されたバージョンではなく、常に新しい文字列オブジェクトになります。 『Advanced JavaScript Programming』という本を読んだことがあるかどうかはわかりませんが、値渡しとアドレス渡しに関するセクションがあります。興味があれば、行って見ることができます。
JavaScript は、他のオブジェクトへの一連の参照を維持する言語であり、参照を通じてプログラムに大きな柔軟性をもたらします。

2. 関数のオーバーロード

関数のオーバーロードの特徴は、渡されるパラメーターの数や種類に応じて、異なる機能を発揮するように関数をオーバーロードすることです。 1 つは受信パラメータの数を決定すること、もう 1 つは受信パラメータのタイプを決定することです。
2-1、渡されるパラメータの数を決定します引数を通じて、この疑似配列を取得できます。以下に示すように:


[Ctrl A すべて選択 注:
外部 Js を導入する必要がある場合は、
引数を実行するために更新する必要がありますこれは非常に便利なものです。任意の数の引数を配列に変換する以下の関数を見てください。
[Ctrl A すべて選択 注: 外部 Js を導入する必要がある場合は、 を実行するために更新する必要があります]
2-2,判断传入参数的类型
第一种判断类型的方式:
判断类型需要用到JavaScript中另一个操作符——typeof。 它用来表达变量内容的类型,返回的是字符串。比如如果一个变量是字符串,那么typeof后,则返回( "string" )。
经常我们会用到如下判断:
复制代码 代码如下:

if( typeof num == "string" ){
num = parseInt( num );//如果是一个字符串,则把字符串解析出整数
}
if( typeof arr== "string" ){
arr= arr.split(",");//如果是一个字符串,则根据逗号来分割成数组
}

例如把前面的makeArr()函数改成只能接受字符串类型的参数,代码如下:

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

最终结果 a.length 为2,因为后面2个参数是number 类型。
第二种判断类型的方式:
此方法需要引用所有JavaScript对象都带有的一个属性,构造函数——constructor。这一属性引用的是原本用来构造该对象的那个函数。
复制代码 代码如下:

if( num.constructor == String ){
num = parseInt( num );//如果是一个字符串,则把字符串解析出整数
}
if( arr.constructor == String ){
arr= arr.split(",");//如果是一个字符串,则根据逗号来分割成数组
}
if( newArr.constructor == Array ){
newArr = newArr.join(",");//如果是一个数组,则根据逗号来组成字符串
}

执行constructor后的结果是一个对象,而执行typeof后的结果是一个字符串。看下表的对比:
变量 typeof 变量 变量.constructor
{a:"b"} "object" Object
["a","b"] "object" Array
function(){} "function" Function
"a" "string" String
66 "number" Number
true "boolean" Boolean
new User() "object" User
 
    通过对传入参数的数量和类型的判断,那么函数重载也就简单了。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。