溫馨提示×

溫馨提示×

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

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

JavaScript變量和數(shù)據(jù)類型知識點有哪些

發(fā)布時間:2022-04-13 10:00:28 來源:億速云 閱讀:278 作者:iii 欄目:web開發(fā)

本文小編為大家詳細介紹“JavaScript變量和數(shù)據(jù)類型知識點有哪些”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當,希望這篇“JavaScript變量和數(shù)據(jù)類型知識點有哪些”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

JavaScript變量和數(shù)據(jù)類型知識點有哪些

一、變量

標識符

概念:程序開發(fā)中,經(jīng)常需要自定義一些符號來標記一些名稱,并賦予其特定的用途,如變量名、函數(shù)名等,這些符號都被稱為標識符。

定義規(guī)則

  • 由大小寫字母、數(shù)字、下劃線和美元符號($)組成。

  • 不能以數(shù)字開頭。

  • 嚴格區(qū)分大小寫。

  • 不能使用JavaScript中的關(guān)鍵字命名。

  • 要盡量要做到“見其名知其意”。

JavaScript變量和數(shù)據(jù)類型知識點有哪些

合法的標識符為:it、It、age66、_age、$name

非法的標識符為:t-o、t o、798lu

注意

當標識符中需要多個單詞進行表示時,常見的表示方式有下劃線法(如user_name)、駝峰法(如userName)和帕斯卡法(如UserName)。讀者可根據(jù)開發(fā)需求統(tǒng)一規(guī)范命名的方式,如下劃線方式通常應(yīng)用于變量的命名,駝峰法通常應(yīng)用于函數(shù)名的命名等。

關(guān)鍵字

保留關(guān)鍵字:是指在JavaScript語言中被事先定義好并賦予特殊含義的單詞。

未來保留關(guān)鍵字:是指預(yù)留的,未來可能會成為保留關(guān)鍵字的單詞。

保留關(guān)鍵字
JavaScript變量和數(shù)據(jù)類型知識點有哪些

關(guān)鍵字不能作為變量名和函數(shù)名使用,否則會使JavaScript在載入過程中出現(xiàn)語法錯誤。

未來保留關(guān)鍵字

JavaScript變量和數(shù)據(jù)類型知識點有哪些

標識符在定義時,建議不要用未來保留關(guān)鍵字,避免將來轉(zhuǎn)換為關(guān)鍵字時出現(xiàn)錯誤。

變量的使用

概念:變量可以看作是存儲數(shù)據(jù)的容器。

舉例:盛水的杯子,杯子指變量,杯中的水指保存在變量中的數(shù)據(jù)。

語法:JavaScript中變量通常利用var關(guān)鍵字聲明,并且變量名的命名規(guī)則與標識符相同。

舉例:合法變量名(如number、_it123)、非法變量名(如88shout、&num)。

  • 未賦初始值的變量,默認值會被設(shè)定為undefined。

  • 行末的分號表示語句結(jié)束。

  • 變量與變量之間的逗號(,)操作符,可實現(xiàn)一條語句同時完成多個變量的聲明。

JavaScript變量和數(shù)據(jù)類型知識點有哪些

變量的賦值

JavaScript變量和數(shù)據(jù)類型知識點有哪些

注意

JavaScript中變量雖然可以不事先聲明,直接省略var關(guān)鍵字為變量賦值。但由于JavaScript采用的是動態(tài)編譯,程序運行時不容易發(fā)現(xiàn)代碼中的錯誤,所以推薦讀者在使用變量前,要養(yǎng)成先聲明的良好習慣。

定義常量

常量:可以理解為在腳本運行過程中值始終不變的量。

特點:一旦被定義就不能被修改或重新定義。

舉例:數(shù)學中的圓周率π就是一個常量,其值就是固定且不能被改變的。

語法:ES6中新增了const關(guān)鍵字,用于實現(xiàn)常量的定義

常量命名規(guī)則:遵循標識符命名規(guī)則,習慣上常量名稱總是使用大寫字母表示。

常量的值:常量在賦值時可以是具體的數(shù)據(jù),也可以是表達式的值或變量。

JavaScript變量和數(shù)據(jù)類型知識點有哪些

  • 常量一旦被賦值就不能被改變。

  • 常量在聲明時必須為其指定某個值。

二、數(shù)據(jù)類型

數(shù)據(jù)類型分類

