基礎篇:8.如何定義變量?js變量有什么特點?


書接上文,廢話不多說,直接進入正題,下面我們一起來討論js中的變量那些事!

那什么是變量?

變量是存儲信息的容器,可以存儲任何類型的數據。

如何定義變量呢?

變量可以使用短名稱,如x,y;也可以是長名稱,如information,construction;但是定義變量也是有要求的,變量的首字母必須是由字母(a-zA-Z)或下划線(_)或美元符($)開頭,不能是數字,

后面的可以是字母(a-zA-Z)或下划線(_)或美元符($)或者是數字,並且是區分大小寫的,如:name和Name是不同的2個變量;

定義變量有多種方法,我們一一來看:

var name;

這里只是申明了一個變量name,因為沒給這個變量賦值,所以他的值為“undefined”,表示無初始值;

var name = "tony";
var age = 27;
var girlFriend = false;
var fn = function(){};

這里定義了多個變量,name表示名字,值為“tony”,數據類型為字符串;age表示年齡,值為27,數據類型為number;girlFriend表示女盆友,值為否,數據類型為布爾值;

fn表示一個方法,值為一個函數,數據類型為對象(數據類型是后面要講的東西,現在先拿出來,要是有不懂的,可以先放放,看看后面的數據類型篇,在看這里);

也就是說,變量是可以存放多種類型的,可以是字符串,數字,布爾值,對象等等,也可以是undefined。

你覺得就這樣就完了嗎?哈哈,才怪呢,如果變量只能做這點事,那真是屈才了

var obj = {"name":"tony","age":27,"girlFriend":false};

看看這個定義的obj變量,此時是一個擁有多個值的對象

 

看到這里,你是不是覺得感覺又像是掉進了課本里面的知識介紹,干巴巴,從上面描述到下面,馬上要講什么是局部變量,什么是全局變量,然后把局部變量是什么,全局變量是什么一擺,完事,這樣真的好嗎?不懂的還是不懂,浪費時間,怎么才能讓初學者能夠理解呢,這是我要思考的問題。

講肯定是要講,但不能像上面那么講了,下面我們就來換一個畫風!

標題上說,如何定義變量?我覺得首先要解決的是,什么是變量,先要弄懂這個東東是做什么用的,才好進行下一步,那什么是變量呢?

w3school上面的解釋:變量是存儲信息的容器。

JavaScript權威指南上面的解釋:變量是一個和數值相關的名字。我們說變量“存儲”了或“包含”了那個值。(尼瑪,這是什么鬼解釋)

JavaScript入門經典上的解釋:變量是保存在內存的數據

貌似解釋都好生硬,那我給一個並不權威的解釋,只是為了理解:

變量就是一個貼着一個便簽的盒子,便簽上的名字就是這個變量的名字,盒子里面是什么東西,我不知道,可能是任何什么東西,也可能是空的,就看你放什么進去了(腦補一下,一個貼着標簽的盒子,就是一個變量)

如果這么理解變量的話,那定義變量,簡單來說就是貼標簽了,那第一個知識點就來了,怎么來貼標簽?

俗話說:無規矩不成方圓,凡是都有規矩,貼標簽也一樣

好像上面的這個比喻也不是很恰當,因為變量不是一個固定的值,它隨時都可能會變的,有時候不需要你去放東西就能自己變,所以黑盒子感覺也嚴謹,那重新給一個定義:

變量就是一個用來表示一個變數的東西,即它是一個變化的數據。比如說time時間,今天是11月5日,明天就是11月6日,它就是存儲這個時間這個數據的一個東西,恩,就這樣,不糾結了。

 

首先你這個標簽名字要按照格式來變量名必須以字母,下划線,美元符($)開頭,而且是嚴格區分大小寫的(即name 和Name是2個變量),不能以數字開頭,后面的就可以用任何字符(當然這里要強調的是,理論上是可以用任何字符,但是不推薦用特殊字符,因為要保證變量名的語義化,要有意義,你給一個n$%^32#這樣的名字,鬼都不認識);那這里有涉及到了變量名的命名規范問題,這個在上篇已經講解,如果有不清楚的,可以看這里

其實就是申明變量了,通過var 關鍵字來申明一個變量,比如我們要申明一個表示名字的變量:

var name;
var name = "lingyun";

也可以不用var關鍵字來申明變量,不通過var申明的變量就隱式變量,又叫全局變量:

name;
name = 'lingyun';

咦,你這上面一會要用var關鍵字定義,一會又可以不用var關鍵字就可以定,這不是矛盾嗎?還有你定義的關鍵字有的是有值的,有的又是沒有值的,這是幾個意思啊?

呵呵,這就牽扯出了2個很重要的知識點:全局變量與局部變量的關系,null與undefined之間的區別;好吧,把妖怪引出來了,不打打怪,怎么對的起觀眾呢,下面就對這2個知識點詳細講解一下:

我去,一不小心點了發布了,還沒寫完呢,本來想點草稿箱的,不能取消,汗,今天暫時就寫這么多吧!

未完待續。。。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM