六、Javascript数据类型和类型转换
在JavaScript中,理解数据类型,如何区分它们,以及它们如何被转换是至关重要的。在这篇文章中,我们将探讨这些主题,以帮助巩固你的JavaScript基础。
1.基础数据类型和引用数据类型
当涉及JavaScript的数据类型时,我们可以将其分为两类:基本数据类型和引用数据类型。
1)基本数据类型(Primitive Types):
- 数字(Number):表示数值,可以包含整数和浮点数。例如:let age = 25;
- 字符串(String):表示文本数据,由一串字符组成。可以使用单引号或双引号包裹。例如:let name = 'John';
- 布尔(Boolean):表示逻辑值,只有两个可能的值:true(真)和false(假)。例如:let isStudent = true;
- 空值(Null):表示空值或无值。它是一个特殊的关键字null。例如:let myVariable = null;
- 未定义(Undefined):表示变量声明但未赋值的值。它是一个特殊的关键字undefined。例如:let myVariable;
- 符号(Symbol):表示唯一且不可变的值,用于创建对象属性的唯一标识符。在ES6中引入。例如:let id = Symbol('id');
2)引用数据类型(Reference Types):
- 对象(Object):表示复杂的数据结构,可以包含多个键值对。对象可以通过大括号{}创建,或者通过构造函数创建。例如:
let person = { name: 'John', age: 25, city: 'New York'};
- 数组(Array):表示有序的数据集合,可以包含任意类型的数据。数组可以通过方括号[]创建。例如:
let numbers = [1, 2, 3, 4, 5];
- 函数(Function):是一段可执行的代码块,可以接收参数并返回值。函数可以作为变量、参数传递、存储在对象属性中等。例如:
function greet(name) { console.log('Hello, ' + name + '!');}
基本数据类型在JavaScript中是按值传递的,而引用数据类型则是按引用传递的。这意味着基本数据类型的值在传递过程中是复制的,而引用数据类型的值在传递过程中是共享的。
了解这些基本数据类型和引用数据类型,为后续讲解类型转换提供了基本的背景知识。它们在JavaScript中的不同行为和用法对于理解类型转换的概念和机制非常重要。
- 使用typeof操作符
在JavaScript中,我们可以使用typeof操作符来获取一个值的数据类型。下面是一些例子:
console.log(typeof undefined); // 'undefined' console.log(typeof true); // 'boolean' console.log(typeof 78); // 'number' console.log(typeof 'hey'); // 'string' console.log(typeof Symbol()); // 'symbol' console.log(typeof BigInt(1)); // 'bigint' console.log(typeof new String('abc')); // 'object' console.log(typeof null); // 'object' console.log(typeof function(){}); // 'function' console.log(typeof {name: 'Jack'}); // 'object'
注意,typeof返回的是值的类型,而不是变量的类型。因为在JavaScript中,变量本身并没有类型,它们可以持有任何类型的值。
对大多数对象使用typeof时,返回的结果是'object',对于函数则返回'function'。特别的,对null使用typeof返回的也是'object',这是一个历史遗留的bug,我们无法改正。
所以,如果我们需要检查一个值是否为null,我们可以使用以下方式:
var a = null; console.log(!a && typeof a === "object"); // true
带你读《现代Javascript高级教程》六、Javascript数据类型和类型转换(2)https://developer.aliyun.com/article/1349669?groupCode=tech_library