IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 2、JavaScript 数据类型(1) -> 正文阅读

[JavaScript知识库]2、JavaScript 数据类型(1)

JS 中存在着多种数据类型,主要分为两大块,一块是基本数据类型(值类型),一块是引用类型。


1、基本数据类型与其“对象包装器”

基本数据类型一共有 7 种,分别是 string,number,bigint,boolean,symbol,null 和 undefined。

基本数据类型单纯从表面上看,它就是一个值,一个值是没有办法像对象一样通过点符号去获取属性的。

然后实际上的结果却出乎我们的意料,就像下面这样:

let name = "zhangsan";
name.length; // 8
name.split("") // ['z', 'h', 'a', 'n', 'g', 's', 'a', 'n']
name.toUpperCase() // 'ZHANGSAN'

你可以看到,name 只是一个字符串,但是却可以像对象一样利用点符号去使用属性和方法。也许你早已经在自己的项目这样使用过,只是不清楚为什么会这样。

实际上,早期 JavaScript 创建者就面对过这样的问题:人们既希望能对诸如字符串、数字之类的基本数据类型执行一些方法去操作,又想要基本数据类型尽可以的简单轻量。


而最后的解决办法是这样的:
1.创建提供额外功能的特殊的“对象包装器”,这些包装器提供了一些内置的方法去使用。
2.你创建的仍然基本数据类型,只不过当你想要调用一些方法时,JS 会自动的为基本数据类型套上对应的“对象包装器”供你使用,当使用完后即被销毁


当然了,目前的 JavaScript 引擎高度优化了这个过程。因此你只需要了解上面提到的基本原理,剩下的就是大胆的去使用了。


上面我们利用字符串来举例,实际上不同基本数据类型的的“对象包装器”都是不同的,他们分别为:String、Number、Boolean、Symbol 和 BigInt


注意:null/undefined 是例外,它们没有对应的“对象包装器”,也就没有提供任何方法。像下面这样访问是会直接导致程序报错:

null.a; // error ...
undefined.b // error ...

还有一点需要大家注意: 尽管 JS 提供了 String/Number/Boolean 的构造器,但是我们并不推荐使用下面这样的方式去定义变量:

let num = new Number(100);

这是因为这样定义出来的 num 其本质是一个对象:

typeof num; // 'object'
num // Number{100, ...}

同时,当我们使用基本数据类型的 0 时,if 中是判断为 false 的,然后如果使用 new Number(0) 结果却不一样:

// 1、使用基本数据类型
if (0) {
 console.log(1);
} else {
 console.log(2); // 打印 2
}   

// 2、使用 new Number 构造
if (new Number(0)) {
 console.log(1); // 打印 1
} else {
 console.log(2);
}

当然,String/Number/Boolean 有一个用法是被支持的,那就是不带 new 的使用,可以用于类型的转换。

// 不带 new 的使用是没问题的
let num = Number("100"); // 将字符串转成数字
let str = String(100); // 将数字转成字符串

到这里第一小节的内容就基本结束了,本小节我们主要介绍了基本数据类型及“对象包装器”这个概念。本小节的内容并不难,相信大家读完后一定可以所有收获。

同时欢迎大家关注我的微信公众号:火锅只爱鸳鸯锅 !
在这里插入图片描述

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-02-27 10:59:03  更:2022-02-27 10:59:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:23:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码