1. 命名
- 變量必須以英文字母、_ 或者&開頭
- 變量可以包括英文字母、數(shù)字、$、_
- 不可以用系統(tǒng)的關(guān)鍵字(如var)、保留字
2. 值類型——數(shù)據(jù)類型
- 原始值(存入stack,棧)(棧:first in, last out)
Number:var = 1;
Boolean: var c = false; var d = true;
String: var b = 'abc'; (雙引或單引)
Undefined: var e = undefined; (如果沒有給e賦值,打印e就會(huì)顯示undefined)
Null:f = null; (占位值,空值) - 引用值(存入heap,堆)
array: var arr = [1, 2, 3, false, 'abc']
object
function
date
RegExp
3.錯(cuò)誤
1.低級(jí)錯(cuò)誤(句法錯(cuò)誤,會(huì)導(dǎo)致程序完全不可執(zhí)行)
var a = 10; document.write(a) : var b = 20; document.write(b);
2.邏輯錯(cuò)誤(標(biāo)準(zhǔn)錯(cuò)誤,情有可原)
var a = 10; document.write(a); document.write(b); document.write('20');
執(zhí)行到第三行代碼,程序會(huì)出錯(cuò),不會(huì)再繼續(xù)進(jìn)行第四行
一個(gè)script代碼塊里的錯(cuò)誤不會(huì)影響另外一個(gè)script代碼塊的執(zhí)行
4. 運(yùn)算操作符
- '+'
*可用于數(shù)學(xué)運(yùn)算、字符串連接
*任何類型的數(shù)據(jù)+字符串都會(huì)等于一個(gè)字符串 - '%'取模(取除法后的余數(shù))
- '++'
var a = 10; a = a + 1;
相當(dāng)于:
var a = 10; a++;
a++給原來a變量加1,在賦值給a
'--'和 '++'同理;
'++'若放在變量前面,則先執(zhí)行'++'運(yùn)算(先用++給變量賦新值,再執(zhí)行本行語句);若放到變量后面,則后執(zhí)行'++'運(yùn)算(先不改變變量的值,而是先執(zhí)行本行,再賦新值給變量,再執(zhí)行下一句)
var a = 10; document.write(a++); document.write(a);
輸出為:
1011
(會(huì)先打印a,再重新給a賦值;之后第三行在打印a的新值)
var a = 10; document.write(++a); document.write(a);
輸出為:
1111
eg.:
var a = 10; var b = ++a - 1 + a++; document.write(b + " " + a)
輸出為:
21 12
工作原理:
第一行:++a將a變?yōu)?1,之后的‘a(chǎn)++’中的a已經(jīng)變?yōu)?1;
第二行:再進(jìn)行之后的‘++’運(yùn)算,‘a(chǎn)++’變?yōu)?2;
賦值的順序自右向左;計(jì)算的順序自左向右。
- +=符號(hào)
var a = 10; a = a + 10;
相當(dāng)于
var a = 10; a += 10;
同理:
var a = 10; a += 10 + 1;
相當(dāng)于
var a = 10; a = a + 10 + 1;
相似的有+=, -=, *=, /=, %=
a = 1;
a %= 10; 這一行的意思是把a(bǔ)%10的值賦值給a