文章目录
- 前言
- 一、原始值与引用值
- 1.1.基本用法
- 1.2.类型确定
- 1.3.基本包装类型
- 总结
前言
此系列文章用于记录小萌新的ES6的学习经历如有什么错误或者不好的地方请各位大佬多多指教
一、原始值与引用值
1.1.基本用法
原始值:主要指的是单一的一个数据如:'abc'
true
20
等这种一般的值;
- 在ES中一共有六种原始值:Undefined、Null、Boolean、Number、String和Symbol。
引用值:主要是若干个原始值或者引用值所组成的对象;
- ES规定我们不能直接访问对象的存储空间;
- 实际操作对象时,访问的是保存对象的内存地址,即该对象的引用。
代码如下(示例):
{
let person1 = "小明";
person1.sex = "男";
console.log(person1); // 小明
console.log(person1.sex); // undefined
let person2 = new Object();
person2.name = "小芳";
person2.speak = function () {
console.log("你好,我是" + this.name); // 你好,我是小芳
};
}
- 原始值不可以创建属性和方法,而引用值可以
1.2.类型确定
如果我们想查看原始值的具体类型可以使用typeof()
方法进行辨别
当然引用值也可以使用这个方法但是所有的引用值的类型都是Object
,所以使用typeof()
的意义并不大可以使用instanceof
关键字来确定该引用值是不是某个构造函数的实例。
代码如下(示例):
{
let a = 'haha';
console.log(typeof(a)); // string
let b = new Object();
let c = [1, 2, 3];
console.log(b instanceof Object); // true
console.log(c instanceof Array); // true
}
1.3.基本包装类型
为了让用户更方便是用各个引用对象中的一系列方法,ES提供了三种特殊的引用类型:Boolean、Number和String。
每当用到某个原始值的方法或属性时,后台会创建一个相应的原始值包装类型的对象,从而暴露出操作原始值的各种方法。
{
let a = "123456789";
let b = a.substr(0, 5); // 12345
}
后台执行步骤:
- 创建一个包含了原始值的String类型的实例;
- 调用实例上的特定方法;
- 销毁该实例;
所以我们在使用原始值的时候也可以使用包装类型的各种方法。
总结
本文简单介绍了ES的原始值和引用值的一些基本用法和小特性。