「前端架構師30天快速掌握js06」之變數知識點詳解
此篇文章講解目錄:
變數的命名
變數的聲明
變數的類型
全局變數和局部變數
註釋
變數的命名
命名規則
變數名是由數字、字母、下劃線組成的,其中字母里大小寫字母均可;
變數名首位不是能數字,可以是字母下劃線;首位后的位置可以是數字,字母,下劃線;
不能使用關鍵字和保留字作為變數的名字(需要避開的名字);
關於關鍵字和保留字,這個可以拿生活中的現象舉例子,大人給小孩起名字的時候,小孩的名字一定不能和他父親母親的名字一樣;當然也不能和爺爺,奶奶,外公,外婆,舅舅,姑姑等等這些名字一樣;這個就是現實中約定俗成的規則;
在JS中,也有些單詞是有特殊意義的,或者是為了以後語言升級做準備的;而這些單詞就不能作為變數名;比如前面接觸的typeof,function;這樣的單詞就不能作為變數名;
Advertisements
變數區分大小寫,test和Test是不一樣的,必須嚴格一樣,才算是一個變數的;(在javascript里,onclick必須要寫出onclick,不能寫成onClick;)
常見的命名規則
「-」連接符方法;
比如給我桌子上門鑰匙命名;my-room-door-key 和 my_room_door_key;
這種方法用」-」和下劃線"_"連接符來鏈接單詞,區別是下劃線在選擇變數的時候,滑鼠雙擊可以全部選擇;
駝峰命名法;這種命名方法有兩種方式
大駝峰:每個單詞的首字母大寫;MyRoomDoorKey
小駝峰:第一個字母小寫,其它字母大寫;myRoomDoorKey
匈牙利命名法;變數由類型+對象描述組成;
對象(Object)用o表示;
Advertisements
函數(function)用fn表示;
數組(array)用a表示;
變數的聲明
變數通過var來聲明,避免一些不必要的錯誤,防止出現莫名其妙的錯誤
重複聲明;
不聲明直接賦值
不要更改變數的類型,開始是值類型,後面就不要改為數值或別的別的了,開始如果用來儲存某個屬性值,就不要再用在別的屬性上了;
需要讀寫的變數,讀寫前,一定要聲明;
需要運算的變數,運算器,一定要賦值;
書寫的時候,推薦把變數名放在頁面的上面(上部分)去聲明+定義;這樣不僅可以放心大膽的用,而且可以方便查找變數;
在任何情況下聲明變數都要用var先聲明;
變數的類型
變數分為值類型和引用類型:
值類型的特點
佔用空間固定,保存在棧中;
保存與複製都是值本身;
使用typeof檢測數據的類型;
基本數據類型是值類型;
引用類型的特點
佔用空間不固定,保存在堆中;
保存與複製的是指向對象的一個指針;
使用instanceof檢測數據的類型;
使用new()方法構造出的對象是引用型;
全局變數和局部變數
全局變數
有兩種方式可以產生全局變數
在函數體外定義的變數;
在函數體內部定義的無var的變數;
全局變數的用法:在任何位置都可以調用
直接調用變數名
通過window.varName 來調用
局部變數
局部變數有兩種類型;
在函數內部使用var聲明的變數;
函數的參數變數
局部變數的調用方法:
當前函數體內部;
變數名的優先順序
局部變數高於同名全局變數;
參數變數高於同名全局變數;
局部變數高於同名參數變數;
全部變數和局部變數的特性
忽略塊級作用域
全部變數是全局對象的屬性
局部變數是調用對象的屬性;
作用域鏈;
內層函數可訪問外層函數局部變數;
外層函數不能訪問內層函數局部變數;
生命周期
全局變數;除非被顯示刪除,否則一直存在;
局部變數:自聲明起至函數運行完畢或被顯示刪除;
回收機制:
標記清除
引用計數;
註釋
單行註釋是 : //註釋文字
多行註釋是