javascript變數、範圍和記憶體問題......

來源:互聯網
上載者:User

標籤:

1基本類型是指那些儲存在棧記憶體的簡單資料區段,參考型別是指那些儲存在堆記憶體中的對象,變數中儲存的實際上只是一個指標。

2javascript中5種基礎資料型別 (Elementary Data Type)Undefined,Null,Boolean,Number和String

3事實上我們不能給基本類型的值添加屬性,儘管在javascript這樣做不會導致任何錯誤。

var name = "Angela";
name.age = 23;
alert(name.age);//undefined;

4ECMAScript中所有函數的參數都是按值傳遞的。

function setName(obj) {
obj.name = "Angela";
}
var person = new Object;
setName(person);
alert(person.name); //Angela
也就是雖然是值傳遞 但是obj事實是是person的一個副本 裡面儲存的是引用堆記憶體的一個指標
所以person和obj指向同一個對象

下面的例子可以更深刻的反應ECMAScript中所有函數的參數都是按值傳遞的

function setName(obj) {
obj.name = "Angela";
obj = new Object;
obj.name = "Yanlong";
}
var person = new Object;
setName(person);
alert(person.name); //Angela

5typeof操作符是確定一個變數是字串、數值、布爾值,還是undefined的最佳工具,如果變數的值是一個對象或者是null,則typeof操作符會返回object

6如果使用instanceof操作符檢測基本類型的值,則該操作符始終返回false,因為基本類型不是對象。如果檢測的類型為參考型別的執行個體,則返回true

7所有全域變數和函數都是作為window對象的屬性和方法建立的。

8每個函數都有自己的執行環境 ,當代碼在一個環境中執行時,會建立變數對象的一個範圍鏈

var obj = {};
alert(obj instanceof Object);//true

區別 Jquery對象和Dom對象

在討論之前,先約定好定義變數的風格。

如果擷取的對象是jQuery對象,那麼在變數前加上$,例如:

var $variable = jQuery對象;

如果擷取的是DOM對象,則定義如下:

var variable = DOM對象;

 

jQuery對象不能使用DOM中的方法,但是如果對jQuery對象所提供的方法不熟悉,或者jQuery沒有封裝想要的方法,不得不實用DOM對象的時候,有以下兩種處理方法。jQuery提供了兩種方法將一個jQuery對象轉換成DOm對象,即[index]和get(index).

1、jQuery對象是一個數組對象,可以通過[index]的方法得到相應的DOM對象。

var $cr = $("#cr"); //jQuery對象var cr = $cr[0] //DOM對象alert(cr.checked) //檢測這個checkbox是否選中了

2、通過get(index)方法得到相應的DOM對象。

var $cr = $("#cr");var cr = $cr.get(0);alert(cr.checked);

對於一個DOM對象,只需要用$()把DOM對象封裝起來,就可以獲得一個jQuery對象了,方式為$(DOM對象)。

var cr = document.getElementByID("cr"); //DOM對象var $cr = $(cr);

 

在此總結說明:

jQuery方法裡的get方法事實上是獲得Dom元素($(this).get(0)與$(this)[0])

而jQuery方法裡的eq、first、last等方法都是返回的Jquery對象

DOM對象才能使用DOM中的方法,jQuery對象不可以使用DOM中的方法。jQuery對象提供了一套更加完善的工具用於操作DOM。

javascript變數、範圍和記憶體問題......

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.