有哪些数据类型?
根据 JavaScript 中的变量类型传递方式,分为基本数据类型和引用数据类型两大类七种。
基本数据类型包括 Undefined、Null、Boolean、Number、String、Symbol(ES6 新增)六种。引用数据
类型只有 Object 一种,主要包括对象、数组和函数。
判断数据类型采用 typeof 操作符,有两种语法:
typeof 123;//语法一
const FG=123;
typeof FG;//语法二
typeof(null)//返回 object;
null==undefined//返回 true,因为 undefined 派生自 null;null===undefined//返回 false。
基本数据类型和引用数据类型有什么区别?
两者作为函数的参数进行传递时:
1、基本数据类型传入的是数据的副本,原数据的更改不会影响传入后的数据。
2、引用数据类型传入的是数据的引用地址,原数据的更改会影响传入后的数据。
两者在内存中的存储位置:
1、基本数据类型存储在栈中。
2、引用数据类型在栈中存储了指针,该指针指向的数据实体存储在堆中。判断数据类型的方法有
哪些?
1、利用 typeof 可以判断数据的类型;
2、A instanceof B 可以用来判断 A 是否为 B 的实例,但它不能检测 null 和 undefined;
3. B. constructor==A 可以判断 A 是否为 B 的原型,但 constructor 检测 Object 与 instanceof 不一样,还可
以处理基本数据类型的检测。
不过函数的 constructor 是不稳定的,这个主要体现在把类的原型进行重写,在重写的过程中很有可
能出现把之前的 constructor 给覆盖了,这样检测出来的结果就是不准确的。
4、Object. prototype. toString. call()
Object. prototype. toString. call()是最准确最常用的方式。
与深拷贝有何区别?如何实现?
浅拷贝只复制指向某个对象的指针,而不复制对象本身。浅拷贝的实现方式有: