這篇是講JavaScript的基礎(chǔ)的一些小雜項知識點票腰。
JavaScript里有個叫標(biāo)識符的概念城看,標(biāo)識符是指變量、函數(shù)杏慰、屬性的名字测柠,或者函數(shù)的參數(shù)。
01.標(biāo)識符的命名規(guī)范
- 以字母缘滥、下劃線轰胁、或美元($)符號開頭。
- 由字母朝扼、下劃線软吐、美元符號或數(shù)字組成。
- 不能使用JS的關(guān)鍵字或保留字吟税,如果發(fā)現(xiàn)滿足上述兩個條件凹耙,但是卻報錯了,很可能是這第三條沖突了肠仪。
那么JS的關(guān)鍵字有哪些呢肖抱?看下面的兩張表格,在命名的時候千萬不能用這表格里的名字給標(biāo)識符命名异旧。
break | do | instanceof | typeof |
---|---|---|---|
case | else | new | var |
catch | finally | return | void |
continue | for | switch | while |
debugger | function | this | with |
default | if | throw | delete |
in | try |
保留字有這些意述。
abstract | enum | int | short |
---|---|---|---|
boolean | export | interface | static |
byte | extends | long | super |
Char | final | native | synchronized |
Class | float | package | throws |
Const | goto | private | transient |
debugger | implements | protected | volatile |
double | import | public |
02.JS語法中標(biāo)識符是區(qū)分大小寫的。
這也就是說變量名test和變量名Test是分別代表兩個不同的變量吮蛹。
03.JS中特殊值
- NaN:表示不是一個數(shù)字荤崇。這個數(shù)值用于表示一個本來要返回數(shù)值的操作數(shù)未返回數(shù)值的情況。NaN有兩個非同尋常的特點:首先潮针,任何涉及NaN的操作(例如NaN/10)都會返回NaN术荤;其次,NaN與任何值都不相等每篷,包括NaN本身瓣戚。為此ECMAScript定義了isNaN()函數(shù)來幫我們確定括號中傳的參數(shù)是否“不是數(shù)值”。這個函數(shù)返回布爾值焦读,true表示非數(shù)值子库,false表示是數(shù)值。
- Infinity:number類型的無限矗晃。
- Null:一般應(yīng)用場景就是表示空對象仑嗅,即對象不存在。從邏輯上來講张症,null值表示一個空對象的指針仓技。這也是為什么用typeof檢測的時候,它會返回“object”的原因吠冤。
- Undefined:出現(xiàn)場景有兩個浑彰,一是已聲明未賦值的變量,二獲取對象不存在的屬性時拯辙。
04.JS的注釋和CSS一樣
JS的注釋和CSS一樣郭变,有單行注釋和多行注釋。
//單行注釋
/*
多行注釋
*/
05.用typeof操作符判斷檢測給定變量的數(shù)據(jù)類型
用法如下面這樣:
var num;
typeof num;//undefined
var message="some string";
alert(typeof message);//"string"
對一個值使用typeof操作符可能會返回下列某個字符串:
- “undefined”:表示這個值未定義涯保;
- “boolean”:表示這個值是布爾值诉濒;
- “string”:表示這個值是字符串;
- “number”:表示這個值是數(shù)值夕春;
- “object”:表示這個值是對象或null未荒;
- “function”:表示這個值是函數(shù);
06.JS的語法
JavaScript所提供的語句語法分為以下幾大類:
(1)變量聲明及志,賦值語句:var片排。
語法如下:
var 變量名稱 [=初始值]
例:var computer = 32 //定義computer是一個變量寨腔,且有初值為32。
( 2)函數(shù)定義語句:function率寡,return迫卢。
語法如下:
function 函數(shù)名稱 (函數(shù)所帶的參數(shù)){
函數(shù)執(zhí)行部分
return 表達(dá)式 //return語句指明將返回的值∫惫玻
}
例:function square ( x ) {
return x*x;
}
(3)條件和分支語句:if...else乾蛤,switch。
if...else語句完成了程序流程塊中分支功能:如果其中的條件成立捅僵,則程序執(zhí)行緊接著條件的語句或語句塊家卖;否則程序執(zhí)行else中的語句或語句塊。
語法如下:
if (條件) {
執(zhí)行語句1
}else{
執(zhí)行語句2
}
例:
if (result == true) {
response = “你答對了庙楚!” ;
}else{
response = “你錯了上荡!”;
}
分支語句switch可以根據(jù)一個變量的不同取值采取不同的處理方法。
語法如下:
switch (表達(dá)式) {
case 條件1:
語句段1醋奠;
case 條件2:
語句段2榛臼;
case 條件3:
語句段3;
...
default:
語句段3窜司;
}
例如:
var _param1=60;
switch(_param1){
case 60:
window.alert("及格沛善!");
break;
case 80:
window.alert("良好!");
break;
case 90:
window.alert("優(yōu)秀塞祈!");
break;
case 100:
window.alert("滿分金刁!");
break;
default:
window.alert("沒有分?jǐn)?shù)!");
break;
}
如果表達(dá)式取的值同程序中提供的任何一條語句都不匹配议薪,將執(zhí)行default中的語句尤蛮。
(4)循環(huán)語句:for, for...in斯议,while,break,continue产捞。
1、for語句的語法如下:
for (初始化部分哼御;條件部分坯临;更新部分){
執(zhí)行代碼段部分...
}
例如:
var sum=0;
for(var i=1;i<51;i++){
sum +=i;
}
alert(sum);//1275
只要循環(huán)的條件成立,循環(huán)體就被反復(fù)的執(zhí)行恋昼。
2看靠、for...in語句與for語句有一點不同,它循環(huán)的范圍是一個對象所有的屬性或是一個數(shù)組的所有元素液肌。
for...in語句的語法如下:
for (變量 in 對象或數(shù)組) {
語句...
}
例如:
//創(chuàng)建具有某些屬性的對象
var myObject=new Object();
myObject.name="張三";
myObject.age="22";
myObject.phone="65658888"
//循環(huán)枚舉對象的所有屬性
for(prop in myObject){
//顯示所有屬性
window.alert("屬性"+prop+"的值為"+myObject[prop]);
}
3.while語句所控制的循環(huán)不斷的測試條件挟炬,如果條件始終成立,則一直循環(huán),直到條件不再成立谤祖。
語法如下:
while (條件) {
執(zhí)行語句...
}
例如:
var i=0;
while(i<10){
i+=2;
}
4.break語句結(jié)束當(dāng)前的各種循環(huán)婿滓,并執(zhí)行循環(huán)的下一條語句。continue語句結(jié)束當(dāng)前的循環(huán)泊脐,并馬上開始下一個循環(huán)空幻。
(5)對象操作語句:with,new容客,this。
1约郁、with語句
with語句的語法如下:
with (對象名稱){
執(zhí)行語句
}
with語句的例子是這樣的
var qs=location.search.substring(1);
var hostName=location.hostname;
var url=location.href;
上面的幾行代碼都包含location對象缩挑,如果使用with語句,可以把上面的代碼改寫成:
with(location){
var qs=search.substring(1);
var hostName=hostname;
var url=href;
}
作用是這樣的:如果你想使用某個對象的許多屬性或方法時鬓梅,只要在with語句的()中寫出這個對象的名稱供置,然后在下面的執(zhí)行語句中直接寫這個對象的屬性名或方法名就可以了。
2绽快、new語句是一種對象構(gòu)造器芥丧,可以用new語句來定義一個新對象。
語法是這樣的:
新對象名稱= new 真正的對象名
譬如說坊罢,我們可以這樣定義一個新的日期對象:
var curr= new Date()
然后续担,變量curr就具有了Date對象的屬性。
3活孩、this運算符總是指向當(dāng)前的對象物遇。