溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript中變量和作用域是怎樣的

發布時間:2021-09-30 15:59:52 來源:億速云 閱讀:151 作者:柒染 欄目:web開發

這期內容當中小編將會給大家帶來有關JavaScript中變量和作用域,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

 JavaScript的變量與其他語言的變量有很大區別。JavaScript變量不是強制類型的,決定了它只是在特定時間用于保存特定值的一個名字而已。由于不存在定義某個變量必須要保存何種數據類型值的規則,變量的值及其數據類型可以在腳本的生命周期內改變。

  變量及作用域

  1.基本類型和引用類型的值

  常見的兩種不同數據類型的值:基本類型值和引用類型值?;绢愋椭抵傅氖悄切┍4嬖跅却嬷械暮唵螖祿?,即這種值完全保存在內存中的一個位置。而引用類型值則是指那些保存在堆內存中的對象,意思是變量中保存的實際上只是一個指針,這個指針指向內存中的另一個位置,該位置保存對象。

  將一個值賦給變量時,解析器必須確定這個值是基本類型值,還是引用類型值?;绢愋椭涤幸韵聨追N:Undefined、Null、Boolean、Number和String。這些類型在內存中分別占有固定大小的空間,他們的值保存在??臻g,我們通過按值來訪問的。

  如果賦值的是引用類型的值,則必須在堆內存中為這個值分配空間。由于這種值的大小不固定,因此不能把它們保存到棧內存中。但內存地址大小的固定的,因此可以將內存地址保存在棧內存中。這樣,當查詢引用類型的變量時,先從棧中讀取內存地址,然后再通過地址找到堆中的值。

  定義基本類型值和引用類型值的方式幾乎一致的:創建一個變量并為該變量賦值。不過,當這個值保存到變量中以后,對不同類型值可以執行的操作則大相徑庭。

var test = new Object();                                                 //創建引用類型

test.name = 'qf';                                                              //添加一個屬性

alert(test.name);                                                             //輸出

基本類型的值添加屬性,就會出現問題。

var test = 'qf';                                                                   //創建一個基本類型

test.age = 18;                                                                   //給基本類型添加屬性

alert(test.age);                                                                          //undefined     

復制變量值

在變量復制方面,基本類型和引用類型也有所不同?;绢愋蛷椭频氖侵当旧?,而引用類型復制的是地址。

var test = 'qf';                                                         

var test2 = test;               

檢測類型

要檢測一個變量的類型,我們可以通過typeof運算符來判別。

var test = 'qf';

alert(typeof (test));                                                         //string

上述就是小編為大家分享的JavaScript中變量和作用域了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女