続き記事フロントエンド学習JavaScriptのシンタックス(2)[道路の]主にJavaScriptオブジェクトをコンセプトに、。
ディレクトリ
オブジェクト
JavaScriptは、基本データ型、未定義のヌルに加えて、他のすべてのものがオブジェクトである、データ・オブジェクトの最も重要なタイプです。
オブジェクトプロパティは、(プロパティ)
JavaScriptオブジェクトのプロパティの順不同のコレクションです、各プロパティは、オブジェクトや関数、プリミティブデータ型することができ
、JavaScriptのオブジェクトは動的に属性を追加または削除することができ
、オブジェクトのプロトタイプ(試作品)を:すべてのJavaScriptはプロトタイプから継承するプロパティをオブジェクトと方法。
Date.prototypeからDateオブジェクトを継承。Array.prototypeをArrayオブジェクト継承。PersonオブジェクトはPerson.prototypeを継承しています。
トッププロトタイプ継承チェーンに位置のObject.prototype:日付オブジェクト、アレイおよびPersonオブジェクトをオブジェクトがのObject.prototypeから継承されています。
ここで私はこれとJavaまたはC ++のクラスとオブジェクトは非常に類似しているため、例えば、オブジェクトは、オブジェクトのコンストラクタで、コンストラクタは「クラス」と呼ばれるオブジェクトを使用し、私はまた、クラスに基づいて、オブジェクトのクラスと呼ばれて(新しいアウト)の例としては、例えば、オブジェクトと呼ばれるvar obj=new Object();
オブジェクトOBJのために、中央。
私たちは、動的に追加または削除オブジェクトのプロパティを、のようなことができvar obj=new Object();
、その後obj.userName="Carson"
、しかし、あなたが直接することはできません类名.userName="Carson"
クラスに新しいプロパティを追加します。あなたが本当にクラスに新しい属性を追加する必要がある場合は、その必要があるオブジェクトのプロトタイプを新しい属性を追加し、例えば、そうすることができます类名.prototype.userName="Carson";
ので、このクラスのすべてのオブジェクトは、userNameに、このプロパティを持っていることを、私たちは一例に、次の例を使用することができます。
<!DOCTYPE html>
<html>
<head>
<title>Object对象</title>
</head>
<body>
<script type="text/javascript">
var obj=new Object();
obj.userName="Carson";
obj.getUserName=function(){
return this.userName;
};
document.write("<h1>姓名:"+obj.getUserName()+"</h1>"); //输出"姓名:Carson"
//使用对象原型prototype为对象构造器添加新的属性
Object.university="Hohai";
document.write("<h1>"+obj.university+"</h1>"); //输出undefined
Object.prototype.university="Hohai";
document.write("<h1>"+obj.university+"</h1>"); //输出Hohai
</script>
</body>
</html>
ブラウザはJavaScriptオブジェクトの分類をサポートしています
- ECMAScriptのは、組み込みオブジェクト(文字列、数値、ブール、数学、日付、配列、正規表現、グローバル)
- ドキュメントオブジェクトモデル(DOM)
- ブラウザのオブジェクトモデル(BOM)
- 新しいユーザー定義のオブジェクトは
、この記事ではECMAScriptは組み込みオブジェクトについて話しています。
オブジェクトのオブジェクト(ルートオブジェクト)
JavaScriptは、直接的または間接的に他のオブジェクトに表示されるすべてのプロパティとObjectオブジェクトのメソッドを継承したオブジェクトのプロトタイプオブジェクトへのオブジェクト。
重要な特性:
コンストラクタ:コンストラクタ関数の
プロトタイプ:プロトタイプ
の重要な方法:
のtoString():出力フォーマット
toSouce():ソースオブジェクト
のvalueOf():の基本的なタイプに対応するオブジェクトの値
オブジェクトプロパティ使用中のために文を列挙:オブジェクトの例
<!DOCTYPE html>
<html>
<head>
<title>for in 枚举对象属性</title>
</head>
<body>
<script type="text/javascript">
var obj=new Object();
obj.userName="lhy";
obj.getUserName=function(){
return this.userName;
};
obj.userSex="male";
for(var prop in obj){
document.write("<h1>"+prop+"="+obj[prop]+"</h1>");
}
</script>
</body>
</html>
結果:
Dateオブジェクトのデータ:日付と時刻に使用されます
JavaScriptが組み込まれているオブジェクト:配列、ブール、日付、数学 、数値、文字列、正規表現、グローバル・8、Dateオブジェクトは、組み込みオブジェクトに属します。
Dateオブジェクトは、この時間内に対象方法によって得られる、新しいキーワードを使用して定義されます。
たとえばます。varいるMyDateは、新しいDate()= ;
一般的に用いられている方法を:
GETシリーズ:
getYearメソッド():戻り値の年の数
getMonth():戻り値の月数の数
のgetDate():戻り値の日の数
getDay()戻り値:週の日
次に、getHours():リターンは時間の数
getMintes(:リターン分の数
getSeconds():リターン秒数
getTime():戻りミリ秒数
一連の設定:
setYear(値);で設定
SETDATE(値):セット数月数の
setMonth(値):セットの月数の
setHours(値):設定時間の
setMintes(値):分の数を設定
秒数の設定:setSeconds(値)
のsetTime(値):ミリ秒数を設定します
正規表現オブジェクトRegExpオブジェクト
正規表現(正規表現)は、オブジェクトの文字モードの説明である、(などのJava、Pythonの、など)多くの言語で正規表現があります。
正規表現は、主に、クライアントの入力データを検証するために使用されます。あなたがクライアント認証を使用している場合は、サーバー側で多くのシステムリソースを節約し、より優れたユーザーエクスペリエンスを提供することができます。
JSの正規表現を作成する方法
正規表現に二つの方法を作成する方法があります。一方が他方を採用リテラルの方法で、new演算子を使用することです。
例:
VAR =新しい新REG正規表現(「ボックス」); //最初の引数文字列
のvar REG =新しい正規表現(「箱 」、「IG」); // 文字列の最初のパラメータ、二番目のパラメータモード修飾子(オプション)
上記の2つの例は、と等価である:
VAR = REG /ボックス/; //直接2つのスラッシュと
するvar REG = /ボックス/ Igが; // 第スラッシュの後に変更加算モード文字
モード修飾子次のように:
修飾子 | 効果 |
---|---|
私 | 大文字と小文字を区別しないマッチングを行います |
グラム | グローバルマッチ(むしろ最初の一致よりも、このプロセスのすべての一致を見つける)、照合結果の配列を返すを実行します |
メートル | (改行を含む文字列を、プログレッシブストリングマッチングブランチに応じて、全体ではなく、文字列に応じて行われている場合)複数行のマッチを行います |
正規表現のフォーマット
角括弧:範囲内の単一の文字を見つけるために使用
表現 | 説明 |
---|---|
[ABC] | カッコ内の任意の文字を探します |
[^ ABC] | 括弧の間にない任意の文字を探します |
[0-9] | 0-9数字の間から何かを探します |
[AZ] | Zまでの小文字、Aから任意の文字を探します |
[AZ] | 資本のZまでの大文字Aから任意の文字を探します |
[AZ] | 小文字のzへの大文字のAから任意の文字を検索し、 |
[adpk] | (最初と同じ)の与えられたセット内の任意の文字を検索するには |
[^ adpk] | (第2と同じ)セット以外の誰にも与えられた文字を探します |
(赤|青|緑) | 指定されたいずれかのオプションを探します |
元の文字:文字は特別な意味を持っています
メタキャラクタ | 説明 |
---|---|
。 | 改行と行末を除き、単一の文字を探します |
\ワット | 単語文字を探します |
\ W | 非単語文字を探します |
\ dは | デジタルを探します |
\ D | 数字以外の文字を見つけます |
\ sの | 查找空白字符 |
\S | 查找非空白字符 |
\b | 匹配单词边界 |
\B | 匹配非单词边界 |
\0 | 查找NULL字符 |
\n | 查找换行符 |
\f | 查找换页符 |
\r | 查找回车符 |
\t | 查找制表符 |
\v | 查找垂直制表符 |
\xxx | 查找以八进制xxx规定的字符 |
\xdd | 查找以十六进制数dd规定的字符 |
\uxxxx | 查找以十六进制数xxxx规定的Unicode字符 |
量词:类似通配符的作用,用来描述数量
量词 | 描述 |
---|---|
n+ | 匹配任何包含至少一个n的字符串 |
n* | 匹配任何包含0个或者多个n的字符串 |
n? | 匹配任何包含另个或者一个n的字符串 |
n{X} | 匹配包含X个n的序列的字符串 |
n{X,Y} | 匹配包含X至Y个n的序列字符串 |
n{X,} | 匹配包含至少X个n的序列的字符串 |
n$ | 匹配任何结尾为n的字符串 |
^n | 匹配任何开头为n的字符串 |
?=n | 匹配任何其后紧接指定字符串n的字符串 |
?!n | 匹配任何其后没有紧接指定字符串n的字符串 |
RegExp对象函数
test(str):在字符串中查找是否存在指定的正则表达式并返回布尔值,如果存在则返回true,不存在则返回false
exec(str):在字符串中查找指定正则表达式,如果方法执行成功,则返回包含该查找字符串的相关数组;如果执行失败,则返回null。而且在使用exec的时候,正则表达式中不能使用模式修饰符(igm三个),否则会返回null,所以不建议使用。
字符串使用正则表达式的方法
除了RegExp 对象,String 对象也提供了4 个使用正则表达式的方法。
方法 | 含义 |
---|---|
match(pattern) | 返回pattern中的子串或null |
replace(pattern,replacement) | 用replacement替换和pattern匹配的部分 |
search(pattern) | 返回字符串中pattern开始位置 |
split(pattern) | 返回字符串按指定pattern拆分的数组 |
例子(查找字符串中所有有效数字):
<script type="text/javascript">
var str="3124hb 534 42h 0041131ll";
var reg=/[1-9][0-9]*/g;
var numbers=str.match(reg);
//逐个输出数组元素
for(var index in numbers){
document.writeln("<h1>"+numbers[index]+"</h1>");
}
//格式化输出数组
document.writeln("<h1>"+numbers.join(" ")+"</h1>");
</script>
输出结果: