這是我學習JavaScript的第二篇文章,之前做過幾年的Java開發(fā),發(fā)現(xiàn)JavaScript雖然也是面向對象的語言但是確實有很多不同之處。就本篇博客,主要學習總結一下最近學習到的JavaScript的知識,其中有些是網(wǎng)絡上的,不過對于理解JavaScript,和在工作總是會很實用的,所以總結了下來:

那么就開始吧,首先是變量

在JavaScript中變量分為兩種:一種是基本類型,基本類型值在內存中占用固定大小的空間,因此被保存在棧內存中。從一個變量向另一個變量復制基本類型的值,會創(chuàng)建這個值的一個副本。另一種類型則是引用類型,引用類型的值是對象,保存在堆內存中,對象的引用保存在棧中。包含引用類型值的變量實際上包含的并不是對象本身,而是一個指向對象的指針,從一個變量向另一個變量復制引用類型的值,復制的是指針,最終指向同一個對象。

那么在實際的使用中要確定一個值是那種基本類型的可以使用typeof操作符,而確定一個值是哪種引用類型則需要使用instanceof 操作符。

基本數(shù)據(jù)類型:undefined、Null、boolean、number和String

引用類型:Object、Array、Date、RegExp、Function、基本包裝類型、單體內置對象(Gloabal、Math)。關于引用類型各個類型的詳細使用,下次再詳細描述。

JavaScript是面向對象的語言,同樣支持繼承,只是JavaScript支持實現(xiàn)繼承,不支持接口繼承。

JavaScript是一種非強類型的語言,不需要嚴格的如同Java、C等語言的聲明類型然后復制,也一定要賦值聲明類型的值。JavaScript有兩種值類型,所以涉及到兩個地方復制,一種就是復制變量值,另一個則是方法調用的時候存在參數(shù)傳遞賦值?;绢愋褪侵祻椭疲妙愋蛷椭剖菍ο蟮囊?。

 

作用域

js中沒有塊作用域的概念。在沒有var進行聲明則會生成為全局變量污染全局環(huán)境。所以在實際的使用過程中,一定要記得var,