JavaScript高級プログラム設計(第3版)ノート
7487 ワード
第三章基本概念
3.1文法
3.1.1大文字と小文字を区別する
3.1.2識別子は、変数、関数、属性の名前、または関数のパラメータです. 命名規則: 最初の文字はアルファベット、アンダースコア、ドル記号でなければなりません. 他の文字は、アルファベット、アンダースコア、ドル記号または数字とすることができます. 慣例としては、ラクダの命名法が使われています. 3.1.4厳格モードは、語句の終わりにセミコロンを追加することを推奨している(ある場合、コードネームの推測セミコロン位置を回避し、コードの性能を向上させている) コードブロック({})の使用を推奨します.if文など、読みやすく、エラー率を低減します. 3.2キーワードと保持ワード
3.3変数は変数を定義していますが、値が与えられていない場合、変数はundefined を保存します. varオペレータによって定義される変数は、その変数を定義する作用領域における局所変数となる.つまり、関数でvarを使って変数を定義すると、この変数は関数が終了した後に破棄されます. は、varオペレータを省略してグローバル変数を作成する.おすすめはありません. 複数の変数を一つの文で定義する 5種類の基本データタイプ:Unidefined、Null、Boolean、Number、String 1種の複雑なデータタイプ:Objectは、無秩序な名前値ペアのセットから構成される. 3.4.1 typeof操作符
3.4.2 Unidefinedタイプ
一つの値しかないです.すなわち特殊なundefinedです.初期化されていない変数と宣言されていない変数に対して、typeofオペレータ を実行します.は、初期化されていない変数および未宣言の変数に対してconsolie.logまたはalertを実行する.今のブラウザでは教科書の紹介と違って、undefined が印刷されます.
この特殊な値は一つの値しかありません.nullです.オブジェクトの空のポインタを表します.これもtypeofオペレータを使って、null値を検出して、objectに戻る原因です. undefined値はnull値から派生されるので、 定義された変数が将来オブジェクトを保存するために準備されている場合、この変数をnullに初期化したほうがいいです.このようにすると、null値を直接確認すれば、対応する変数がオブジェクトの参照を保存しているかどうかを知ることができます.
二つの値:trueとfalseは、1つの値をその対応するBoolean値に変換するために、変換関数Boolean() を呼び出すことができる.データタイプ変換規則 データの種類
trueの値に変換
flaseの値に変換
ボロア
true
false
String
空の文字列以外
'(空の文字列)
Object
任意のオブジェクト
null
Number
ゼロ以外の数値
0またはNaN
Udefined
n/a(not appicabkeは適用されません)
undefined制御文は、対応するBoolean変換を自動的に実行する. 8進数:1桁目は0、8進数数字系列(0-7)でなければなりません.ワード面の値が範囲を超えている場合、プリアンブル0は無視され、後の値は10進数の数値として解析されます. 8進数字面量は、厳密なモードでは無効です. 六進数字の面の値の前の二桁は0 xでなければなりません.後の任意の十六進数(0-9及びa-f)a-fは大文字でも小文字でもいいです. 浮動小数点数 浮動小数点の数値が占めるメモリは整数の2倍です. 0.1プラス0.2の結果は0.3 ではありません.数値範囲 ECMAScriptで表し得る最小値はNumber.MIN_に保存されています.VALEの中で、多くのブラウザの中で、この値は5 e-324です. ECMAScriptで表示できる最大値はNumber.MAX_に保存されています.VALEでは、多くのブラウザにおいて、この値は1.7976931348623157 e+308である. NaN 非数値(Not a Number)は、本来返すべき数値の動作数が数値に戻らない場合を表します.ECMAScriptでは、任意の数値を非数値で割るとNaNに戻り、他のコードの実行に影響を与えません. NaNに関する任意の動作はNaNに戻る. NaNは、NaN自体を含むいかなる値とも等しくない. isNaN()関数はパラメータを受信し、このパラメータを数値に変換する試みを行う.いくつかの数値ではない値は直接数値に変換され、falseを返します.例えば、文字列「10」またはBoolean値です.数値に変換できない値はいずれもこの関数がtrueに戻ります. 数値変換 非数値変換値: Boolean値なら、true-->1、false-->0. 数字であれば、簡単に伝わってきます. は、null値であれば、0を返します. はundefinedであれば、NaNに戻る. 文字列であれば. は、0ビット以上の16ビットのUnicode文字からなる文字列を表すために使用される.二重引用符または単引用符で表します. 文字の字面量 文字列の特徴 は文字列toString()方法に変換され、対応する値の文字列の変形を返します.
3.1文法
3.1.1大文字と小文字を区別する
3.1.2識別子
"use strict"
3.1.5文3.3変数
var msg;
console.log(msg); //undefined
function test(){
var a = 1; //
}
test();
console.log(a); // Uncaught ReferenceError: a is not defined
function test2(){
b = 1; //
}
test2();
console.log(b); // 1
//
var a = "hello";
b = "world";
console.log(a); // hello
console.log(b); // world
3.4データタイプ3.4.2 Unidefinedタイプ
一つの値しかないです.すなわち特殊なundefinedです.
// typeof
var c = 123;
var d; //
var e //
console.log(typeof(c)); // number
console.log(typeof(d)); // undefined
console.log(typeof(e)); // undefined
var c = 123;
var d; //
var e //
// console.log(typeof(c)); // number
// console.log(typeof(d)); // undefined
// console.log(typeof(e)); // undefined
alert(c); // 123
alert(d); // undefined
alert(e); // undefined
3.4.3 Nullタイプこの特殊な値は一つの値しかありません.nullです.オブジェクトの空のポインタを表します.これもtypeofオペレータを使って、null値を検出して、objectに戻る原因です.
console.log(typeof null); // object
console.log(null == undefined); // true
if(car != null) {
// car
}
3.4.4 Booleanタイプ二つの値:trueとfalse
var message = "hello";
var message2 = Boolean(message);
console.log(message2); // true
trueの値に変換
flaseの値に変換
ボロア
true
false
String
空の文字列以外
'(空の文字列)
Object
任意のオブジェクト
null
Number
ゼロ以外の数値
0またはNaN
Udefined
n/a(not appicabkeは適用されません)
undefined
var msg = "hello world"
if(msg){ // msg -> true
console.log(" ") //
}
3.4.5 Numberタイプ var num1 = 070;
var num2 = 079;
var num3 = 08;
console.log(num1); //56
console.log(num2); //79
console.log(num3); // 8
var num4 = 0xA;
var num5 = 0x1f;
console.log(num4); // 10
console.log(num5); // 31
//
var num6 = 1.1;
var num7 = 0.1;
var num8 = .1; //
console.log(num6); // 1.1
console.log(num7); // 0.1
console.log(num8); // 0.1
var num9 = 1.;
var num10 = 10.0;
console.log(num9); // 1
console.log(num10); // 10
console.log(0.1+0.2); // 0.30000000000000004
var result = Number.MAX_VALUE + Number.MAX_VALUE;
console.log(isFinite(result)); // false
console.log(Number.MIN_VALUE); // 5e-324
console.log(Number.MAX_VALUE); // 1.7976931348623157e+308
console.log(NaN == NaN); // false
// , ?
console.log(isNaN(NaN)); // true
console.log(isNaN(10)); // false
console.log(isNaN("10")); // false
console.log(isNaN("blue")); // true
console.log(isNaN(true)); // false
Number()
(任意のデータタイプ用)、parseInt()
(文字列を数値に変換するためのもの)、parseFloat()
(文字列を数値に変換するためのもの)Number()
(任意のデータタイプのための)関数の変換規則: var num1 = Number("hello");
var num2 = Number("");
var num3 = Number("0001");
var num4 = Number(true);
console.log(num1); // NaN
console.log(num2); // 0
console.log(num3); // 1
console.log(num4); // 1
parseInt()
var num1 = parseInt("123hello");
var num2 = parseInt("");
var num3 = parseInt("0001");
var num4 = parseInt(true);
var num5 = parseInt(22.5);
var num6 = parseInt("0xaf",16);
console.log(num1); // 123
console.log(num2); // NaN
console.log(num3); // 1
console.log(num4); // NaN
console.log(num5); // 22
console.log(num6); // 175
parseFloat()
var num1 = parseFloat("123blue");
var num2 = parseFloat("0xa");
var num3 = parseFloat("22.5");
var num4 = parseFloat("22.31.5");
var num5 = parseFloat("0908.5");
var num6 = parseFloat("3.125e7");
console.log(num1); // 123
console.log(num2); // 0
console.log(num3); // 22.5
console.log(num4); // 22.31
console.log(num5); // 908.5
console.log(num6); // 31250000
3.4.6 Stringタイプ var age = 10;
var ageA = age.toString(age);
console.log(ageA); // "10"
console.log(typeof ageA); // string
console.log(typeof age); // number