javascript基本概念

這篇筆記簡單總結了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中函數沒有重載。假如定義了兩個名字一樣的函數,則該名字屬於後定義的函數。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章