天天看點

JavaScript學習之旅-3(原創)

在上一篇文章中,我們主要介紹了javaScript的基本文法、資料類型、數組,這一篇的内容我們主要學習JavaScript的變量、對象 變量 變量是存儲資訊的容器。當然,這是百度上面的解釋。我個人通俗的了解是(通過拆字來分析):變,說明這個物質在某一領域是可以變化、可以拓展的,但是變化的主動權需要有一定依據,你不能不受控制的變化(某一領域,我們可以了解為資料類型,主動權可以了解為代碼邏輯,使用者使用邏輯);量,在某一領域要遵循該領域定義的相對範圍之内,無休止的大或者小是不行的,否則計算機在區分資料類型的設計之初就沒有了任何意義(一定範圍,我們可以了解為資料類型對應的使用範圍),在計算機程式中,變量不僅可以是數字,還可以是任意資料類型。

變量設計規則:

A:變量必須以字母開頭

B:變量也能以 $ 和 _ 符号開頭(不過我們不推薦這麼做)

C:變量名稱對大小寫敏感(y 和 Y 是不同的變量)

變量在JavaScript中就是用一個變量名表示,變量名是大小寫英文、數字、$和_的組合,且不能用數字開頭。變量名也不能是JavaScript的關鍵字,如if、while等。申明一個變量用var語句,比如:

JavaScript學習之旅-3(原創)

基本變量

在JavaScript中,使用等号=對變量進行指派。可以把任意資料類型指派給變量,同一個變量可以反複指派,而且可以是不同類型的變量,但是要注意隻能用var申明一次,隻能用var申明一次,例如:

JavaScript學習之旅-3(原創)

隻能用var申明不同的資料類型

如上圖,我們的a變量給他指派的是一個數值類型,但當我們給a變量指派字元串類型的"我是字元串類型喲",alert居然顯示的是新指派的結果

如果是在JAVA中,這種寫法肯定不允許會直接報錯的,首先因為字元串和int的資料類型不同,而且兩者沒有直接繼承關系。但是在JS中,允許使用var進行這樣的跨資料類型操作

JavaScript在設計之初,為了友善初學者學習,并不強制要求用var申明變量。這個設計錯誤帶來了嚴重的後果:如果一個變量沒有通過var申明就被使用,那麼該變量就自動被申明為全局變量:

JavaScript學習之旅-3(原創)

全局變量

使用var申明的變量則不是全局變量,它的範圍被限制在該變量被申明的函數(也叫 方法 )體内,同名變量在不同的函數體内互不沖突。

為了修補JavaScript這一嚴重設計缺陷,ECMA在後續規範中推出了strict模式,在strict模式下運作的JavaScript代碼,強制通過var申明變量,未使用var申明變量就使用的,将導緻運作錯誤。

啟用strict模式的方法是在JavaScript代碼的第一行寫上:

' use strict ' ;

這是一個字元串,不支援strict模式的浏覽器會把它當做一個字元串語句執行,支援strict模式的浏覽器将開啟strict模式運作JavaScript。是以,為了解決這個問題,我們最好嚴格要求自己,使用 var 變量進行對應的編碼開發。

JavaScript 變量的生命周期:

JavaScript 變量的生命期從它們被聲明的時間開始。

局部變量會在函數運作以後被删除。

全局變量會在頁面關閉後被删除。

對象

我們首先來複習下在Java中對于類和對象的概念。首先,Object 類是最頂層的基類,所有的類都直接或間接繼承Object。Java這門語言的本質就是面向對象開發(new 對象,使用對象 ,比如我們new 一個女朋友,讓她下面給男性朋友吃來補充能量),面向對象的開發來講也分為三個過程:OOA(面向對象分析)、OOD(面向對象設計)、OOP(面向對象程式設計)。類與對象時整個面向對象中最基礎的組成單元。那麼,在Java中,

:是抽象的概念集合,表示的是一個共性的産物,類之中定義的是屬性和行為(方法);

:對象是一種個性的表示,表示一個獨立的個體,每個對象擁有自己獨立的屬性,依靠屬性來區分不同對象。

可以一句話來總結出類和對象的差別:類是對象的模闆,對象是類的執行個體。類隻有通過對象才可以使用,而在開發之中應該先産生類,之後再産生對象。類不能直接使用,對象是可以直接使用的。

那麼JavaScript的對象是什麼?

首先,當我們這樣聲明一個 JavaScript 變量時:

var h = "Hello Word" ; 實際上已經建立了一個 JavaScript 字元串對象。JavaScript 中的幾乎所有事務都是對象:字元串、數字、數組、日期、函數,等等。我們也可以自定義自己的對象。

JavaScript的自定義對象是一組由鍵-值(key - value)組成的無序集合,如下圖:

JavaScript學習之旅-3(原創)

自定義對象

這裡的person.name person.age就是取出對象裡面的值,這樣的寫法是不是很像我們java自定義bean裡面用public聲明的成員變量。

首先,JavaScript對象的鍵都是字元串類型,值可以是任意資料類型。上述person對象一共定義了6個鍵值對,其中每個鍵又稱為對象的屬性,例如,person的name屬性為' tanzuowu ',age屬性為26。要擷取一個對象的屬性,用 

對象變量 . 屬性名

的方式即可擷取。

關于變量和對象的介紹大概就是這樣

未完待續。。。

如果這篇文章對你有幫助,希望各位看官留下寶貴的star,謝謝。

Ps:著作權歸作者所有,轉載請注明作者, 商業轉載請聯系作者獲得授權,非商業轉載請注明出處(開頭或結尾請添加轉載出處,添加原文url位址),文章請勿濫用,也希望大家尊重筆者的勞動成果。