## 常用資料型別 1. 常用的資料型別及其描述: | 資料型別 | 描述 | | ----------- | ----------------------------------------------------------------------------------------- | | `undefined` | 表示變數未定義或未賦值的特殊值, | | `null` | 表示一個空值, | | `boolean` | 表示邏輯值,只有兩個可能的值:`true`(真)和`false`(假), | | `number` | 表示數值,可以是整數或浮點數,例如`42`或`3.14`, | | `string` | 表示文本字串,例如`"Hello, world!"`, | | `symbol` | 在ECMAScript 6中引入的新型別,表示唯一的、不可變的值,每個`symbol`都是獨一無二的, | | `object` | 表示復雜資料結構,可以包含多個鍵值對,物件可以是陣列、函式、日期等等, | 2. 特殊的內置物件型別: | 資料型別 | 描述 | | ------------- | ---------------------------------------------------------------------------------- | | `Array` | 表示有序的集合,可以包含任意型別的資料, | | `Function` | 表示可執行的代碼塊,可以接受引數并回傳值, | | `Date` | 表示日期和時間, | | `RegExp` | 表示正則運算式,用于匹配和操作字串, | | `Map` | 表示鍵值對的集合,其中鍵和值可以是任意型別的資料, | | `Set` | 表示一組唯一值的集合,其中值可以是任意型別的資料, | | `Promise` | 表示一個異步操作的最終完成或失敗的結果, | | `Error` | 表示在運行時發生的錯誤,可以捕獲并處理, | | `Math` | 提供了一組數學相關的函式和常量, | | `JSON` | 提供了用于決議和序列化JSON資料的方法, | | `Math` | 提供了一組數學相關的函式和常量, | | `Math` | 提供了一組數學相關的函式和常量, | | `Math` | 提供了一組數學相關的函式和常量, | | `Math` | 提供了一組數學相關的函式和常量, | | `Math` | 提供了一組數學相關的函式和常量, | ## 判斷方法 1. 使用`typeof`運算子:`typeof`可以用于判斷大多數基本資料型別(除了`null`和`object`), ```javascript typeof undefined; // "undefined" typeof null; // "object" typeof true; // "boolean" typeof 42; // "number" typeof "Hello"; // "string" typeof Symbol(); // "symbol" typeof {}; // "object" ``` 2. 使用`instanceof`運算子:`instanceof`可以用于判斷一個物件是否屬于某個特定型別或類的實體, ```javascript [] instanceof Array; // true {} instanceof Object; // true new Date() instanceof Date; // true /regex/ instanceof RegExp; // true ``` 3. 使用`Array.isArray()`函式:`Array.isArray()`用于檢查一個值是否為陣列型別, ```javascript Array.isArray([]); // true Array.isArray({}); // false ``` 4. 使用`Object.prototype.toString.call()`方法:這種方法可以在所有的資料型別上使用,但需要注意傳入的值必須是物件, ```javascript Object.prototype.toString.call(undefined); // "[object Undefined]" Object.prototype.toString.call(null); // "[object Null]" Object.prototype.toString.call(true); // "[object Boolean]" Object.prototype.toString.call(42); // "[object Number]" Object.prototype.toString.call("Hello"); // "[object String]" Object.prototype.toString.call(Symbol()); // "[object Symbol]" Object.prototype.toString.call({}); // "[object Object]" ``` ## 型別轉換 **隱式轉換**: 隱式轉換是在操作中自動發生的型別轉換,不需要顯式地指定轉換操作,以下是一些常見的隱式轉換情況: 1. 字串和數字之間的隱式轉換: - 字串轉換為數字:發生在算術運算或比較操作中, - 數字轉換為字串:發生在字串拼接或某些背景關系中,如`console.log()`輸出, 2. 布林值的隱式轉換: - 非零數字、非空字串、非空陣列等被視為`true`,`0`、`''`、`null`、`undefined`、`NaN`、`false`等被視為`false`, 3. 其他型別之間的隱式轉換: - 數字和布林值之間的轉換:`true`轉換為`1`,`false`轉換為`0`, - 字串和布林值之間的轉換:`true`轉換為`'true'`,`false`轉換為`'false'`, **顯式轉換**: 1. 轉換為字串: - 使用`String()`函式或`.toString()`方法, - 示例:`String(42)`或`42.toString()`, 2. 轉換為數字: - 使用`Number()`函式、`parseInt()`函式或`parseFloat()`函式, - 示例:`Number('42')`、`parseInt('42')`或`parseFloat('3.14')`, 3. 轉換為布林值: - 使用`Boolean()`函式, - 示例:`Boolean(0)`、`Boolean('')`, 4. 轉換為陣列: - 使用`Array.from()`方法將類陣列物件或可迭代物件轉換為陣列, - 示例:`Array.from('hello')`, ## 創建方法 | 資料型別 | 創建方式 | 相關方法 | | --------- | ------------------------------------------------------------ | ---------------------------------------------------------- | | `undefined` | 通過未定義或未賦值的變數創建 | | | `null` | 直接使用`null`關鍵字創建 | | | `boolean` | 使用`true`或`false`關鍵字創建 | | | `number` | 直接使用數字創建,可以是整數或浮點數 | `Number.parseInt()`、`Number.parseFloat()` | | `string` | 使用單引號、雙引號或反引號括起來的字符序列 | 字串物件的方法,如`toUpperCase()`、`substring()` | | `symbol` | 使用`Symbol()`函式創建唯一的符號 | | | `object` | 使用物件字面量 `{}` 創建,或使用建構式創建 | 物件的屬性和方法,`Object`的方法,如`Object.keys()` | | `Array` | 使用陣列字面量 `[]` 或通過`Array`建構式創建 | 陣列物件的方法,如`push()`、`pop()`、`slice()` | | `Function` | 使用函式宣告或函式運算式創建 | 函式物件的方法,如`call()`、`apply()` | | `Date` | 使用`new Date()`建構式創建 | 日期物件的方法,如`getFullYear()`、`getMonth()` | | `RegExp` | 使用正則運算式字面量 `/pattern/` 或通過`RegExp`建構式創建 | 正則運算式物件的方法,如`test()`、`exec()` | | `Map` | 使用`new Map()`建構式創建 | `Map`物件的方法,如`set()`、`get()`、`has()` | | `Set` | 使用`new Set()`建構式創建 | `Set`物件的方法,如`add()`、`has()`、`delete()` | | `Promise` | 使用`new Promise()`建構式創建 | `then()`、`catch()`、`finally()` | | `Error` | 使用`throw`關鍵字拋出錯誤 | 錯誤物件的屬性和方法,如`message`屬性和`stack`屬性,`try-catch`塊捕獲和處理錯誤 |
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/556805.html
標籤:JavaScript
下一篇:返回列表