搜尋
首頁web前端js教程JavaScript常用資料型別的概念介紹

JavaScript常用資料型別的概念介紹

Mar 18, 2019 am 10:51 AM
javascript

這篇文章帶給大家的內容是關於JavaScript常用資料類型的概念介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

程式語言都有內建的資料結構,但各種程式語言的資料結構常有不同之處。本文試圖列出 JavaScript 語言中內建的資料結構及其屬性,它們可以用來建構其他的資料結構;同時盡可能的描述與其他語言的不同之處。

1.動態型別

JavaScript 是一種弱型別或說動態語言。這意味著你不用事先宣告變數的類型,在程式運行過程中,類型會被自動決定。這也代表你可以使用同一個變數來保存不同類型的資料:

JS常用資料型別

#程式語言都有內建的資料結構,但各種程式語言的資料結構常有不同之處。本文試圖列出 JavaScript 語言中內建的資料結構及其屬性,它們可以用來建構其他的資料結構;同時盡可能的描述與其他語言的不同之處。

1.動態型別

JavaScript 是一種弱型別或說動態語言。這意味著你不用事先宣告變數的類型,在程式運行過程中,類型會被自動決定。這也意味著你可以使用同一個變數來保存不同類型的資料:

var foo = 42;    // foo is a Number now
foo = "bar"; // foo is a String now
foo = true;  // foo is a Boolean now

動態類型語言特點是靈活,缺點是犧牲了部分效能。對於動態類型語言,變數類型是可以動態改變的,無法在編譯期確定,因此編譯期的類型檢查比較弱,這將導致許多類型錯誤直到運行期才能發現。

2.資料型別

最新的ECMAScript 標準定義了7 種資料型別:

6 種原始型別:

   Boolean
   Null
   Undefined
   Number
   String
   Symbol (ECMAScript 6 新定义)
Object

3.原始值( primitive values )

除Object 以外的所有型別都是不可變的(值本身無法改變)。例如,與 C 語言不同,JavaScript 中字串是不可變的(譯註:如,JavaScript 中對字串的操作一定回傳了一個新字串,原始字串並沒有被改變)。我們稱這些類型的值為「原始值」。

布林類型(Boolean)

布林表示一個邏輯實體,可以有兩個值:true 和 false。

Null 類型

Null 類型只有一個值: null,更多詳情可查看 null 和 Null 。

Undefined 類型

一個沒有被賦值的變數會有個預設值 undefined,更多詳情可查看 undefined 和 Undefined。

數字類型

根據 ECMAScript 標準,JavaScript 中只有一種數字類型:基於 IEEE 754 標準的雙精度 64 位元二進位格式的值(-(263 -1) 到 263 -1)。它並沒有為整數給出特定的類型。除了能夠表示浮點數外,還有一些帶符號的值: Infinity,-Infinity 和 NaN (非數值,Not-a-Number)。

要檢查值是否大於或小於 /-Infinity,你可以使用常數 Number.MAX_VALUE 和 Number.MIN_VALUE。另外在 ECMAScript 6 中,你也可以透過 Number.isSafeInteger() 方法還有 Number.MAX_SAFE_INTEGER 和 Number.MIN_SAFE_INTEGER 來檢查值是否在雙精確度浮點數的值範圍內。超出這個範圍,JavaScript 中的數字不再安全了,也就是只有 second mathematical interger 可以在 JavaScript 數字類型中正確表現。

數字型別只有一個整數,它有兩種表示法: 0 可表示為 -0 和 0("0" 是 0 的簡寫)。在實踐中,這也幾乎沒有影響。例如 0 === -0 為真。但是,你可能要注意除以0的時候:

42 / +0; // Infinity
42 / -0; // -Infinity

字串類型

JavaScript的字串類型用來表示文字資料。它是一組16位元的無符號整數值的「元素」。字串中的每個元素佔據了字串的位置。第一個元素的索引為0,下一個是索引1,依此類推。字串的長度是它的元素的數量。

不同於類別 C 語言,JavaScript 字串是不可變更的。這意味著字串一旦被創建,就不能被修改。但是,可以基於對原始字串的操作來建立新的字串。例如:

取得一個字串的子字串可透過選擇個別字母或使用String.substr().兩個字串的連接使用連接運算元( ) 或String.concat().

