- Boolean
/*
// 问题:为什么num是一个基本数据类型,可以像对象一样调用方法呢?
// 基本数据类型
var num = 10;
console.log ( typeof num );
num.toString () ;
/*
本质相当于执行了以下代码(JS解释器检测到num调用来toString()方法,所以快速处理了)
(1) var num = new Number(10); // 创建对象
(2) num.toString(); // 调用对象方法
(3) num = null; // 删除对象
*/
// 对象类型
var num1 = new Number(10);
/*
由于num1本身就是对象类型,所以这里可以直接调用,无需转换
*/
num1.toString();
console.log ( num1 );
console.log ( typeof num1 ); // object
var str = ‘111’;
str.toString();
/*
(1)var str = new String(‘111’);
(2)str.toString();
(3)str = null;
*/
var bol = true;
bol.toString();
/*
(1) var bol = new Boolean(true);
(2) bol.toString();
(3) bol = null();
*/
/*
基本包装类型和引用类型(new Number()/String()/Boolear()的区别
1.new产生的对象是长期占用内存,直到脚本结束
2.基本包装类型属于后台瞬发,用完就销毁了对象:对象 = null
所以:String/Number/Boolean,我们在开发中都是使用基本包装类型
*/
4.数组去重
数组去重:将数组中重复的元素去掉
-
JS数组没有删除具体元素的删除(只能删掉值,删不掉元素的索引),可以使用另外一个结构来进行存储
-
新数组
-
新对象
-
JS数组虽然本质可以删除第一个和最后一个元素,可以利用这一特性,交换当前重复的元素到最后,然后进行删除(pop() 或者length–)