用文字记录生活,留下美好瞬间
原创

JavaScript中的数据类型

共 3,116 字,需阅读 8 分钟
2018/06/08 上午
952 次阅读

JavaScript 是一种动态、弱类型的编程语言,它支持多种不同类型的数据。在本文中,我们将探讨这些数据类型,包括 JavaScript 的基本数据类型和复杂数据类型。

#基本数据类型

JavaScript 中有六种基本数据类型,它们是:

#1. 数字类型(Number)

数字类型代表着任何数值,包括正数、负数、整数和小数等等。在 JavaScript 中,数字类型使用 64 位浮点数表示,可以通过整数、小数或科学计数法来表示,例如:

          
  • 1
  • 2
  • 3
let a = 1; let b = 3.14; let c = 2.998e8; // 科学计数法表示 299800000

JavaScript 还提供了一些特殊的数字类型值,如 Infinity 和 NaN。Infinity 表示无限大,NaN 则表示非数字,如果对一个无意义的表达式进行运算操作,就会返回 NaN。

          
  • 1
  • 2
console.log(1 / 0); // Infinity console.log("abc" / 2); // NaN

#2. 字符串类型(String)

字符串类型是指包含在单引号(')或双引号(")之间的任意文本。字符、数字、标点符号等都可以组成字符串,如下所示:

          
  • 1
  • 2
let a = "Hello, world!"; let b = '12345';

需要注意的是,JavaScript 中的字符串是不可变的,也就是说一旦被创建,字符串中的内容就不能再被修改。但我们可以通过使用字符串连接、分割等函数来对字符串进行操作。

#3. 布尔类型(Boolean)

布尔类型只有两个值,一个是 true(真),一个是 false(假)。在 JavaScript 中,会自动将条件语句的结果转换成布尔类型。

          
  • 1
  • 2
  • 3
console.log(10 > 5); // true console.log(0 == false); // true console.log("" == false); // true

需要注意的是,在条件语句中,JavaScript 中一些类型的值会被强制类型转换。

#4. null 类型

空值类型表示一个空对象指针,也就是没有指向任何有效对象的值。在 JavaScript 中使用关键字null表示空值。

          
  • 1
let a = null; // 空对象指针

#5. undefined 类型

undefined 表示变量没有被赋值,它是一种特殊的值。当变量被声明但未被赋值时,默认为 undefined。

          
  • 1
  • 2
let a; console.log(a); // undefined

如果一个函数没有返回值,则默认返回 undefined。同样地,如果函数中使用了还未定义的变量,则该变量的默认值为 undefined。

#6. Symbol 类型

Symbol 类型是 ECMAScript 6 中新增的数据类型,用于创建唯一的标识符,在某些情况下可以用于对象的属性名(解决命名冲突)。

          
  • 1
  • 2
  • 3
  • 4
  • 5
let sym1 = Symbol(); let sym2 = Symbol("foo"); console.log(sym1); // Symbol() console.log(sym2); // Symbol(foo)

需要注意的是,Symbol 不是构造函数,不能使用 new 操作符创建实例。

#引用类型

#对象(Object)

对象类型是 JavaScript 中使用最广泛的引用类型。它表示一组键值对的无序集合,任意数据类型均可作为键或值。在 JavaScript 中使用object关键字来定义对象类型的变量。

          
  • 1
  • 2
  • 3
  • 4
  • 5
let obj = { name: 'Tom', age: 18, hobbies: ['reading', 'music'] };

需要注意的是,对象是按引用传递的,即当将对象赋值给另一个变量时,实际上是将该对象的地址复制到了新变量中,而非将对象本身复制。因此,修改其中一个变量的对象将会影响到另外一个变量。

          
  • 1
  • 2
  • 3
  • 4
let a = { x: 1 }; let b = a; b.x = 2; console.log(a.x); // 2

#数组(Array)

数组是一种特殊的对象类型,由一组有序元素组成,可以存储任意类型的数据。在 JavaScript 中数组可以通过字面量语法或构造函数创建。

          
  • 1
  • 2
let arr1 = [1, 2, 3]; let arr2 = ['apple', 'banana', 'orange'];

数组支持基本的数组操作,例如索引、遍历、排序等。同时还支持高级特性,如映射、过滤、归约等。

#函数(Function)

函数类型是一种可调用的对象类型,它由一组可执行代码封装起来,通常用于实现特定的操作并返回结果。在 JavaScript 中使用function关键字来定义函数。

          
  • 1
  • 2
  • 3
  • 4
function add(a, b) { return a + b; } console.log(add(2, 3)); // 5

函数也是一种对象类型,可以设置属性和方法,并且可以作为其他函数的参数传递或返回值。

#其他类型

#Date

Date类型表示日期和时间,并提供了操作日期和时间的计算和操作,如格式化时间、比较时间大小等。在JavaScript中,日期和时间以毫秒数的形式存储。可以使用new关键字和Date 构造函数创建日期对象。

          
  • 1
  • 2
  • 3
  • 4
let d = new Date(); // 当前时间 console.log(d.getFullYear()); // 2023 console.log(d.getMonth() + 1); // 6 console.log(d.getDate()); // 10

#RegExp

RegExp 可以通过字面量定义或者使用 RegExp 构造函数创建。是用来匹配和操作文本的一种表达式。正则表达式还有一些修饰符,用于指定如何匹配字符。例如,修饰符 g 表示全局匹配,i 表示忽略大小写等。

          
  • 1
  • 2
let pattern = /hello/; let regex = new RegExp('hello');

定义了一个正则表达式后,就可以在字符串中使用它进行匹配操作了。JavaScript 提供了一些内置的 RegExp 方法来执行各种操作,例如 test() 和 exec() 等。

自由转载 - 署名 - 非商业性使用
https://zhangwurui.cn/article/10
0/0条看法
访客身份
在下有一拙见,不知...
期待你的捷足先登