数据类型

常用数据类型

  1. 常用的数据类型及其描述:
数据类型 描述
undefined 表示变量未定义或未赋值的特殊值。
null 表示一个空值。
boolean 表示逻辑值,只有两个可能的值:true(真)和false(假)。
number 表示数值,可以是整数或浮点数,例如423.14
string 表示文本字符串,例如"Hello, world!"
symbol 在ECMAScript 6中引入的新类型,表示唯一的、不可变的值。每个symbol都是独一无二的。
object 表示复杂数据结构,可以包含多个键值对。对象可以是数组、函数、日期等等。
  1. 特殊的内置对象类型:
数据类型 描述
Array 表示有序的集合,可以包含任意类型的数据。
Function 表示可执行的代码块,可以接受参数并返回值。
Date 表示日期和时间。
RegExp 表示正则表达式,用于匹配和操作字符串。
Map 表示键值对的集合,其中键和值可以是任意类型的数据。
Set 表示一组唯一值的集合,其中值可以是任意类型的数据。
Promise 表示一个异步操作的最终完成或失败的结果。
Error 表示在运行时发生的错误,可以捕获并处理。
Math 提供了一组数学相关的函数和常量。
JSON 提供了用于解析和序列化JSON数据的方法。
Math 提供了一组数学相关的函数和常量。
Math 提供了一组数学相关的函数和常量。
Math 提供了一组数学相关的函数和常量。
Math 提供了一组数学相关的函数和常量。
Math 提供了一组数学相关的函数和常量。

判断方法

  1. 使用typeof操作符:typeof可以用于判断大多数基本数据类型(除了nullobject)。

    typeof undefined;  // "undefined"
    typeof null;       // "object"
    typeof true;       // "boolean"
    typeof 42;         // "number"
    typeof "Hello";    // "string"
    typeof Symbol();   // "symbol"
    typeof {};         // "object"
    
  2. 使用instanceof操作符:instanceof可以用于判断一个对象是否属于某个特定类型或类的实例。

    [] instanceof Array;           // true
    {} instanceof Object;          // true
    new Date() instanceof Date;    // true
    /regex/ instanceof RegExp;     // true
    
  3. 使用Array.isArray()函数:Array.isArray()用于检查一个值是否为数组类型。

    Array.isArray([]);    // true
    Array.isArray({});    // false
    
  4. 使用Object.prototype.toString.call()方法:这种方法可以在所有的数据类型上使用,但需要注意传入的值必须是对象。

    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. 布尔值的隐式转换:

    • 非零数字、非空字符串、非空数组等被视为true0''nullundefinedNaNfalse等被视为false
  3. 其他类型之间的隐式转换:

    • 数字和布尔值之间的转换:true转换为1false转换为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 使用truefalse关键字创建
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块捕获和处理错误

posted on 2023-07-13 22:06  双友  阅读(65)  评论(0编辑  收藏  举报

导航