javascript権威ガイド(03~06)

3127 ワード

3.12.自動タイプ変換
String
Number
ボロア
Object
Undfined value
「undefined」
NaN
false
エロエロ
null
「null」
0
false
エロエロ
Nonempty string
As is
Numeric value of string or NaN
TRue
Stering object
Empty string
As is
0
false
Stering object
0
「0」
As is
false
Number object
NaN
「NaN」
As is
false
Number object
Infinity
「Infinity」
As is
true
Number object
Negative infinity
「-Infinity」
As is
TRue
Number object
Any other number
String value of number
As is
true
Number object
true
「true」
1
As is
ボロアoject
false
「false」
0
As is
ボロアoject
Object
toString()
valueOf()、toString()、or NaN
true
As is
3.13.簡単なデータを演算すると、短い間に該当するオブジェクトに変換されます.関連方法は対象の上に定義されていますので、演算が完了したら、このオブジェクトもすぐに廃棄されます.
var s=「ハローワールド」      //A prmitive string value
var S=new String(「ハローワールド」); //A String object
typeof演算は異なる結果を返します.
3.14.対象が数値演算を行う場合は、valueOf()、toString()で演算します.ただし、対象がDateの+の場合は例外があり、優先toString()
3.15.4.転送値と転送先
Type
Copied by
Passed by
Compred by
number
Value
Value
Value
bollan
Value
Value
Value
ストリングス
Immutable
Immutable
Value
object
Reference
Reference
Reference
4.2.1.変数宣言
関数にはvar宣言の変数が含まれておらず、大域的にもこの変数がないため、プログラムは自ら大域変数として宣言します.したがって、変数宣言にはvarが必要です.
 
function a()
{
  b=10;
}
a(); //window.b=10;
4.3.1.ブロックレベルのスコープがない
主にjsの実行手順を理解することです.jsは先に説明してから実行します.説明する時は先に関連するvar定義操作を見ます.
var scope = "global";
function f() {
  alert(scope); // Displays "undefined", not "global"
  var scope = "local"; // Variable initialized here, but defined everywhere
  alert(scope); // Displays "local"
}
f();
//       
var x; // Declare an unassigned variable. Its value is undefined.
alert(u); // Using an undeclared variable causes an error.   
u = 3; // Assigning a value to an undeclared variable creates the variable.
5.10.4.delete操作
属性に関しては、参照を削除するだけで対象を削除しません.
var o = {x:1, y:2}; // Define a variable; initialize it to an object
delete o.x; // Delete one of the object properties; returns true
typeof o.x; // Property does not exist; returns "undefined"
delete o.x; // Delete a nonexistent property; returns true
delete o; // Can't delete a declared variable; returns false    IE8 FF    true,   
delete 1; // Can't delete an integer; returns true IE8    ,FF returns true
x = 1; // Implicitly declare a variable without var keyword
delete x; // Can delete this kind of variable; returns true
x; // Runtime error: x is not defined
6.9.for/in
for/in循環体から未列挙の属性を削除すると、この属性は列挙されません.
for/in循環体に属性を追加すると、場合によっては追加属性を列挙することができます.おそらく列挙は順序がないためです.
for/inはすべての属性を列挙しません.
6.15.リセット
関数がリセットされますまたは実行して戻ってくるのはundefined(void 0;同様)です.