搜尋
首頁web前端前端問答詳細解析JavaScript中的六大基本資料類型

本篇文章為大家帶來了JavaScript中關於六大基本資料類型的相關知識,希望對大家有幫助。

詳細解析JavaScript中的六大基本資料類型

一、區分大小寫

在JavaScript中,所有的一切(變數、函數和運算元)都會區分大小寫。這也意味著,變數名test和變數名Test分別表示兩個不同的變數。

二、標識符

所謂的表示標識符,就是指變數、函數名稱和操作符,或是函數的參數。標誌符的格式規則如下:

1、第一個字元必須是字元、底線(_)或一個美元符號($);

2、其他的字元可以是字母、底線、美元符號和數字;

依照慣例,JavaScript的識別碼採用小駝峰書寫格式,也就是打開一個字母小寫,剩下的單字的首字母大寫。例如:firstChirld、myCar;

當然,識別碼採用小駝峰書寫格式不是強制要求,但是可以便於我們理解程式碼,在書寫時盡量用小駝峰書寫格式,便於別人理解你的程式碼。

三、註解

JavaScript中的註解方法分為單行註解和多行註解:
單行註解:

//这是一个单行注释

多行註解:

/*
*这是一个
*多行注释
*/

四、語句

在JavaScript中,語句都是以一個分號結尾;如果省略分號,則由解釋器去確定結尾。如下例所示:

var sum = a + b			//即使没有分号也是有效语句——不推荐
var diff = a - b;		//有效语句——推荐

五、變數

JavaScript中的變數型別是弱型別的,所謂弱型別就是可以用來保存任何型別的資料。換句話說,每個變數只是一個用來保存值的佔位符而已。
定義變數時用var關鍵字,後面跟著變數名稱(即標識符)。如下所示:

var  message;

JavaScript也支援直接初始化變量,因此在定義變數的同時就可以設定變數的值。如下所示:

var message = "Hello world!";

有一點必須注意,即用var關鍵字定義的變數將成為定義該變數的作用域中的局部變數。也就是說,如果函數中使用var定義一個變量,那麼這個變數在函數運行結束後就會被銷毀。例如:

function test(){
	var message = "Hello";		//局部变量
}
test();
console.log(message);		//错误!

出現錯誤的原因是,變數message是在函數test()中使用var定義的。當函數被呼叫時,就會建立變數並為其賦值。而在此之後,這個變數會立即銷毀,因此,範例中的下一行程式碼就會導致錯誤。不過,可以像下面這樣省略關鍵字var,從而創建一個全域變數:

function  test(){
	message = "Hello";			//全局变量
}
test();
console.log(message);			//"Hello"

在這裡省略了關鍵字var,message就變成了全域變數。這樣,只要呼叫一次test()函數,這個變數就被定義了,全域變數被定以後,就可以在函數外部的任何地方都可以被存取。
雖然省略關鍵字var可以定義全域變量,但不建議這樣做,因為在局部作用域中定義的全域變數很難維護;

資料型別

##JavaScript中有幾種簡單資料類型(也稱為基本資料類型):Undefined、Null、Boolean、Number和String。還要一種複雜型別-Object,Object本質就是一組無序的名值對組成。 JavaScript中不支援任何建立自訂的類型的機制,而所有值都是這6種資料類型之一。

typeof運算子

由於JavaScript是弱型別的,因此需要有一種手段來偵測給定變數的資料型別-typeof就是一個負責偵測給定變數的資料型別的運算符。對一個值使用typeof運算子可能會傳回下列某個字串:

  • 「undefined」-如果這個值未定義;

  • 「boolean」-如果這個值是布林型別;

  • 「string」-如果這個值是字串;

  • 「number 」——如果這個值是數字;

  • 「object」——如果這個值是物件或null;

  • 「function」— —如果這個值是函數;

下面是使用typeof運算子的幾個例子:


var message = "hello";
console.log(typeof message);			//"string"
console.log(typeof(message));			//"string"
console.log(typeof 95);					//"number"
typeof運算子的運算元可以是變數,也可以是數值字面量。注意,typeof不是函數,因此此例中的圓括號儘管可以使用,但是不是必需的。

在JavaScript中,函數是一種對象,不是一種資料類型,因此使用typeof來區分函數和其他物件是必要的。

Undefined型別

undefined型別只有一個值,即特殊的undefined。在使用var宣告變數但對其未加以初始化時,這個變數的值就是undefined。例如:

var message;
console.log(message  == undefined);		//true
var message1 = "undefined";
console.log(message1 == undefined);			//true
然而,令人困惑的一點是:對未初始化的變數執行typeof操作符會傳回undefined值,而對未宣告的比變數執行typeof操作符同樣也會傳回undefined值。來看下面的範例:

