程序员必知!JavaScript的数据类型及其判断
2023-12-01 07:14:30
JavaScript 的数据类型:
JavaScript 中的数据类型分为两大类:基本类型和引用类型。基本类型包括布尔值、数字、字符串、未定义、空、Symbol 和 BigInt。引用类型包括对象类型,对象类型可以包含任何类型的值,包括基本类型和引用类型的值。
基本类型:
布尔值(Boolean): 布尔值可以是 true 或 false,表示真或假。布尔值通常用于控制流程,例如 if 语句和 while 循环。
数字(Number): 数字可以是整数或小数。JavaScript 中的数字使用 64 位浮点数表示。
字符串(String): 字符串是一系列字符的集合。字符串可以用单引号或双引号表示。
未定义(Undefined): 未定义表示一个变量还没有被赋值。未定义的值不能与其他值进行比较。
空(Null): 空表示一个变量的值是故意没有赋值。空的值不能与其他值进行比较。
Symbol: Symbol 是一个唯一的值,它不能被复制或修改。Symbol 通常用于创建私有变量或方法。
BigInt: BigInt 是一个允许创建任意的任意长度整数的内置对象,其值超出 JavaScript 数字的范围。BigInt 的值使用字符串表示,并以一个大写字母 N 作为后缀。
引用类型:
对象(Object): 对象是一个键值对的集合。对象可以用大括号表示。对象可以包含任何类型的值,包括基本类型和引用类型的值。
数组(Array): 数组是有序的元素集合。数组可以用方括号表示。数组中的元素可以是任何类型的值,包括基本类型和引用类型的值。
日期(Date): 日期对象表示一个特定的日期和时间。日期对象可以用 new Date() 构造函数创建。
函数(Function): 函数是一段可重用的代码块。函数可以用 function 创建。函数可以接收参数并返回一个值。
类型判断:
typeof 运算符用于确定变量的数据类型。typeof 运算符的语法如下:
typeof variable_name
typeof 运算符的返回值包括:
- string:如果变量是一个字符串。
- number:如果变量是一个数字。
- boolean:如果变量是一个布尔值。
- undefined:如果变量是一个未定义的值。
- object:如果变量是一个对象。
- function:如果变量是一个函数。
- symbol:如果变量是一个 Symbol 值。
- bigint:如果变量是一个 BigInt 值。
JavaScript中,typeof 操作符能够识别基本数据类型,却不能区分引用数据类型。对于引用数据类型,无论 typeof 返回值是函数、对象,其实现都是调用 typeof 返回值相同的内部构造函数完成的。
基本包装类:
基本包装类包括布尔包装类、数字包装类和字符串包装类。基本包装类是对基本类型的一种扩展,它提供了更多的功能。
布尔包装类:
布尔包装类是 Boolean 对象。Boolean 对象具有以下属性:
- value:布尔值。
- toString():返回布尔值的字符串表示形式。
数字包装类:
数字包装类是 Number 对象。Number 对象具有以下属性:
- value:数字值。
- toString():返回数字值的字符串表示形式。
字符串包装类:
字符串包装类是 String 对象。String 对象具有以下属性:
- value:字符串值。
- toString():返回字符串值的字符串表示形式。
基础包装类与基本数据类型的关系:
基础包装类和基本数据类型之间存在着密切的关系。基础包装类是对基本数据类型的一种扩展,它提供了更多的功能。基本数据类型可以隐式转换为基础包装类,反之亦然。
void:
void 运算符用于表示没有返回值的表达式,也没有返回值。void 运算符的语法如下:
void expression
void 运算符的返回值是 undefined。
BigInt:
BigInt 是一个允许创建任意的任意长度整数的内置对象,其值超出 JavaScript 数字的范围。BigInt 的值使用字符串表示,并以一个大写字母 N 作为后缀。BigInt 具有以下属性:
- value:BigInt 值。
- toString():返回 BigInt 值的字符串表示形式。
示例:
以下代码演示了如何使用 typeof 运算符确定变量的数据类型:
var a = 10;
var b = "hello";
var c = true;
var d = undefined;
var e = null;
var f = Symbol("symbol");
var g = BigInt("1234567890123456789012345678901234567890");
console.log(typeof a); // number
console.log(typeof b); // string
console.log(typeof c); // boolean
console.log(typeof d); // undefined
console.log(typeof e); // object
console.log(typeof f); // symbol
console.log(typeof g); // bigint
以下代码演示了如何使用基本包装类:
var a = new Boolean(true);
var b = new Number(10);
var c = new String("hello");
console.log(a.value); // true
console.log(b.value); // 10
console.log(c.value); // hello
以下代码演示了如何使用 void 运算符:
var a = void 0;
console.log(a); // undefined
以下代码演示了如何使用 BigInt:
var a = BigInt("1234567890123456789012345678901234567890");
console.log(a.value); // 1234567890123456789012345678901234567890