ケース
変数、関数名、演算子は大文字と小文字を区別
識別子
変数、関数、属性名、関数のパラメータは、最初の文字は、文字、アンダースコア(_)、またはドル記号($)でなければならない
他の文字は、英字、アンダースコア、ドル記号や番号をすることができ
注記
// 单行注释
/*
* 多行注释
*
*/
strictモード
異なるJavaScriptの解析と実行のモデルを定義するという概念を導入するのECMAScript 5 Strictモード
strictモードでは、ECMAScriptの3の動作にいくつかの不確実性に対処しているが、また、いくつかの危険な操作にエラーがスローされます。
スクリプト全体でstrictモードを有効にし、上部に追加
"use stricr"
また、strictモードで実行する関数を指定することができます
function doSomething() {
"use stricr";
// 函数体
}
声明
文の終わりとしてセミコロンを使用することを余儀なくされていないが、タイトルを省略することはお勧めしません。
var sum = a + b // 没有分页也是有效语句,不推荐
var diff = a - b; // 有效语句,推荐
推奨される使用は{}
、コードブロックに複数のステートメントを組み合わせることブレース
if (test)
alert(test); // 有效但容易出错,不要使用
if (test) { // 推荐使用
alert(test);
}
キーワードと予約語
参考ECMA-262
変数
緩く束縛ECMAScriptの変数のサポート
変数の定義var
演算子、例えば
var message;
var sum = 10;
var str = "hi";
注:var
変数は、変数のスコープの定義で定義されたローカル変数のオペレータになります
function test() {
var message = "hi"
}
test();
console.log(message); // 错误
ではないが、var
オペレータは、グローバル変数を定義することができますが、コードを混乱が生じ、維持することが困難であるため、この方法はお勧めしません。
function test() {
message = "hi"
}
test();
console.log(message); // "hi"
あなたは変数の数を定義するためのステートメントを使用することができます
var message = "hi",
str = "hello",
age = 29;
データの種類
単純なデータ型(基本データ型)の5種類
- 未定義
- ヌル
- ブーリアン
- 数
- ストリング
複雑なデータ型の一種
- オブジェクト
typeof
演算子
値を使用するtypeof
事業者は、次の文字列のいずれかを返すことがあります。
Undefined
この値は定義されていない場合boolean
この値はブール値である場合string
この値は文字列である場合number
- この値が値である場合object
この値はnullまたはオブジェクトである場合function
- この値はの関数である場合
var message = "some string";
console.log(typeof message); // string
console.log(typeof (message)); // string
console.log(typeof 95); // number
function f() {
// do something
}
console.log(typeof f); // function
var result = true;
console.log(typeof result); // boolean
var value;
console.log(typeof value); // undefined
注:typeof
これは、オペレータ、種以上の括弧を使用することができるコードのない機能が、必要ではありません
未定義のタイプ
一種類のみ不定undefined
使用中の特殊な値をvar
使用すると、変数を初期化するために宣言するとき、それは、この変数が定義されていないです
var message;
console.log(message == undefined); // true
var message = undefined; // 没有必要显式地将一个变量的值设置为undefined
console.log(message == undefined); // true
ヌルタイプ
一種類のみNULL null
、NULL値がヌル・オブジェクト・ポインタを特別な値を表します
var car = null;
console.log(typeof car); // "object"
次のコード出力が、真
console.log(null == undefined); // true
そこ明示的に変数の値が定義されていない設定する必要はありませんが、このルールはヌルには適用されない限り、変数は実際にオブジェクトの保存、あなたは間違いなく、変数がnull値を保持して行う必要がありますされていないオブジェクトを保持することを意図しているとして、
番号タイプ
数タイプは整数と浮動小数点数を表します
これは、10進数、8進数、16進数で表すことができます。
オクタルリテラルなければならない最初のビット7進数字のシーケンス0、次いで、0です。その値がリテラル範囲外である場合、以前の0が小数点値の分析の後の数字として、無視されます。strictモードでの進数は無効であり、エラーがスローされます
var num = 070; // 八进制的56
var n = 079; // 无效的八进制数字,解析为79
最初の2つの16進リテラルは、任意の16進数が続く0X、(0〜9、およびA〜F)、A〜Fのケース非感受性でなければなりません
var a = 0xa; // 十六进制的10
var b = 0x1F; // 十六进制的31
文字列型
文字列型は、文字のゼロまたはそれ以上の16ビットUnicode文字列を表すために使用され、すなわち、文字列(「)二重引用符(「)または一重引用符によって表すことができます
var str = "Hello, Wrold!";
var str = '你好, 世界!';
特性化文字列の長さは不変
使用して、文字列に変換toString()
する方法を
var a = 11;
var str = a.toString();
console.log(a + 1) // 12
console.log(str + 1); // 111
あなたは使用することができますtoString()
方法進変換
var num = 10;
console.log(num.toString()); //10
console.log(num.toString(2)); //1010
console.log(num.toString(8)); //12
console.log(num.toString(10)); //10
console.log(num.toString(16)); //a
オブジェクトの種類
データと機能のコレクション
var o = new Object();
var a = new Object; // 有效,但不建议省略圆括号
各オブジェクトのインスタンスは以下の属性とメソッドを持っています
constructor
現在のオブジェクトを作成するために使用する機能を保存hasOwnProperty(propertyName)
種の存在または不在の現在のインスタンスの特定の属性の確認isPropertyOf(propertyName)
オブジェクトが入ってくる現在のオブジェクトをチェックするためのプロトタイプであるかどうかpropertyIsEnumerablr(propertyName)
これは、指定された属性が列挙する文でのために、使用できるかどうかをチェックするために使用しましたtoLocaleString()
領域は、文字列の実行環境に対応し、オブジェクトの文字列表現を返します。toString()
オブジェクトの文字列表現を返します。valueOf()
文字列オブジェクトを返します。