JavaScript中的數(shù)據(jù):在使用或賦值時根據(jù)設(shè)置的具體內(nèi)容再確其對應(yīng)的類型。

但每一種計算機語言都有自己所支持的數(shù)據(jù)類型,JavaScript也不例外。

JavaScript變量和數(shù)據(jù)類型知識點有哪些

關(guān)于引用數(shù)據(jù)類型,將會在后面的章節(jié)詳細介紹。

基本數(shù)據(jù)類型——布爾型

布爾型是JavaScript中較常用的數(shù)據(jù)類型之一,通常用于邏輯判斷。

ture | false

表示事物的“真”和“假”,嚴格遵循大小寫,因此true和false值只有全部為小寫時才表示布爾型。

基本數(shù)據(jù)類型——數(shù)值型

JavaScript中的數(shù)值型并不區(qū)分整數(shù)和浮點數(shù),所有數(shù)字都是數(shù)值型。

  • 添加“- ”符號表示負數(shù)。

  • 添加“+ ”符號表示正數(shù)(通常情況下省略“+”)。

  • 設(shè)置為NaN表示非數(shù)值。

JavaScript變量和數(shù)據(jù)類型知識點有哪些

只要給定的值不超過JavaScript中允許數(shù)值指定的范圍即可。

NaN非數(shù)值

  • NaN 是一個全局對象的屬性,它的初始值就是NaN。

  • 與數(shù)值型中的特殊值NaN一樣,都表示非數(shù)字(Not a Number)。

  • 可用于表示某個數(shù)據(jù)是否屬于數(shù)值型。

  • NaN沒有一個確切的值,僅表示非數(shù)值型的一個范圍。

  • 例如,NaN與NaN進行比較時,結(jié)果不一定為真(true),這是由于被操作的數(shù)據(jù)可能是布爾型、字符型、空型、未定義型和對象型中的任意一種類型。

基本數(shù)據(jù)類型——字符型

字符型(String)是由Unicode字符、數(shù)字等組成的字符序列,這個字符序列我們一般將其稱為字符串。

作用:表示文本的數(shù)據(jù)類型。

