這篇筆記簡單總結了javascript中的一些基本概念,作爲後面學習的基礎。
語法
區分大小寫
Javascript中的一切都是區分大小寫的。
標識符
標識符是指變量、函數、屬性或者函數參數的名字。它以字母、下劃線或美元符號開頭,後面跟字母、下劃線、美元符號或者數字。通常建議採用駝峯大小寫的格式。
註釋
1.單行註釋
//code...
2.塊級註釋
/*
code...
*/
語句
在javascript中,語句是一封號結尾的。雖然封號不是必須的,但建議每條語句的結束都不要省略封號。
變量
javascript中的變量是鬆散型的,可以用來存儲任何值。但是不建議修改變量所保存的類型值。即原本一個變量是數值型的,比建議將其修改存儲字符串。
用var聲明的變量是局部變量。
數據類型
基本數據類型:Undefined、Null、Boolean、Number和String。
複雜數據類型:Object
使用typeOf操作可檢測給定變量的數據類型。
Undefined類型
這個類型的值只有一個,即undefined。
聲明一個變量但爲對其進行初始化時,該變量的值就是undefined。
注意:對爲初始化和未聲明的變量執行typeOf操作,都將返回undefined。但是不能對未聲明的變量進行任何操作,會報錯。
Null類型
這個類型的值也只有一個,即null.
null表示一個空對象的指針。所以,對null執行typeOf操作,將返回"object"。
當一個變量有意要用於保存對象時,最好將該變量初始化爲null.
Boolean類型
該類型有兩個值:true和false
其他類型都可以相應轉換爲Boolean類型。
Number類型
十進制:如10;
八進制:第一位是0,後面跟0~7的數字序列;
十六進制:以0x開頭,後面跟0~9及a~f(A~F)的十六進制數;
浮點數:包含一個小數點,且小數點後面必須至少有一位數字。如果小數點後面沒有數字或者數字爲0,那麼會被自動轉換爲整數;
科學計數法:前面是一個數值,中間是一個e(或E),最後是10的冪中的指數。例如:3e10,它表示3乘以10的10次方;3e-8,它表示3乘以10的-8次方。
isFinite()函數可以用來檢查傳入的參數是否是有窮的,如果是則返回true。
NaN
NaN表示一個本來要返回數值的操作卻沒有返回數值的情況。
任何涉及NaN的操作都會返回NaN;
NaN與任何值都不相等,包括其自身。
isNaN()函數可用來檢測傳入的參數是否“不是數值”。
object類型
對象可以通過執行new操作符後跟要創建的對象類型的名稱來創建。
每個對象都有的屬性和方法:
1.constructor:表示對象的構造函數,即用於創建當前對象的函數。
2.hasOwnProperty(propertyName):用於檢查傳入的參數是否是當前對象實例的屬性。
3.isPrototypeOf(object):用於檢測傳入的對象是否是對象的原型。
4.propertyIsEnumerable(propertyName):用於檢查傳入的參數是否能用for-in語句來枚舉。
5.toLocaleString()
6.toString()
7.valueOf()
操作符
一元操作符
1.遞增遞減
前置性遞增遞減:變量的值是在語句被求值前改變的;
後置型遞增遞減:變量的值是在語句被求值後改變的。
不管是前置性還是後置型的遞增遞減操作,對任何值都適用。
2.一元加和一元減
一元加放在數值面前不會產生任何影響。放在非數值前,會像Number()一樣對操作數進行轉換。
一元減放在數值前將返回操作數的負數。放在非數值前,將會遵循同一元加一樣的規則,然後再返回其負數。
位操作符
無符號整數:32位都用來表示整數的值;
有符號整數:第32位用來表示符號位,其中1表示負數、0表示正數。其餘31位用來表示整數的值。
1.按位非(~)
返回數值的反碼。實質是,其結果是操作數的負值減1.
2.按位與(&)
有兩個操作數,將兩個操作數每一位都對其,按照下面的規則求值:
只有當兩個操作數對應位都是1時才返回1,其他任何情況都返回0.
3.按位或(|)
有兩個操作數,將兩個操作數每一位都對其,按照下面的規則求值:
只有當兩個操作數對應位都是0時才返回0,其他任何情況都將返回1.
4.按位異或(^)
有兩個操作數,將兩個操作數每一位都對其,按照下面的規則求值:
只有當兩個操作數不相同時才返回1,相同的情況返回0.
5.左移(<<)
將數值所有位同時向左移動指定位數,空出的位置以0填充。
左移不會影響操作數符號位。
6.有符號右移(>>)
保留符號位,其他位同時向右移動指定位數。空出的位置,填充與符號位相同的值。
7.無符號右移(>>>)
所有32位都同時向右移動指定位數。空出的位置以0填充。
布爾操作符
1.邏輯非(!)
該操作會將操作數先轉換爲布爾值,然後再對其求反。
對操作數使用兩次邏輯非操作,將求得操作數的布爾值。
2.邏輯與(&&)
該操作是短路操作,即如果第一個操作數是false,則不會再去計算第二個操作數。
3.邏輯或(||)
該操作也是短路操作,即如果第一個操作數是true,則不會再去計算第二個操作數。
乘性操作符
乘性操作符有乘法(*)、除法(/)和求模(%)。
參與乘性計算的操作數若不是數值,後臺會先使用Number()轉型函數將其轉換爲數值,然後進行數值的乘、除、求模。
加性操作符
加性操作符有加法和減法。
加法操作中,如果有一個操作數是字符串時會有如下特性:
1.如果兩個操作數都是字符串,則將兩個操作數拼接起來;
2.如果只有一個操作數是字符串,則將另一個操作數轉換爲字符串,再將兩個操作數拼接起來。
關係操作符
關係操作符有:小於(<)、大於(>)、小於等於(<=)、大於等於(>=).
在比較字符串時,是比較兩個字符串中對應位置的字符編碼值。
在比較數值於字符串時,字符串都會被轉換爲數值,然後再進行數值的比較;如果字符串不能被轉換爲數值,那麼它會被轉換爲NaN,NaN與任何值比較都將返回false。
相等操作符
1.相等操作符(==)
參與相等操作的兩個操作數都會先進行類型轉換,然後再進行比較他們的相等性。
null和undefined是相等的。
2.全等操作符(===)
全等操作不會對操作數進行類型轉換。只有當兩個操作數的數據類型和值完全相等時,該操作才返回true。
null不全等於undefined。
函數
1.javascript不需要指定函數的返回值,因爲它在任何時候都可以返回任何值。未指定返回值的函數將返回undefined。
2.javascript函數的參數可以用arguments對象表示。arguments對象的長度是由傳入的參數的個數決定的。
3.沒有傳入值的命名參數的值爲undefined。
4.javascript中函數沒有重載。假如定義了兩個名字一樣的函數,則該名字屬於後定義的函數。