带你读《现代Javascript高级教程》六、Javascript数据类型和类型转换(1)

简介: 带你读《现代Javascript高级教程》六、Javascript数据类型和类型转换(1)

六、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中的不同行为和用法对于理解类型转换的概念和机制非常重要。

  1. 使用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

相关文章
|
5月前
|
机器学习/深度学习 JavaScript 前端开发
JS进阶教程:递归函数原理与篇例解析
通过对这些代码示例的学习,我们已经了解了递归的原理以及递归在JS中的应用方法。递归虽然有着理论升华,但弄清它的核心思想并不难。举个随手可见的例子,火影鸣人做的影分身,你看到的都是同一个鸣人,但他们的行为却能在全局产生影响,这不就是递归吗?雾里看花,透过其间你或许已经深入了递归的魅力之中。
268 19
|
8月前
|
资源调度 JavaScript 前端开发
前端开发必备!Node.js 18.x LTS保姆级安装教程(附国内镜像源配置)
本文详细介绍了Node.js的安装与配置流程,涵盖环境准备、版本选择(推荐LTS版v18.x)、安装步骤(路径设置、组件选择)、环境验证(命令测试、镜像加速)及常见问题解决方法。同时推荐开发工具链,如VS Code、Yarn等,并提供常用全局包安装指南,帮助开发者快速搭建高效稳定的JavaScript开发环境。内容基于官方正版软件,确保合规性与安全性。
7522 23
|
11月前
|
JavaScript 前端开发 Java
JS中的隐式类型转换规则
JavaScript 是一门弱类型语言,变量类型在运行时会进行隐式转换。本文总结了常见的隐式转换规则,包括运算符转换、等号比较和布尔值转换等。例如,`1 + {a: 1}` 会先调用对象的 `toString()` 方法,最终结果为 `'1[object Object]'`。此外,还详细解析了 `undefined` 和 `null` 的运算行为,以及 `![] == []` 等特殊情况。通过这些例子,帮助开发者更好地理解 JavaScript 中的类型转换机制。
195 6
JS中的隐式类型转换规则
|
JavaScript 前端开发 安全
如何处理 JavaScript 中的类型转换错误?
【10月更文挑战第9天】处理类型转换错误需要综合运用多种方法和策略,同时要保持对潜在问题的警惕性。通过合理的错误处理,可以提高程序的健壮性,减少因类型转换错误带来的负面影响。
363 57
|
JavaScript 前端开发
JS隐式类型转换规则
【10月更文挑战第9天】 不同的 JavaScript 引擎可能在隐式类型转换的具体实现上存在一些细微差别。理解这些隐式类型转换规则对于正确处理数据和避免错误非常重要。
201 57
|
Web App开发 JavaScript 前端开发
2024年5月node.js安装(winmac系统)保姆级教程
本篇博客为2024年5月版Node.js安装教程,适用于Windows和Mac系统。作者是一名熟悉JavaScript与Vue的大一学生,分享了Node.js的基本介绍、下载链接及简单安装步骤。安装完成后,通过终端命令`node -v`验证版本即可确认安装成功。欢迎关注作者,获取更多技术文章。
487 2
2024年5月node.js安装(winmac系统)保姆级教程
|
11月前
|
存储 JavaScript 前端开发
JavaScript中的数据类型以及存储上的差别
通过本文的介绍,希望您能够深入理解JavaScript中的数据类型及其存储差别,并在实际编程中灵活运用这些知识,以提高代码的性能和稳定性。
252 3
|
存储 JavaScript 前端开发
js中的数据类型
JavaScript 中的数据类型包括五种基本类型(String、Number、Undefined、Boolean、Null)和三种引用类型(Object、Array、Function,以及ES6新增的Symbol)。基本类型直接存储值,引用类型存储的是指向实际数据的内存地址。了解它们的区别对于掌握 JavaScript 的变量赋值和函数传参至关重要。
287 1
|
JavaScript 前端开发
js教程——函数
js教程——函数
290 4
|
存储 JavaScript 前端开发
JavaScript 数据类型详解:基本类型与引用类型的区别及其检测方法
JavaScript 数据类型分为基本数据类型和引用数据类型。基本数据类型(如 string、number 等)具有不可变性,按值访问,存储在栈内存中。引用数据类型(如 Object、Array 等)存储在堆内存中,按引用访问,值是可变的。本文深入探讨了这两种数据类型的特性、存储方式、以及检测数据类型的两种常用方法——typeof 和 instanceof,帮助开发者更好地理解 JavaScript 内存模型和类型检测机制。
462 0
JavaScript 数据类型详解:基本类型与引用类型的区别及其检测方法