éåç« ç¯å°è¬è¿° JavaScript çéç®å¼èéç®åï¼å æ¬è³¦å¼éç®åï¼æ¯è¼éç®åï¼ç®è¡éç®åï¼ä½å éç®åï¼ é輯éç®å, å串éç®å, æ¢ä»¶(ä¸å )éç®å 以忴å¤éç®å.
æ´å¤éæ¼éç®å以åéç®å¼çè³æå¯ä»¥å¨ reference 䏿¾å°ã
éç®åJavaScript æä»¥ä¸å¹¾ç¨®éç®åã æ¤èå°æè¿°éç®å以åä¸äºéç®åçåªå é åºã
JavaScript åæå ·æäºå éç®ååä¸å éç®åï¼ ä»¥åä¸ç¨®ç¹æ®ç ä¸å éç®åï¼ä¹å°±æ¯ æ¢ä»¶éç®åã ä¸åäºå éç®åéè¦å ·åå ©åéç®å ï¼ ä¸åå¨éç®å ä¹åï¼ä¸åå¨éç®å ä¹å¾:
éç®å 1 éç®å éç®å 2
ä¾å¦, 3+4
æ x*y
.
ä¸å ä¸å éç®å éè¦ä¸åéç®å ï¼ ä½æ¼éç®åä¹åæä¹å¾:
éç®å éç®å
æ
éç®å éç®å
ä¾å¦ï¼ x++
æ ++x
.
ä¸å 賦å¼éç®å å° åºæ¼å
¶ 峿¹çéç®å
çå¼è³¦äºå
¶ å·¦æ¹çéç®å
ã æç°¡å®ç 賦å¼éç®å æ¯ çæ¼ (=
)ï¼ å®å°è³¦äº å·¦æ¹éç®å
è 峿¹éç®å
ç¸åä¹å¼ã ä¹å°±æ¯ï¼ x = y
ææ y çå¼è³¦äºçµ¦ xã
乿ä¸äºå¾©åç 賦å¼éç®å æ¯çºäºç¸®çä¸é¢è¡¨ä¸çéç®:
è§£æ§çºäºé²è¡æ´è¤éç賦å¼ï¼è§£æ§æ¯ JavaScript ç¨ä¾å¾é£åæç©ä»¶ä¸æåè³æçèªæ³ã
var foo = ["one", "two", "three"];
// ä¸ä½¿ç¨è§£æ§
var one = foo[0];
var two = foo[1];
var three = foo[2];
// 使ç¨è§£æ§
var [one, two, three] = foo;
æ¯è¼éç®å
æ¯è¼éç®å ææ¯è¼ éç®å
ä¸¦åºæ¼æ¯è¼ççµæåå³é輯å¼ã éç®å
å¯ä»¥æ¯æ¸åï¼å串ï¼éè¼¯ï¼æç©ä»¶çå¼ã åä¸²çæ¯è¼æ¯åºæ¼åå
¸åºçï¼ ä½¿ç¨ Unicode çå¼ã å¨å¤æ¸æ
æ³ä¸ï¼åå¦å
©åéç®å
ä¸å
·æç¸ååæ
ï¼ JavaScript æå試å°å®åè½ææç¸ååæ
ãéåè¡çºé常æ¯å°éç®å
以æ¸å¸å½¢å¼å°å¾
ã 卿äºçè½æåæ
çä¾å¤ä¸æä½¿ç¨å° ===
å !==
éç®åï¼ å®åæå´æ ¼å°é²è¡ç¸çæä¸ç¸ççæ¯è¼ã éäºéç®å䏿å¨ç¢ºèªç¸çèå¦ååè©¦è½æéç®å
çåæ
ã ä¸é¢ç表解éäºæ¯è¼éç®å:
var var1 = 3;
var var2 = 4;
éç®å æè¿° æåå³ True çä¾å çæ¼ (==
) åå¦éç®å
çå¹å°±åå³ Trueã 3 == var1
"3" == var1
3 == '3'
ä¸çæ¼ (!=
) åå¦éç®å
çå¹å°±åå³ Trueã var1 != 4 var2 != "3"
å´æ ¼çæ¼ (===
) åå¦éç®å
å
·æç¸ååæ
ä¸çå¹ååå³ Trueãåè Object.is
å JS ä¸çç广§ã 3 === var1
å´æ ¼ä¸çæ¼ (!==
) åå¦éç®å
å
·æç¸ååæ
ä½ä¸çå¹ï¼ææ¯å
·æä¸ååæ
ï¼åå³ Trueã var1 !== "3" 3 !== '3'
å¤§æ¼ (>
) åå¦å·¦æ¹éç®å
大æ¼å³æ¹éç®å
ï¼åå³ Trueã var2 > var1 "12" > 2
å¤§æ¼æçæ¼ (>=
) åå¦å·¦æ¹éç®å
å¤§æ¼æçæ¼å³æ¹éç®å
ï¼åå³ Trueã var2 >= var1 var1 >= 3
å°æ¼ (<
) åå¦å·¦æ¹éç®å
å°æ¼å³æ¹éç®å
ï¼åå³ Trueã var1 < var2 "2" < 12
å°æ¼æçæ¼ (<=
) åå¦å·¦æ¹éç®å
å°æ¼æçæ¼å³æ¹éç®å
ï¼åå³ Trueã var1 <= var2 var2 <= 5
åè¨»ï¼ =>
䏿¯éç®åï¼æ¯ç®é å½å¼ã
ç®è¡éç®å 以 æ¸å¼ (æåæè®æ¸ä¹å¯ä»¥)ä½çºå
¶éç®å
ï¼ä¸¦åå³å®ä¸æ¸å¼ãæå¸¸è¦çç®è¡éç®å
æ¯ å æ³ (+
)ï¼æ¸æ³ (-
)ï¼ ä¹æ³ (*
)ï¼å餿³ (/
)ã éäºéç®åå¨å¤§å¤æ¸ç¨å¼èªè¨ä¸åè½ç¸å (æ¯è¼ç¹å¥çæ¯ï¼å¨é¤æ¸çº 0 æ Infinity
)ãä¾å¦:
1 / 2; // 0.5
1 / 2 == 1.0 / 2.0; // ææ¯ true
é¤äºæ¨æºçç®è¡éç®åå¤ (+, -, * /)ï¼ JavaScript æä¾ä»¥ä¸è¡¨ä¸çç®è¡éç®å:
éç®å æè¿° ç¯ä¾ å餿¸ (%
) äºå
éç®åãåå³å
©åéç®å
ç¸é¤å¾ç餿¸ã 12 % 5 åå³ 2. å¢å (++
) ä¸å
éç®åã å°éç®å
å¢å 1ãåå¦ä½¿ç¨å¨éç®å
ä¹å (++x
)ï¼æéç®å
åå³å¢å 1 å¾çå¼;åå¦ä½¿ç¨å¨éç®å
ä¹å¾ã (x++
)ï¼
æåå³éç®å
å 1 åçå¼ã åå¦ xæ¯
3ï¼é£ ++x
å°æ x
è¨å®çº 4 並åå³ 4ï¼è x++ æåå³
3 ï¼ æ¥èææ x è¨å®çº
4ã æ¸å° (--
) ä¸å
éç®åã å°éç®å
æ¸å° 1ãåå³å¼çæ
æ³è å¢å éç®å
ç¸åã åå¦ xæ¯
3ï¼é£ --x
å°æ x
è¨å®çº 2 並åå³ 2ï¼è x-- æåå³
3 ï¼ æ¥èææ x è¨å®çº
2ã (ä¸å
éç®å)æ¸è (-
) ä¸å
éç®åãåå³éç®å
çè² æ¸ã åå¦ x æ¯ 3ï¼-x åå³ -3ã (ä¸å
éç®å)å è (+
) ä¸å
éç®åãå試å°éç®å
è½æææ¸åï¼åå¦å®é䏿¯æ¸åç話ã +"3"
åå³ 3
ã +true
åå³ 1.
ææ¸éç®å (**
) 坦驿§è³ª è¨ç®ä»¥ a çºåºç b
次æ¹ï¼ ä¹å°±æ¯, a^b
2 ** 3
åå³ 8
. 10 ** -1
åå³ 0.1
. ä½å
éç®å
ä½å éç®å æéç®å ç¶ä½ 32 ä½å çéåä¾çå¾ (0 å 1)ï¼ è䏿¯åé²ä½ï¼åå é²ä½ï¼æå «é²ä½ãä¾å¦ï¼åé²ä½æ¸å 9 以äºé²ä½è¡¨ç¤ºå°±æ¯ 1001ã ä½å éç®åå°éç®å 以ä¸è¿°äºé²ä½çå½¢å¼èçï¼ä½æ¯åå³ Javascript ä¸çæ¸åé¡åå¼ã
ä¸å表總çµäº JavaScript' ä¸çä½å éç®åã
éç®å ç¨æ³ æè¿° ä½å ANDa & b
åå³å
©åéç®å
å°æ¼æ¯å bit å AND ççµæã ä½å
OR a | b
åå³å
©åéç®å
å°æ¼æ¯å bit å OR ççµæã ä½å
XOR a ^ b
åå³å
©åéç®å
å°æ¼æ¯å bit å XOR ççµæã ä½å
NOT ~ a
å°éç®å
ä¸çæ¯å bit åè½(1->0,0->1)ã 左移 a << b
å° a
çæ¯å bit å左移å b
å bitsï¼ç©ºé¤ç使¸ä»¥ 0 å¡«æ»¿ã æèå³ç§» a >> b
å° a
çæ¯å bit åå³ç§»å b
å bitsï¼ç©ºé¤ä½æ¸ä»¥æé«ä½è£æ»¿ã 以 0 å¡«å
çå³ç§» a >>> b
å° a
çæ¯å bit åå³ç§»å b
å bitsï¼ç©ºé¤ç使¸ä»¥ 0 填滿ã ä½å
é輯éç®å
æ¦å¿µä¸ï¼ä½å é輯éç®åéä½éç¨å¦ä¸:
éç®å è¢«è½æçº 32 bits çæ´æ¸ä»¥äºé²ä½å½¢å¼è¡¨ç¤º (0 å 1)ãå¤§æ¼ 32 bits çæ¸åå°è¢«æ¨æ£å¤åºä¾çä½å ãä¾å¦ï¼ ä¸åæ´æ¸å¤§æ¼ 32 å bit 使¯æè¢«è½æçº 32 å bit çæ´æ¸:
è½æä¹å: 11100110111110100000000000000110000000000001 è½æä¹å¾: 10100000000000000110000000000001
第ä¸åéç®å ä¸çæ¯å bit åå¥å°æå°ç¬¬äºåéç®å çæ¯å bit: 第ä¸å bit å° ç¬¬ä¸å bit, 第äºå bit å° ç¬¬äºå bitï¼ ä»¥æ¤é¡æ¨ã
éç®åæå°æ¼ bit é²è¡éç®ï¼ çµæä¹æ¯åºæ¼ bit 便±ºå®çã
ä¾å¦ï¼ 9 çäºå è¡¨ç¤ºæ³æ¯ 1001ï¼ 15 çäºå è¡¨ç¤ºæ³æ¯ 1111ãå æ¤ï¼å¨ä½¿ç¨ä½å éç®åçæåï¼çµæå¦ä¸:
éç®å¼ çµæ äºå æè¿°å¼15 & 9
9
1111 & 1001 = 1001
15 | 9
15
1111 | 1001 = 1111
15 ^ 9
6
1111 ^ 1001 = 0110
~15
-16
~ 0000 0000 ⦠0000 1111 = 1111 1111 ⦠1111 0000
~9
-10
~ 0000 0000 ⦠0000 1001 = 1111 1111 ⦠1111 0110
注æï¼å¨ä½¿ç¨ ä½å NOT éç®åæï¼ ææç 32 å bit é½è¢«é²è¡ NOT äºï¼å 嫿左éç¨ä¾æè¿°æ£è² æ¸çä½å (two's-complement representation)ã
ä½å ç§»åéç®åä½å ç§»åéç®åéè¦å ©åéç®å : 第ä¸åæ¯éç®çç®æ¨ï¼ç¬¬äºåæ¯è¦ç§»åçä½å æ¸ãç§»åçæ¹ååæ±ºæ¼ä½¿ç¨çéç®åã
ç§»åéç®åæå°éç®å è½ææ 32 bits çæ´æ¸ï¼ä¸¦ä¸æåå³èå·¦æ¹éç®å ç¸åçåæ ã
ç§»åéç®åå¨ä¸è¡¨è¢«ååº.
éç®å æè¿° ç¯ä¾ 左移 (<<
) éåéç®åæå°ç¬¬ ä¸åéç®å
çæ¯å bit å左移å 第äºåéç®å
ææå®ç bit æ¸éãå·¦éè¶
åºç使¸æè¢«æ¨æ£ï¼å³é空åºç使¸ä»¥ 0 è£é½ã 9<<2
å¾å° 36ï¼å çº 1001 å左移å 2 bits æå¾å° 100100ï¼ ä¹å°±æ¯äºé²ä½ç 36ã æèå³ç§» (>>
) éåéç®åæå°ç¬¬ ä¸åéç®å
çæ¯å bit åå³ç§»å 第äºåéç®å
ææå®ç bit æ¸éãå³éè¶
åºç使¸æè¢«æ¨æ£ï¼å·¦é空åºç使¸ä»¥æé«ä½è£é½ã 9>>2
å¾å° 2ï¼å çº 1001 åå³ç§»å 2 bits æå¾å° 10ï¼ä¹å°±æ¯äºé²ä½ç 2ã ç¸åçï¼ -9>>2
æå¾å° -3ï¼å çºæé«ä½ç¨ä¾è¡¨ç¤ºæ£è² èç bit 被ä¿çäºã 以 0 å¡«å
çå³ç§» (>>>
) éåéç®åæå°ç¬¬ ä¸åéç®å
çæ¯å bit åå³ç§»å 第äºåéç®å
ææå®ç bit æ¸éãå³éè¶
åºç使¸æè¢«æ¨æ£ï¼å·¦é空åºç使¸ä»¥ 0 è£é½ã 19>>>2 å¾å°
4ï¼ å çº 10011 åå³ç§»å 2 bits æå¾å° 100ï¼æ¯äºé²ä½ç 4ãå°æ¼éè² çæ¸åèè¨ï¼ 以 0 å¡«å
çå³ç§» æå¾å°å æèå³ç§»ç¸åççµæã é輯éç®å
é輯éç®å éå¸¸è¢«ç¨æ¼å¸æ(é輯)å¼; ä½¿ç¨æ¼ 叿(é輯)å¼æï¼ å®åæåå³å¸æåæ
çå¼ã ç¶èï¼&&
å ||
éç®å實é䏿¯åå³å
©æå®éç®å
ä¹ä¸ï¼å æ¤ç¨æ¼é叿åæ
弿ï¼å®å¯è½æåå³ä¸åé叿åæ
çå¼ã é輯éç®åå°å¨ä¸è¡¨ä¸è¢«è©³ç´°è§£éã
&&
) éç®å¼1 && éç®å¼2
åå¦ éç®å¼1
å¯ä»¥è¢«è½ææ false ç話ï¼åå³ éç®å¼1
; å¦åï¼åå³ éç®å¼2
ã å æ¤ï¼&&
åªæå¨ å
©åéç®å
齿¯ True æææåå³ Trueï¼å¦ååå³ false
ã é輯 OR (||
) éç®å¼1 || éç®å¼2
åå¦ éç®å¼1
å¯ä»¥è¢«è½ææ true ç話ï¼åå³ éç®å¼1
; å¦åï¼åå³ éç®å¼2
ã å æ¤ï¼||
å¨ å
©åéç®å
æä»»ä¸åæ¯ True æå°±æåå³ Trueï¼å¦ååå³ false
ã é輯 NOT (!
) !éç®å¼
åå¦å®ä¸åéç®å
è½è¢«è½ææ True æï¼åå³false
ï¼ ä¸ç¶åå³ true
ã
å¯ä»¥è¢«è½æçº false çéç®å¼æ¯ nullã0ãNaNã空å串ï¼""ï¼ï¼æ undefinedã
ä¸é¢æ¯ &&
ï¼é輯 ANDï¼éç®åçç¯ä¾ã
var a1 = true && true; // t && t åå³ true
var a2 = true && false; // t && f åå³ false
var a3 = false && true; // f && t åå³ false
var a4 = false && 3 == 4; // f && f åå³ false
var a5 = "Cat" && "Dog"; // t && t åå³ Dog
var a6 = false && "Cat"; // f && t åå³ false
var a7 = "Cat" && false; // t && f åå³ false
ä¸åæ¯ ||
ï¼é輯 ORï¼éç®åçç¯ä¾ã
var o1 = true || true; // t || t åå³ true
var o2 = false || true; // f || t åå³ true
var o3 = true || false; // t || f åå³ true
var o4 = false || 3 == 4; // f || f åå³ false
var o5 = "Cat" || "Dog"; // t || t åå³ Cat
var o6 = false || "Cat"; // f || t åå³ Cat
var o7 = "Cat" || false; // t || f åå³ Cat
ä¸åæ¯ !
ï¼é輯 NOTï¼éç®åçç¯ä¾ã
var n1 = !true; // !t åå³ false
var n2 = !false; // !f åå³ true
var n3 = !"Cat"; // !t åå³ false
ç路解æ
é輯éç®å¼æ¯ç±å·¦åå³è§£æçï¼ ä»åæä»¥ä¸åè¦åå試é²è¡ ç路解æ:
false
&& 任使±è¥¿ æ¯ false çç路解æãtrue
|| 任使±è¥¿ æ¯ true çç路解æãéäºè¦åä¿è è§£æç¸½æ¯æ£ç¢ºçã å¼å¾æ³¨æçå°æ¹æ¯ï¼å©é¤é¨åçéç®å¼ä¸¦æ²æè¢«è§£æï¼æä»¥ä¸æå ç¨ä»»ä½æè½ã
å串éç®åé¤äºä½çºæ¯è¼éç®åä¹å¤ï¼ éç®å (+) ä¹è½ç¨æ¼å串ï¼å°å ©å串æ¥å¨ä¸èµ·ï¼ä¸¦å峿¥å¨ä¸èµ·å¾ççµæã
ä¾å¦ï¼
console.log("æç " + "å串"); // æå°åº å串 "æçå串"ã
ç°¡åçè¨å®éç®å += ä¹è½ç¨æ¼ä¸²æ¥å串ã
ä¾å¦ï¼
var mystring = "å";
mystring += "æ¯"; // å¾å° "忝" 並賦èçµ¦è®æ¸ mystring.
æ¢ä»¶ï¼ä¸å
ï¼éç®å
æ¢ä»¶éç®å æ¯ JavaScript ä¸å¯ä¸éè¦ä¸åéç®å çéç®åã éåéç®åæ¥åå ©åéç®å ä½çºå¼ä¸ä¸åéç®å ä½çºæ¢ä»¶ã èªæ³æ¯:
æ¢ä»¶ ? å¼1 : å¼2
妿 æ¢ä»¶ çº trueï¼éç®ååå³ å¼ 1ï¼ å¦ååå³ å¼ 2ã ä½ å¯ä»¥å¨ä»»ä½ä½¿ç¨æ¨æºéç®åçå°æ¹æ¹ç¨ æ¢ä»¶éç®åã
ä¾å¦ï¼
var status = age >= 18 ? "æäºº" : "å°å©";
éåé³è¿°å¥æå° "æäºº" 賦èçµ¦è®æ¸ status
åå¦ age
大æ¼çæ¼ 18ã å¦åï¼æå° "å°å©" 賦èçµ¦è®æ¸ status
ã
éé»éç®å (,
) ä½ç¨æ¯è§£æå
©åéç®å
並åå³å¾é¢é£åéç®å
çå¼ã éåéç®åéå¸¸ç¨æ¼ for è¿´åå
§é¨ï¼è®å¤åè®æ¸è½å¨æ¯æ¬¡è¿´åä¸è¢«æ´æ°ã
ä¾å¦ï¼åå¦ a
æ¯ä¸åæååç©ä»¶å¨è£¡é¢çäºç¶é£åï¼ ä¸é¢çç¨å¼ä¸å°±ä½¿ç¨äºéé»éç®åä¾åææ´æ°å
©åè®æ¸ã éæ®µç¨å¼ç¢¼æå°åºé£å䏿æå°è§ç·ä¸çç©ä»¶:
for (var i = 0, j = 9; i <= j; i++, j--)
console.log("a[" + i + "][" + j + "]= " + a[i][j]);
ä¸å
éç®å
ä¸å éç® æ¯åªéè¦ä¸åéç®å çéç®ã
delete
delete
éç®åæåªé¤ç©ä»¶ï¼ç©ä»¶çæ§è³ªï¼ææ¯é£åä¸æå® index çç©ä»¶ã èªæ³æ¯:
delete ç©ä»¶å稱;
delete ç©ä»¶å稱.æ§è³ª;
delete ç©ä»¶å稱[ç´¢å¼];
delete æ§è³ª; // åªæå¨ with é³è¿°å¥ä¸å¯ä»¥ä½¿ç¨
ç©ä»¶å稱
æ¯ç©ä»¶çåç¨±ï¼ æ§è³ª æ¯ç©ä»¶ä¸çä¸åç¹æ§ï¼ ç´¢å¼ æ¯ç¨ä¾è¡¨ç¤ºç©ä»¶å¨é£åä¸ä½ç½®çä¸åæ´æ¸ã
第å種形å¼åªæå¨ with
é³è¿°å¥ä¸å¯ç¨ï¼ ç¨ä¾åªé¤ç©ä»¶ä¸çä¸åç¹æ§ã
ä½ å¯ä»¥ç¨ delete
éç®åä¾åªé¤é±å¼å®£åçè®æ¸ï¼ ä½ä¸é©ç¨æ¼ä½¿ç¨ var 宣åçè®æ¸ã
åå¦ delete
éç®åä½¿ç¨æåï¼ å®æå°ç©ä»¶ ææ¯ ç©ä»¶çç¹æ§è¨å®çº æªå®ç¾©ã
delete
éç®åæå¨éç®æåæåå³ true ï¼å¤±ææåå³ false
ã
x = 42;
var y = 43;
myobj = new Number();
myobj.h = 4; // 建ç«ç¹æ§ h
delete x; // åå³ true (åªæå¨é±å¼å®£åæè½è¢«åªé¤)
delete y; // åå³ false (å¨ä½¿ç¨ var 宣åæç¡æ³åªé¤)
delete Math.PI; // åå³ false (ä¸è½åªé¤å
§å»ºå®ç¾©çç¹æ§)
delete myobj.h; // åå³ true (å¯ä»¥åªé¤ä½¿ç¨è
èªå®ç¾©çç¹æ§)
delete myobj; // åå³ true (å¨é±å¼å®£åæå¯è¢«åªé¤)
åªé¤é£åå
ç´
å¨ä½ åªé¤äºé£åä¸çä¸åå
ç´ å¾ï¼ é£åçé·åº¦ä¸¦ä¸ææ¹è®ã ä¾å¦ï¼ åå¦ä½ åªé¤ a[3]
ï¼ a[4]
ä¾ç¶æ¯ a[4]
è a[3]
çº æªå®ç¾©ã
ç¶ä½¿ç¨ delete
éç®ååªé¤é£åä¸çä¸åå
ç´ å¾ï¼ é£åå
ç´ ä¾¿ä¸åå卿¼é£åä¸äºã å¨ä¸é¢çç¨å¼ä¸ï¼ trees[3]
è¢«ç¨ delete ç§»é¤äºãç¶èï¼ trees[3]
çè¨æ¶é«ä½åä»å¯ç¨ä¸¦ä¸æåå³ æªå®ç¾©ã
var trees = ["redwood", "bay", "cedar", "oak", "maple"];
delete trees[3];
if (3 in trees) {
// 䏿å·è¡å°é裡
}
åå¦ä½ å¸æçµ¦äºé£åå
ç´ æªå®ç¾© çå¼ï¼ ä½ å¯ä»¥ç´æ¥ä½¿ç¨ undefined
ééµåè䏿¯ä½¿ç¨ delete éç®åã ä¸åç¯ä¾ä¸ï¼ trees[3]
被æå®äº undefined
ï¼ ç¶èé£åå
ç´ ä¾ç¶åå¨:
var trees = ["redwood", "bay", "cedar", "oak", "maple"];
trees[3] = undefined;
if (3 in trees) {
// æå·è¡é裡
}
typeof
typeof
éç®å è½ä»¥ä¸å任䏿¹å¼ä½¿ç¨:
typeof éç®å typeof (éç®å )
typeof
éç®åæåå³ä»£è¡¨éç®å
é¡åç å串ã éç®å
è½æ¯å串ï¼è®æ¸ï¼ééµåï¼ææ¯æåå³åæ
çç©ä»¶ã
æ¬èæ¯å¯æå¯ç¡çã
åè¨ä½ å®ç¾©äºä»¥ä¸éäºè®æ¸:
var myFun = new Function("5 + 2");
var shape = "round";
var size = 1;
var today = new Date();
typeof
éç®åæåå³ä¸åçµæ:
typeof myFun; // åå³ "function"
typeof shape; // åå³ "string"
typeof size; // åå³ "number"
typeof today; // åå³ "object"
typeof doesntExist; // åå³ "undefined"
å°æ¼ true
å nullééµåï¼
typeof
éç®åæåå³ä¸åçµæ:
typeof true; // åå³ "boolean"
typeof null; // åå³ "object"
å°æ¼åä¸²ææ¸åï¼ typeof
éç®åæåå³ä¸åçµæ:
typeof 62; // åå³ "number"
typeof "Hello world"; // åå³ "string"
å°æ¼ç¹æ§ï¼typeof
éç®åæåå³ ç¹æ§çå¼çé¡å:
typeof document.lastModified; // åå³ "string"
typeof window.length; // åå³ "number"
typeof Math.LN2; // åå³ "number"
å°æ¼ æ¹æ³ å å½å¼ï¼ typeof
éç®åæåå³ä¸åçµæ:
typeof blur; // åå³ "function"
typeof eval; // åå³ "function"
typeof parseInt; // åå³ "function"
typeof shape.split; // åå³ "function"
å°æ¼å
§å»ºå®ç¾©çç©ä»¶ï¼ typeof
éç®åæåå³ä¸åçµæ:
typeof Date; // åå³ "function"
typeof Function; // åå³ "function"
typeof Math; // åå³ "object"
typeof Option; // åå³ "function"
typeof String; // åå³ "function"
void
void
éç®å è½ä»¥ä¸å任䏿¹å¼ä½¿ç¨:
void (éç®å¼) void éç®å¼
void
éç®åæè§£æéç®å¼èä¸åå³ä»»ä½å¼ã éç®å¼
æ¯ JavaScript ä¸è¦è§£æçå°è±¡ã æ¬èæ¯å¯æå¯ç¡çï¼ä½æ¯å»ºè°ä½¿ç¨ã
ä½ å¯ä»¥ä½¿ç¨ void
éç®åä¾è§£æè¶
é£çµä¸çéç®å¼ã éç®å¼æè¢«è§£æè䏿å¨ç¶åé é¢è¢«å°åºã
ä¸åç¯ä¾æ¯ä¸åå¨é»ææç麼é½ä¸åçè¶
é£çµã ç¶ä½¿ç¨è
黿é£çµæï¼ void(0)
被解æçº æªå®ç¾©ï¼ èç麼é½ä¸æç¼çã
<a href="javascript:void(0)">黿é裡ï¼ç麼é½ä¸æç¼ç</a>
ä¸åç¯ä¾æ¯ä¸åå¨ä½¿ç¨è 黿æå³é表å®çè¶ é£çµã
<a href="javascript:void(document.form.submit())"> 黿以éåº</a>
éä¿éç®å
éä¿éç®åæ¯è¼å ©éç®å ä¸¦åºæ¼æ¯è¼çµæåå³å¸æå¼ã
in
in
éç®å卿宿§è³ªå卿¼ç©ä»¶ä¸æåå³ trueãèªæ³æ¯:
æ§è³ªå稱 in ç©ä»¶å稱
æ§è³ªå稱 å¯ä»¥æ¯ åä¸²ææ¸åï¼ææ¯é£åçç´¢å¼ï¼ ä¸ç©ä»¶å稱æ¯ç©ä»¶çå稱ã
ä¸åç¯ä¾ç¤ºç¯äº in
éç®åçä¸äºç¨æ³ã
// é£å
var trees = ["redwood", "bay", "cedar", "oak", "maple"];
0 in trees; // åå³ true
3 in trees; // åå³ true
6 in trees; // åå³ false
"bay" in trees; // åå³ false (ä½ å¿
é æå® ç´¢å¼ï¼
// è䏿¯ ç´¢å¼æå°æçå
ç´ )
"length" in trees; // åå³ true (length æ¯é£åçæ§è³ªä¹ä¸)
// å
§å»ºç©ä»¶
"PI" in Math; // åå³ true
var myString = new String("coral");
"length" in myString; // åå³ true
// èªè¨ç¾©ç©ä»¶
var mycar = { make: "Honda", model: "Accord", year: 1998 };
"make" in mycar; // åå³ true
"model" in mycar; // åå³ true
instanceof
instanceof
éç®å å¨ æå®ç©ä»¶ å
·æ æå®çç©ä»¶åæ
æåå³ trueã èªæ³æ¯:
ç©ä»¶å稱 instanceof ç©ä»¶é¡å
ç©ä»¶å稱
æ¯ç¨ä¾è ç©ä»¶é¡å æ¯è¼çç©ä»¶çååï¼ ç©ä»¶é¡å æ¯ç©ä»¶çé¡åï¼ ä¾å¦ Date
æ Array
ã
ç¶ä½ éè¦å¨ç¨å¼å·è¡ä¸ç¢ºèªç©ä»¶çå½¢æ
æï¼ä½ å¯ä»¥ä½¿ç¨ instanceof
éç®åã ä¾å¦ï¼ç¶ææå°ä¾å¤æï¼ ä½ å¯ä»¥ä¾ç
§ä¾å¤çé¡å便±ºå®ç¨ä¾èçæå¤çç¨å¼ç¢¼ã
ä¾å¦ï¼ä¸åç¨å¼ç¢¼ä½¿ç¨ instanceof
ä¾å¤æ·è®æ¸ theDay
æ¯ä¸æ¯ Date
é¡åçç©ä»¶ã å çº theDay
æ¯ Date
é¡åçç©ä»¶ï¼ æä»¥ if é³è¿°ä¸çé³è¿°å¥æè¢«å·è¡ã
var theDay = new Date(1995, 12, 17);
if (theDay instanceof Date) {
// æè¢«å·è¡çé³è¿°
}
éç®ååªå
ç´
éç®ååªå ç´æ±ºå®éç®åè¢«ä½¿ç¨æ¼éç®å çå å¾é åºã ä½ ä¹å¯ä»¥ä½¿ç¨æ¬èä¾å¼·å¶æå®åªå ç´ã
ä¸åè¡¨æ ¼ååºäºéç®åçåªå ç´ï¼ å¾é«å°ä½ã
éç®åé¡å 屬æ¼è©²é¡å¥çéç®å æå¡. []
å¼å«/å»ºç« å¯¦ä¾ () new
åå/å¢å ! ~ - + ++ -- typeof void delete
乿³/餿³ * / %
å æ³/æ¸æ³ + -
ä½å
ç§»å << >> >>>
éä¿éç®å < <= > >= in instanceof
ç¸çæ§ == != === !==
ä½å
and &
ä½å
xor ^
ä½å
or |
é輯 and &&
é輯 or ||
æ¢ä»¶éç®å ?:
æå®éç®å = += -= *= /= %= <<= >>= >>>= &= ^= |=
éé»éç®å ,
éåè¡¨æ ¼æ´è©³ç´°ççæ¬ï¼è§£éäºéç®åçæ´å¤ç´°ç¯åéè¯æ§ï¼ å¯ä»¥å¨ JavaScript åè ä¸è¢«æ¾å°ã
éç®å¼éç®å¼æ¯ä»»ä½ä¸æ®µå¯ä»¥åå¾ä¸åå¼çç¨å¼ç¢¼ã
ä»»ä½åä¹èªæ³çéç®å¼é½è½åå¾ä¸åå¼ï¼æ¦å¿µä¸ï¼ æå ©ç¨®ä¸ååæ çéç®å¼: æå¯ä½ç¨ç (ä¾å¦: å°ä¸å弿å®çµ¦ä¸åè®æ¸) 以ååªçºäºåå¾å¼èè§£æçéç®å¼ã
éç®å¼ x = 7
æ¯ä¸è¿°ç第ä¸ç¨®é¡åãéåä½¿ç¨ = éç®åçéç®å¼æå°æ¸å¼ 7 賦è給 xã éç®å¼æ¬èº«ä¹æè¢«è§£æçº 7ã
éç®å¼ 3 + 4
æ¯ä¸è¿°ç第äºç¨®é¡åãéåéç®å¼ä½¿ç¨ + éç®åæ 3 å 4 å èµ·ä¾ï¼è䏿å®çµ¦ä»»ä½è®æ¸ã
JavaScript éç®å¼æä¸å幾種種é¡:
JavaScript åºæ¬çééµååéç®å¼ã
this
this
ééµå è½åå¾ç¶åæå¨ç©ä»¶ã ä¸è¬èè¨ï¼ this
è½åå¾å¼å«èæå¨çç©ä»¶ã ä½ å¯ä»¥ä½¿ç¨ é» ææ¯ 䏿¬è ä¾åç¨è©²ç©ä»¶ä¸çç¹æ§:
this['ç¹æ§å稱'] this.ç¹æ§å稱
以ä¸å®ç¾©ä¸åå«å validate
çå½å¼ï¼æ¯è¼ç©ä»¶ä¸ç¹æ§ value èå³å
¥çå
©è®æ¸
:
function validate(obj, lowval, hival) {
if (obj.value < lowval || obj.value > hival) console.log("ä¸å¯ç¨çå¼!");
}
ä½ å¯ä»¥å¨è¡¨å®ç onChange
event handler ä¸å¼å« validate
å½å¼ï¼ 並以 this
ä¾å³å
¥è¡¨å®çå
ç´ ï¼ ç¯ä¾å¦ä¸:
<p>è«è¼¸å
¥ä¸ä»æ¼18 è 99 çæ¸å:</p>
<input type="text" name="age" size="3" onChange="validate(this, 18, 99);" />
åçµéç®å
åçµéç®å ( )
æ§å¶äºéç®åçåªå
é åºã ä¾å¦ï¼ä½ å¯ä»¥è¦å¯«å
ä¹é¤ï¼å¾å æ¸çåªå
é åºï¼ä½¿å
¶è®æå
å æ¸ï¼å¾ä¹é¤ã
var a = 1;
var b = 2;
var c = 3;
// é è¨éç®ç´
a + b * c; // 7
// é è¨ççµæ
a +
(b * c)(
// 7
// ç¾å¨è¤å¯«éç®ç´
// è®æå
é²è¡å æ³ï¼å¾ä¹æ³äº
a + b,
) *
c; // 9
// çµæ
a * c + b * c; // 9
è§£æ
è§£ææ¯ JavaScript ä¸çä¸å坦驿§åè½ï¼ 卿ªä¾çæ¬ç ECMAScript è¨ç«è¢«å°å ¥ãæå ©ç¨®ä¸åé¡åçè§£æ:
[for (x of y) x]
é£åè§£æã
(for (x of y) y)
ç¢çå¨è§£æã
è§£æå¨è¨±å¤ç¨å¼èªè¨ä¸é½åå¨ï¼å è¨±ä½ å¿«éå°åºæ¼ç¾åé£åç¢çæ°çé£åï¼ä¾å¦:
[for (i of [ 1, 2, 3 ]) i*i ];
// [ 1, 4, 9 ]
var abc = [ 'A', 'B', 'C' ];
[for (letters of abc) letters.toLowerCase()];
// [ 'a', 'b', 'c' ]
å·¦å´éç®å¼
左崿¯æå®å¼çå°è±¡ã
new
ä½ å¯ä»¥ä½¿ç¨ new
éç®å ä¾å»ºç«ä¸å使ç¨è
èªå®ç¾©ç©ä»¶æå
§å»ºç©ä»¶ç實ä¾ã ç¨æ³å¦ä¸:
var ç©ä»¶å稱 = new ç©ä»¶åæ
([忏1, 忏2, ..., 忏N]);
super
super ééµåç¨æ¼å¼å«ç©ä»¶çç¶ç©ä»¶ä¸çå½å¼ãå¨ä½¿ç¨é¡å¥ä¾å¼å«ç¶é¡å¥ç建æ§åæå¾å¯¦ç¨ï¼ä¾å¦:
super([忏]); // å¼å«ç¶ç©ä»¶ç建æ§å. super.ç¶ç©ä»¶çå½å¼([忏]);å±ééç®å
å±ééç®åè½å°éç®å¼å±éæ¼éè¦å¤å忏çå°æ¹ï¼å¦å½å¼å¼å«ï¼ææ¯éè¦å¤åå ç´ ï¼å¦é£åå串常æ¸ï¼çå°æ¹ã
ç¯ä¾ï¼ç¾å¨ä½ æ³è¦ç¨å·²åå¨çä¸åé£ååçºæ°çä¸åé£åçä¸é¨ä»½ï¼ç¶å串常æ¸ä¸åå¯ç¨èä½ å¿
é ä½¿ç¨æä»¤å¼ç·¨ç¨ï¼ä¹å°±æ¯ä½¿ç¨ï¼ä¸é£ä¸²ç push
ãsplice
ãconcat
ï¼ççãå±ééç®åè½è®éç¨è®å¾æ´å ç°¡æ½:
var parts = ["è©è", "èè"];
var lyrics = ["é ", ...parts, "å", "è
³è¶¾"];
ç¸åçï¼å±ééç®åä¹é©ç¨æ¼å½å¼å¼å«:
function f(x, y, z) {}
var args = [0, 1, 2];
f(...忏);
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4