var message;			//这个变量声明之后默认取得了undefined值
//下面这个变量并没有声明
//var age;
console.log(typeof message);		//"undefined"
console.log(typeof age);			//"undefined"
為初始化的變數和宣告的變數都回傳了undefined,這個結果有其邏輯上的合理性。因為這兩種變數從技術角度上有本質上的區別,但實際上無論對那種變數也不可能執行真正的操作,

Null类型

Null类型是第二个只有一个值得类型,这个特殊的值是null。从逻辑的角度来看,null值表示一个对象的空指针,而这也正是使用typeof操作符的检测null值时会返回“object”的原因,如下面的例子所示:

var message= null;		
console.log(message);		//"object"

如果定义的对象将来用来保存对象,那么最好将这个变量初始化为null而不是其他的值。这样一来,只要直接检查null值就可以直接知道相应的变量是否已经保存了一个对象的引用,如下面的例子:

if(message != null){
	//对message进行一系列的操作
}

实际上,undefined的值是派生自null值得,所以对它们进行相等性测试的时候要返回true:

console.log(null == undefined);		//true

在这里,位于null和undefined之间的相等操作符(==)总是返回true。尽管null和undefined有这样的关系,但它们的的用途完全不同。如上面所述,无论在什么情况下,都没有必要把一个变量显示的表示为undefined,可是同样的规则对null却不适用。换句话说,只有保存对象的变量还没有真正的保存对象,就应该在明确地表示将该变量保存为null值。这样做不仅可以体现null值作为空指针的惯例,而且也有助于进一步的区分null和undefined。

Boolean类型

Boolean类型是JavaScript中使用最多的一种类型,该类型只有两个字面值:true和false。这两个值与数字值不是一回事,因此true不一定等于1,而false也不一定等于0。以下是为变量赋值的例子:

var first = true;
var second = false;

需要注意的是,boolean类型的两个值区分大小写。也就是说True和true、False和false不是一回事。
True和False(以及其他混合大小形式)只是标识符,不是boolean值。
虽然boolean值只有两个值,但是JavaScript所有类型的值都有与这两个boolean值等价的值。要将一个值转换为相应的Boolean值,可以调用Boolean()函数。例如:

	var message = "Hello world!";
	var messageAsBoolean = Boolean(message);
	console.log(messageAsBoolean);		//true

可以对任何类型的值调用Boolean()函数,而且总会返回一个boolean值。至于返回的是true还是false取决于要转换的实际类型及其实际值。下表给出了各种数据类型对其转换的相应规则:

数据类型 转换为true的值 转换为false的值
Boolean true false
String 任何非空字符串 “”(空字符串)
Number 任何非零数字值(包括无穷大) 0和NaN
Object 任何对象 null
Undefined n/a undefined

Number类型

在JavaScript中number类型定义了不同的数值字面量格式。例如:

	var  intNumber = 55;		//十进制整数
	var octalNum1 = 070;		//八进制的56
	var octaNum2 = 079;			//无效的八进制数,解析为79
	var octaNum3 =  08;			//无效的八进制数,解析为8
	var hexNum1 = 0xA;			//十六进制的10
	var hexNum2 = 0x1f;			//十六进制的31

在进行算术计算时,所有八进制和十六进制表示的数值都会转换成十进制数值。

NaN

NaN即非数值,是一个特殊的数值。这个数用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。NaN本身有两个特点:
首先,任何涉及NaN的操作(例如NaN/10)都会返回NaN,这个特点在多步计算中有可能导致问题。
其次,NaN与任何值都不相等,包括NaN本身。例如:

console.log(NaN ==NaN );		//false

String类型

string类型用于表示零或多个Unicode字符组成的字符序列,即字符串。字符串可以由双引号(")或单引号(’)表示,因此下面两种写法都是有效的:

var firstName = "王文正";
var secondName = "王彬";

双引号开头的必须以双引号结尾,而当引号开头的必须以单引号结尾。下面这种会导致语法错误:

var name = "王彬';		//语法错误
字符字面量

String类型中包含了一些特殊字面量,也叫转义序列,用于表示非打印字符,或者有其他的用途的字符。这些字符字面量如下表所示:

字面量 含义
\n 换行
\t 制表
\b 退格
\r 回车
\f 进纸
\ 斜杠
单引号
" 双引号
\xnn 以十六进制代码nn表示一个字符
\unnn 以十六进制代码nnn表示一个Unicode字符
字符串的特点

JavaScript中的字符串是不可变的,也就是说,字符串一旦创建,它的值就是不可更改的。要更改某个变量中保存的字符串,首先要销毁原来的字符串,然后用另一个包含新值得字符串填充变量,例如:

var lang = "java";
lang = lang + "script";
console.log(lang);		//javascript

Object类型

JavaScript中的对象是一组数据和功能的集合。对象可以通过执行new操作符后跟要创建的对象类型名称来创建。而创建Object类型的实例并为其添加属性或方法,就可以创建自定义对象。如下所示:

var o = new Object();
var  o = new Object;		//有效,但是不推荐这种做法;
Object的每个实例都具有以下下列属性和方法:
  • constructor:保存着用于创建当期那对象的函数。

  • hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中(而不是实际的原型中)是否存在。

  • isPrototypeOf(object):用于检查传入的对象那个是否是当前对象的原型。

  • propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用for-in语句

  • toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应

  • valueOf():返回对象的字符串、数值或布尔值表示。通常与toString()方法的返回值相同

  • toString():返回对象的字符串表示

  • 由于在JavaScript中Object是所有对象的基础,因此所有对象都具有这些基本的属性和方法。

【相关推荐:javascript学习教程

以上是詳細解析JavaScript中的六大基本資料類型的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:CSDN。如有侵權,請聯絡admin@php.cn刪除
HTML和React的集成:實用指南HTML和React的集成:實用指南Apr 21, 2025 am 12:16 AM

HTML與React可以通過JSX無縫整合,構建高效的用戶界面。 1)使用JSX嵌入HTML元素,2)利用虛擬DOM優化渲染性能,3)通過組件化管理和渲染HTML結構。這種整合方式不僅直觀,還能提升應用性能。

