弦
定義された文字列
単一または二重引用符で囲む一緒に文字のゼロ行以上の文字列が、あります。内部の単一引用符で囲まれた文字列は、二重引用符を使用することができます。内部の二重引用符で囲まれた文字列は、単一引用符を使用することができます。
単一引用符内の文字列に、単一引用符を使用し、脱出のための単一引用符の内部にエスケープする必要があります。二重引用符内部文字列を二重引用符、同様。
単一の行を書くことができ、デフォルトの文字列は、複数行がスローされます。文字列の長さが複数の行に分割する必要がある場合、各行のバックスラッシュの最後に使用されてもよいです。
連結演算子(+)は、行の文字列を複数接続することができるとき、文字列が長く書かれた複数の行に分割され、出力は、単一の線です。あなたは出力複数行の文字列にしたい場合は、複数行のコメントを使用して回避策があります。
エスケープ
バックスラッシュ(\)、いくつかの特殊文字を表すために使用される文字列で特別な意味を持っている、それはまた、エスケープ文字として知られています。
特別なニーズを持つバックスラッシュ文字、以下の主にものを。
\ 0:ゼロ(\ U0000)
\ B:バックキー(\ u0008)
\ F:フィード文字(\ u000C)
\ N:改行(\ u000A)
\ R:キーを入力します(\ u000D)
\ T:タブ(\ u0009)
\ V:垂直タブ(\ u000B)
\「:シングルクオート(\ u0027)
\「:二重引用符(\ u0022)
\\:バックスラッシュ(\ u005C)
そして、文字列の配列
文字列が配列されるように、アレイは、ブラケット演算子、位置に戻る文字(位置番号は0から始まる)を使用することができます。
ここで、p = 'こんにちは';
S [0] // "H"
括弧内の文字列の長さ、または数平方括弧内の数字でない場合、それは未定義返します。
'ABC' [3] //未定義
しかし、文字列と配列の何よりもの類似性。実際には、文字列内の単一の文字を変更することはできません。
lengthプロパティ
プロパティは、文字列の長さの長さを返し、プロパティが変更されません。しかし、エラーなし
オブジェクト
アウトライン
簡単に説明すると、オブジェクトは、「鍵ペア」セット(キー値)の集合であり、疾患の複合データ・セットです。
VAR OBJ = {
FOO「こんにちは」
バー:「世界
}。
「こんにちは」、FOOは、(メンバ名)「キー名」、文字列こんにちは「キーである:オブジェクトを定義するブレース、内部オブジェクトは、2つのキーと値のペアが含まれ、最初のキーと値のペアは、FOOであります値「(メンバの値)。コロンのキー名とキーで区切られています。2つのキーの間のカンマで区切られています。キー名が数値の場合は、自動的に文字列に変換されます。条件はキー名の識別に名前(最初の文字が数字である、またはスペースまたはオペレータが含まれているなど)、およびない数を満たしていない場合、それはそれ以外の場合はエラーになり、引用符で囲む必要があります。条件は、識別名は引用符で囲む必要があります満たされていません。また、「プロパティ」(プロパティ)として知られている各キーの被験者は、その「鍵」は、任意のデータ・タイプとすることができます。プロパティの値が関数であれば、それは関数として呼び出すことができるよう、このプロパティは通常、「メソッド」と呼ばれています。
VAR OBJ = {
P:関数(X){
リターン2 * X;
}
}。
obj.p(1)// 2
オブジェクトのプロパティコンマによって分離され、プロパティが追加されないことがあり、最後にコンマ(末尾のカンマ)後に添加することができます。プロパティを動的に作成することができる場所、ときにオブジェクトの宣言を指定する必要はありません。
参照されるオブジェクト
別の変数名が同じオブジェクトを指している場合、それらは、同じメモリアドレスをポイントするオブジェクトを参照されています。変数を変更し、それが他のすべての変数に影響を与えます。
ここで、O1 = {};
= O1 O2ました。
o1.a = 1。
o2.a // 1
o2.b = 2。
o1.b // 2
いずれかのプロパティは、変数、プロパティを読み書きすることができ、他の変数を追加すると、コード、O1とO2は、同じオブジェクトです。
あなたが参照に一つの変数をキャンセルした場合、元のオブジェクトは、他の変数には影響を与えません。
ここで、O1 = {};
= O1 O2ました。
O1 = 1。
O2 // {}
上記のコード、O1及びO2が同じオブジェクトであり、その値は1となるO1、O2、元のオブジェクトへの時間に影響しない、またはO2そのポイント。
変数は、値の元の2つのタイプを指している場合しかし、この参照は、オブジェクトに制限されます。さて、その後、変数の値のすべてのコピー。
VAR X = 1。
ここで、y = X。
X = 2。
そして// 1
上記コードは、xの値が変化し、同一のメモリアドレスにxとyはない点を表し、yの同じ値。
操作属性
読むの属性
オブジェクトのプロパティを読み取り、2つの方法があり、一つは角括弧演算子があり、ドット演算子を使用することです。
VAR OBJ = {
P:「こんにちは世界
}。
obj.p // "Hello World" の
OBJ [ 'P'] // "Hello World" の
あなたは角括弧演算子を使用する場合は、キー名は、引用符の内側に配置されている必要があり、それ以外の場合は、変数として扱われます。
var fooが= 'バー';
VAR OBJ = {
FOO:1、
バー:2
}。
obj.foo // 1
OBJ [FOO] // 2
自動的に文字列に変換されるように、数字キーは、引用符でないかもしれません。数字キーが、ドット演算子(小数点として扱われるように)のみブラケット演算子を使用していません。
プロパティの割り当て
ドット演算子とブラケット演算子は、だけでなく、使用することもできる値の割り当てを読み取るために使用することができます。
VAR OBJ = {};
obj.foo = 'こんにちは';
OBJ [ 'バー'] = '世界';
上記のコードでは、それぞれ、ドット演算子とブラケット演算子、属性割り当てを使用。
JavaScriptを「遅延バインディング」プロパティは、と言うことですつまり、あなたがいつでも属性を追加することができたり、時間内にオブジェクトを定義する必要は、十分な特性を定義されていません。
Viewプロパティ
オブジェクト自体のすべてのプロパティを表示し、あなたがObject.keysメソッドを使用することができます。
VAR OBJ = {
KEY1:1、
KEY2:2
}。
Object.keys(OBJ)。
// [ 'キー1'、 'KEY2']
削除属性:削除コマンド
deleteコマンドは正常に削除した後、オブジェクトのプロパティがtrueを返す削除します。除去した後、続きを読む場合は、Pプロパティが未定義に戻り、戻り値は、もはやObject.keys方法は属性を備えていないです。
存在しないプロパティを削除すると、エラーを削除しないことに注意してください、とtrueを返します。上記のコードでは、オブジェクトobjは、pプロパティではありませんが、まだ本当deleteコマンドを返します。そのため、コマンドを削除することはできません結果は、プロパティがありました。一つだけの場合、削除コマンドの戻り偽、およびそのプロパティが存在しており、削除することはできません。deleteコマンドのみオブジェクト自体のプロパティを削除することができ、そのノートは継承されたプロパティを削除することはできません
プロパティが存在します。オペレーターに
オペレータにそれが真のリターンが含まれている場合は、オブジェクトが、そうでない場合はfalse、(ノートキー、キーないことを確認する)プロパティが含まれているかどうかをチェックするために使用されます。これの左、右がオブジェクトで、属性名を表す文字列です。しかし、それは、プロパティが継承され、オブジェクト自体である属性を識別することはできません
このケースでは、オブジェクト自身のプロパティかどうか、どのようなhasOwnPropertyをを決定するために、オブジェクトのメソッドを使用することができます。
VAR OBJ = {};
もし(OBJで 'のtoString'){
console.log(obj.hasOwnProperty( 'のtoString'))//偽
}
トラバーサル属性:のために...ループ内で
以下のために...ループ内でオブジェクトのすべてのプロパティを反復します。これは、オブジェクト自身のプロパティを通過するだけでなく、財産の相続を横断していないだけです。たとえば、オブジェクトがのtoStringプロパティを継承しますが、ないために...ループでこのプロパティを反復します。
(OBJにおけるVAR I){用
console.log( 'キー名:'、i)は、
console.log( 'キー:'、OBJ [I]);
}
機能
アウトライン
関数の宣言
関数宣言の三つの方法。
(1)機能コマンド
function
コマンド文のコードブロックが機能です。function
コマンドは、関数名に続いて、関数名は、関数のパラメータに渡される括弧のペアです。関数本体内部ブレース。
上記のコードは名前のあるprint
機能、将来の使用のprint()
このフォームは、適切なコードを呼び出すことができます。これは、関数宣言(関数宣言)と呼ばれています。
(2)関数式
加えて、function
機能コマンドの宣言、文言変数の割り当てを使用することもできます。
var print = function(s) {
console.log(s); };
言葉遣いは、変数に割り当てられた匿名関数となります。代入文の等号の右辺は式のみを置くことができるので、この場合は、無名関数も、関数式(関数式)と呼ばれています。
、関数式関数宣言を使用する場合はfunction
無い機能名を指定してコマンドを次のよう。唯一の関数本体内の有効なadd関数名、関数名の場合、関数の外で体が無効です。
(3)関数のコンストラクタ
第三の方法は、関数宣言するFunction
コンストラクタ。
var add = new Function(
'x',
'y', 'return x + y' ); // 等同于 function add(x, y) { return x + y; }
任意の数のパラメータが渡さFunction
コンストラクタ、およびそれらの関数である唯一の引数がある場合にのみ、最後のパラメータとして、本体の関数です。
リピート関数宣言
同じ関数が複数回宣言された場合、後者のステートメントは、前の文が上書きされます。
プロパティとメソッドの機能
name属性
関数name
プロパティは、関数の名前を返します。関数は変数割り当てで定義されている場合、
name
プロパティは変数名を返します。変数の値が匿名関数であるときしかし、それだけでそうです。変数の値が名前の関数がある場合、その
name
プロパティが返すfunction
キーワードの後に関数名を。
var f3 = function myName() {}; f3.name // 'myName'
lengthプロパティ
機能length
性は、引数の数は、関数定義内のパラメータの数、すなわち、予想を通過返します。
function f(a, b) {}
f.length // 2
上記機能コードは、空気を定義しf
、そのlength
プロパティは、パラメータの数が定義されています。呼び出された多くの入力パラメータは、どのようにどんなにlength
プロパティは常に2に等しいです。
length
違いは、オブジェクト指向プログラミング「メソッドオーバーロード」(過負荷)を達成するために、コール・パラメータを決定し、定義されている場合、属性は、機構を提供します。
toString()
機能toString
方法は、ソース関数の内容である文字列を返します。関数の内部メモも返すことができます。
関数スコープ
関数の内部グローバル変数を読み取ることができます
v
。関数定義内の変数は、と呼ばれる、外部から読み取ることができない「ローカル変数。」内部関数定義された変数は、同じ名前のグローバル変数は、ロール内でカバーされます。
上記のコードは、変数v
同時に外部および内部関数で定義されています。その結果、定義された関数内で、ローカル変数は、v
グローバル変数を覆いますv
。
以下のためにという注意var
他のブロックで宣言されたコマンド、ローカル変数のみの関数内で宣言することができますが、すべてのグローバル変数です。
配列