即使JS(javascript,以下我們簡稱JS)是一種弱類型編程語言(相對于C,C#,JAVA而言)梢莽。但它仍舊是一種編程語言。既然是編程語言奸披,那么就存在語法規(guī)則昏名。下面我們來簡單了解一下JS的語法規(guī)則。
標(biāo)識符
所謂標(biāo)識符是指變量阵面、函數(shù)轻局、屬性的名字,或者函數(shù)的參數(shù)样刷。標(biāo)識符的書寫有幾個特征
- 區(qū)分大小寫
- 第一個字符必須是字母仑扑、下劃線(_)、或者是$
- 后面的可以是字母置鼻、數(shù)字镇饮、下劃線、$
變量使用名詞箕母,方法函數(shù)使用動詞開頭储藐,常量全部用大寫字母,函數(shù)創(chuàng)建對象首字母大寫 , 當(dāng)然得使用駝峰命名法嘶是。
注釋
// 單行注釋
/**/ 多行注釋
變量提升
JavaScript引擎的工作方式是钙勃,先解析代碼,獲取所有被聲明的變量聂喇,然后再一行一行地運行辖源。這造成的結(jié)果,就是所有的變量的聲明語句,都會被提升到代碼的頭部同木,這就叫做變量提升
console.log(ee);var ee = 124;//undefined
console.log(ff);// Uncaught ReferenceError: xxx is not defined
數(shù)據(jù)類型
- 簡單類型 Null UnDefined Number String Boolean
- 復(fù)合類型 Object (數(shù)組也屬于對象)
Null 一般用于釋放內(nèi)存空間
Undefined 表示變量只被聲明浮梢,沒有被初始化
NaN 表示這不是一個數(shù)字(Not a Number) 但它屬于Number類型
Boolean 只有true 和 false 兩個值
Number 包括其他編程語言定義中的整型和浮點型
1.var a = 10 // 十進制
2.var b = 083 // 八進制
3.var c = 0x76 // 十六進制
數(shù)值范圍
Number.Min_Value
Number.Max_Value
isFinite() 判斷是否數(shù)值是無窮大
如果 number 是有限數(shù)字(或可轉(zhuǎn)換為有限數(shù)字),那么返回 true彤路。否則秕硝,如果 number 是 NaN(非數(shù)字),或者是正洲尊、負(fù)無窮大的數(shù)远豺,則返回 false。
數(shù)值轉(zhuǎn)換
Number()
ParseInt()
ParseFloat()
1.忽略字符串前面的空白字符坞嘀,找到第一個非空白字符
2.如果第一個字符不是-或者數(shù)字返回NaN
3.如果是繼續(xù)解析躯护,直到非數(shù)值模式為止
4.0開頭會當(dāng)做八進制,0x開頭會當(dāng)做十六進制丽涩,但是可以指定第二個參數(shù)指定基數(shù)
String
字符串的長度可以通過length屬性獲得
indexOf:獲取字符位置
toLowerCase:轉(zhuǎn)換為小寫棺滞,toUpperCase:轉(zhuǎn)換為大寫
trim:刪除兩端空白字符(IE9+)
replace:字符串替換
"abc".replace('b', 'B'); // "aBc"
split:分割字符串位數(shù)組
"a,bc,d,e".split(','); // [a, bc, d, e]
substr(start, length):獲取子字符串
"abcdef".substr(2,3); // "cde"
substring(start, end):獲取子字符串
"abcdef".substring(2,3); // "c"
Object
對象的兩種定義方式 如下:
var o = new Object();
o.name = 'Byron';
o.age = 24;
var o = {
name: 'Byron',
age:24
}
一般我們使用第二種方式聲明對象
對象的讀取
object的屬性讀取有兩種方式
o.name;
o['name'];
typeof 和 instanceof
typeof
typeof 是一個一元運算,放在一個運算數(shù)之前矢渊,運算數(shù)可以是任意類型继准。
instanceof
用于判斷一個變量是否某個對象的實例.
以上資源來源于饑人谷課件