語法:程序中的字符型數(shù)據(jù)包含在單引號(")或雙引號("")。

JavaScript變量和數(shù)據(jù)類型知識點有哪些

  • 由單引號定界的字符串中可以包含雙引號。

  • 由雙引號定界的字符串中也可以包含單引號。

問題:如何在在單引號中使用單引號,或在雙引號中使用雙引號?

答案:利用轉(zhuǎn)義字符“\”進行轉(zhuǎn)義。

JavaScript變量和數(shù)據(jù)類型知識點有哪些

在字符串中使用換行、Tab等特殊符號時,也需要利用轉(zhuǎn)義符“\”的轉(zhuǎn)義。

JavaScript變量和數(shù)據(jù)類型知識點有哪些

基本數(shù)據(jù)類型——空型

  • 空型(Null)只有一個特殊的null值。

  • 空型用于表示一個不存在的或無效的對象與地址。

  • JavaScript中大小寫敏感,因此變量值只有是小寫的null時才表示空型(Null)。

基本數(shù)據(jù)類型——未定義型

  • 未定義型(Undefined)也只有一個特殊的undefined值。

  • 未定義型用于聲明的變量還未被初始化時,變量的默認值為undefined。

  • 與null不同的是,undefined表示沒有為變量設(shè)置值,而null則表示變量(對象或地址)不存在或無效。

  • 注意:null和undefined與空字符串(’’)和0都不相等。

數(shù)據(jù)類型檢測

為什么需要數(shù)據(jù)類型檢測,以下面的示例進行講解?

JavaScript變量和數(shù)據(jù)類型知識點有哪些

請分析并說出變量sum的數(shù)據(jù)類型,以及為什么?

思考答案:變量sum是字符型。

過程分析: 運算符“+”的操作數(shù)只要有一個是字符型,則它表示字符拼接。而此案例中參與運算的兩個變量,num1是數(shù)值型,num2是字符型,因此最后的輸出結(jié)果變量sum就是num1與num2進行拼接后的字符串。

思考結(jié)論:開發(fā)中對參與運算的數(shù)據(jù)類型有要求時,需要進行數(shù)據(jù)類型檢測。

JavaScript中對于數(shù)據(jù)類型的檢測提供了以下兩種方式:

JavaScript變量和數(shù)據(jù)類型知識點有哪些

typeof操作符以字符串形式,返回未經(jīng)計算的操作數(shù)的類型。

JavaScript變量和數(shù)據(jù)類型知識點有哪些

在利用typeof檢測null的類型時返回的是object而不是null。

由于JavaScript中一切皆對象,因此可利用Object.prototype.toString.call()對象原型的擴展函數(shù)更精確的區(qū)分數(shù)據(jù)類型。

JavaScript變量和數(shù)據(jù)類型知識點有哪些

Object.prototype.toString.call(data)的返回值是一個形如“[object 數(shù)據(jù)類型]”的字符型結(jié)果。(可通過console.log()觀察返回值。)

數(shù)據(jù)類型轉(zhuǎn)換

數(shù)據(jù)類型轉(zhuǎn)換——轉(zhuǎn)布爾型

應(yīng)用場景:經(jīng)常用于表達式和流程控制語句中,如數(shù)據(jù)的比較、條件的判斷。

實現(xiàn)語法:Boolean()函數(shù)。

注意事項:Boolean()函數(shù)會將任何非空字符串和非零的數(shù)值轉(zhuǎn)換為true,將空字符串、0、NaN、undefined和null轉(zhuǎn)換為false。

演示示例:判斷用戶是否有內(nèi)容輸入。

對Boolean(con)進行分析:

  • 用戶單擊“取消”按鈕,則結(jié)果為false

  • 用戶未輸入,單點擊“確定”按鈕,則結(jié)果為false

  • 用戶輸入“哈哈”,單點擊“確定”按鈕,則結(jié)果為true

JavaScript變量和數(shù)據(jù)類型知識點有哪些

數(shù)據(jù)類型轉(zhuǎn)換——轉(zhuǎn)數(shù)值型

應(yīng)用場景:開發(fā)中在接收用戶傳遞的數(shù)據(jù)進行運算時,為了保證參與運算的都是數(shù)值型,經(jīng)常需要對其進行轉(zhuǎn)換。

實現(xiàn)語法:Number()函數(shù)、parseInt()函數(shù)或parseFloat()函數(shù)。

演示示例:根據(jù)用戶的輸入完成自動求和。

JavaScript變量和數(shù)據(jù)類型知識點有哪些

轉(zhuǎn)數(shù)值型的函數(shù)在使用時有一定的區(qū)別。

JavaScript變量和數(shù)據(jù)類型知識點有哪些

  • 所有函數(shù)在轉(zhuǎn)換純數(shù)字時會忽略前導零,如“0123”字符串會被轉(zhuǎn)換為123。

  • parseFloat()函數(shù)會將數(shù)據(jù)轉(zhuǎn)換為浮點數(shù)(可以理解為小數(shù))。

  • parseInt()函數(shù)會直接省略小數(shù)部分,返回數(shù)據(jù)的整數(shù)部分,并可通過第2個參數(shù)設(shè)置轉(zhuǎn)換的進制數(shù)。

注意

在實際開發(fā)中還需要對轉(zhuǎn)換后的結(jié)果是否是NaN進行判斷,只有不是NaN時,才能夠進行運算。此時可使用isNaN()函數(shù)來確定,當給定值為undefined、NaN和{}(對象)時返回true,否則返回false。

數(shù)據(jù)類型轉(zhuǎn)換——轉(zhuǎn)字符型

實現(xiàn)語法:String()函數(shù)和toString()方法。

實現(xiàn)方式的區(qū)別: String()函數(shù)可以將任意類型轉(zhuǎn)換為字符型;除了null和undefined沒有toString()方法外,其他數(shù)據(jù)類型都可以完成字符的轉(zhuǎn)換。

演示示例:根據(jù)用戶的輸入完成自動求和。

JavaScript變量和數(shù)據(jù)類型知識點有哪些

注意

toString()方法在進行數(shù)據(jù)類型轉(zhuǎn)換時,可通過參數(shù)設(shè)置,將數(shù)值轉(zhuǎn)換為指定進制的字符串,例如num4.toString(2),表示首先將十進制26轉(zhuǎn)為二進制11010,然后再轉(zhuǎn)為字符型數(shù)據(jù)。

表達式

概念:表達式可以是各種類型的數(shù)據(jù)、變量和運算符的集合。

最簡單的表達式可以是一個變量。

JavaScript變量和數(shù)據(jù)類型知識點有哪些

讀到這里,這篇“JavaScript變量和數(shù)據(jù)類型知識點有哪些”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

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

AI