注意程式碼中的「字串型別」!
可以使用字串來表達複雜的資料。以下是一些很好的性質:

容易連接建構複雜的字符串符
字串容易被調試(你看到的往往在字符串裡)
字符串通常是許多APIs的常見標準(input fields, local storage values, XMLHttpRequest當使用responseText等的時候回應) 而且他只能與字串一同使用。
按照慣例, 字串一般可以用來表達任何資料結構。這不是一個好主意。例如,使用分隔符,一個可以模仿一個列表(一個JavaScript的陣列可能更適合一些) 。不幸的是,當一個分隔符號在用於列表中的元素時,打亂了這個列表。一個轉義字符等。所有這些慣例都變成了一個不存在的維護負擔而沒有正確的工具使用。

表達文字資料和符號資料時候推薦使用字串。當表達複雜的資料時,使用字串解析和適當的縮寫。

符號類型

符號(Symbols)是ECMAScript 第6版新定義的。符號類型是唯一的且是不可修改的, 並且也可以用來作為Object的key的值(如下). 在某些語言當中也有類似的原子類型(Atoms). 你也可以認為為它們是C裡面的枚舉類型. 更多細節請看Symbol 和Symbol 。

物件Object

在 Javascript 裡,物件可以被視為一組屬性的集合。用物件字面量語法定義一個物件時,會自動初始化一組屬性。 (也就是說,你定義一個var a = "Hello",那麼a本身就會有a.substring這個方法,以及a.length這個屬性,以及其它;如果你定義了一個對象,var a = {},那麼a就會自動有a.hasOwnProperty及a.constructor等屬性和方法。)而後,這些屬性還可以被增減。屬性的值可以是任意類型,包括具有複雜資料結構的物件。屬性使用鍵來標識,它的鍵值可以是一個字串或符號值(Symbol)。

ECMAScript定義的物件中有兩種屬性:資料屬性和存取器屬性。

資料屬性
資料屬性是鍵值對,且每個資料屬性擁有下列特性:

資料屬性的特性(Attributes of a data property)

O(∩_∩)O哈哈~基礎還是很重要的。



#

以上是JavaScript常用資料型別的概念介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:segmentfault。如有侵權,請聯絡admin@php.cn刪除
JavaScript:探索網絡語言的多功能性JavaScript:探索網絡語言的多功能性Apr 11, 2025 am 12:01 AM

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。

JavaScript的演變:當前的趨勢和未來前景JavaScript的演變:當前的趨勢和未來前景Apr 10, 2025 am 09:33 AM

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

神秘的JavaScript:它的作用以及為什麼重要神秘的JavaScript:它的作用以及為什麼重要Apr 09, 2025 am 12:07 AM

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python還是JavaScript更好?Python還是JavaScript更好?Apr 06, 2025 am 12:14 AM

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。1.Python以简洁语法和丰富库生态著称,适用于数据分析和Web开发。2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。

如何安裝JavaScript?如何安裝JavaScript?Apr 05, 2025 am 12:16 AM

JavaScript不需要安裝,因為它已內置於現代瀏覽器中。你只需文本編輯器和瀏覽器即可開始使用。 1)在瀏覽器環境中,通過標籤嵌入HTML文件中運行。 2)在Node.js環境中,下載並安裝Node.js後,通過命令行運行JavaScript文件。

在Quartz中如何在任務開始前發送通知?在Quartz中如何在任務開始前發送通知?Apr 04, 2025 pm 09:24 PM

如何在Quartz中提前發送任務通知在使用Quartz定時器進行任務調度時,任務的執行時間是由cron表達式設定的。現�...

在JavaScript中,如何在構造函數中獲取原型鏈上函數的參數?在JavaScript中,如何在構造函數中獲取原型鏈上函數的參數?Apr 04, 2025 pm 09:21 PM

在JavaScript中如何獲取原型鏈上函數的參數在JavaScript編程中,理解和操作原型鏈上的函數參數是常見且重要的任�...

微信小程序webview中Vue.js動態style位移失效是什麼原因?微信小程序webview中Vue.js動態style位移失效是什麼原因?Apr 04, 2025 pm 09:18 PM

在微信小程序web-view中使用Vue.js動態style位移失效的原因分析在使用Vue.js...

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中