React和HTML:渲染數據和處理事件React和HTML:渲染數據和處理事件Apr 20, 2025 am 12:21 AM

React通過state和props高效渲染數據,並通過合成事件系統處理用戶事件。 1)使用useState管理狀態,如計數器示例。 2)事件處理通過在JSX中添加函數實現,如按鈕點擊。 3)渲染列表需使用key屬性,如TodoList組件。 4)表單處理需使用useState和e.preventDefault(),如Form組件。

後端連接:反應如何與服務器互動後端連接:反應如何與服務器互動Apr 20, 2025 am 12:19 AM

React通過HTTP請求與服務器交互,實現數據的獲取、發送、更新和刪除。 1)用戶操作觸發事件,2)發起HTTP請求,3)處理服務器響應,4)更新組件狀態並重新渲染。

反應:專注於用戶界面(前端)反應:專注於用戶界面(前端)Apr 20, 2025 am 12:18 AM

React是一種用於構建用戶界面的JavaScript庫,通過組件化開發和虛擬DOM提高效率。 1.組件與JSX:使用JSX語法定義組件,增強代碼直觀性和質量。 2.虛擬DOM與渲染:通過虛擬DOM和diff算法優化渲染性能。 3.狀態管理與Hooks:Hooks如useState和useEffect簡化狀態管理和副作用處理。 4.使用示例:從基本表單到高級的全局狀態管理,使用ContextAPI。 5.常見錯誤與調試:避免狀態管理不當和組件更新問題,使用ReactDevTools調試。 6.性能優化與最佳

React的角色:前端還是後端?澄清區別React的角色:前端還是後端?澄清區別Apr 20, 2025 am 12:15 AM

reactisafrontendlibrary,focusedonBuildingUserInterfaces.itmanagesuistateandupdatesefficefited avelyuseVirusity diftualdom,and internactSwithBackendServIcesViaApisforDatahandling,butdoesnotprocessorcorsorsorstoredordordordoredairself。

在HTML中進行反應:構建交互式用戶界面在HTML中進行反應:構建交互式用戶界面Apr 20, 2025 am 12:05 AM

React可以嵌入到HTML中來增強或完全重寫傳統的HTML頁面。 1)使用React的基本步驟包括在HTML中添加一個根div,並通過ReactDOM.render()渲染React組件。 2)更高級的應用包括使用useState管理狀態和實現複雜的UI交互,如計數器和待辦事項列表。 3)優化和最佳實踐包括代碼分割、惰性加載和使用React.memo和useMemo來提高性能。通過這些方法,開發者可以利用React的強大功能來構建動態和響應迅速的用戶界面。

反應:現代前端發展基礎反應:現代前端發展基礎Apr 19, 2025 am 12:23 AM

React是構建現代前端應用的JavaScript庫。 1.它採用組件化和虛擬DOM優化性能。 2.組件使用JSX定義,狀態和屬性管理數據。 3.Hooks簡化生命週期管理。 4.使用ContextAPI管理全局狀態。 5.常見錯誤需調試狀態更新和生命週期。 6.優化技巧包括Memoization、代碼拆分和虛擬滾動。

React的未來:Web開發的趨勢和創新React的未來:Web開發的趨勢和創新Apr 19, 2025 am 12:22 AM

React的未來將專注於組件化開發的極致、性能優化和與其他技術棧的深度集成。 1)React將進一步簡化組件的創建和管理,推動組件化開發的極致。 2)性能優化將成為重點,特別是在大型應用中的表現。 3)React將與GraphQL和TypeScript等技術深度集成,提升開發體驗。

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脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

mPDF

mPDF

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