JavaScript小结

JavaScript类型总结

1.在es5规范中,基本类型有五种:1).Null,2).Boolean,3).String,4).Number,5).Undefined
注:在es6中又添加了一个基本类型:Symbol
2.引用类型1.Object,2.Array,3.Date,4.RegExp,5.Function
3.7种语言类型:1).Null,2).Boolean,3).String,4).Number,5).Undefined,6).Symbol,7).Object。

来自:https://www.ecma-international.org/ecma-262/9.0/index.html#sec-well-known-intrinsic-objects

编程规范void 0 替代 undefined

js中你声明一个变量,eg:var a;并没有给a变量赋值,此时这个变量的值就是undefined。在js中undefined是一个变量,并不是一个关键字,我们可以随时随地的修改。这是js设计的缺陷,所以我们在平时开发中,避免这个问题,大佬们就推荐了用void0来代替undefined。
正因为undefined在js中的值是可变的,因此为了得到真正的undefined,我们就可以通过void 0 来获取。具体如下

var a= {
    _void: 1,
    get _Void(){
        console.log(this._void);
    }
};
var test = void a._Void; // 显示0
console.log(test); // 显示undefined

装箱与拆箱操作

1.定义:装箱:把基本数据类型转换为对应的引用数据类型,拆箱:把引用数据类型转换为基本数据类型

装箱

2.我们在常用的基本类型中,如String Number类型。在创建的时候,他并没有String,Number对象下的方法。而是js自动给我们进行了装箱操作。
在这个字符串a中,仅仅是一个普通的字符串,并没有String中的方法被调用。而是js为我们自动装箱,进行了如下操作。同理Number类型也是一样,但是es6中增加的symbol类型不能进行new装箱

var a = '1234';
a  = new String(a);
//自己的操作
//.....调用string下的方法
//消除内存消漏问题
a = null;

拆箱

3.在拆箱操作中,可以通过valueof与toString方法实现

var a = 1234;
//装箱
a = new String(a);
//自己的操作
//....调用string下的方法
//拆箱
a.valueof();//number
a.toString();//string

总结

javascript中又很多这种小问题,有的时候工作的时候很难发现,需要沉静下来慢慢去消化和解决。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 整个javascript分为三个组成部分(ECMAScript/DOM/BOM) 一、核心部分ECMAScript...
    背麻袋的袋鼠阅读 450评论 1 3
  • Javascript外部引用 注意事项把Javascript代码放在什么位置有时会有影响,使用请注意。 根基语法 ...
    jdzhangxin阅读 745评论 2 8
  • 0. 写在前面 当你开始工作时,你不是在给你自己写代码,而是为后来人写代码。 —— Nichloas C. Zak...
    康斌阅读 5,401评论 1 42
  • 女性 购买具主动性,购买心理不稳定,易受外界干扰,注重外观、质量、价格、愿意接受建议。 男性 购买具冲动性,理智较...
    水墨道人阅读 1,119评论 0 2
  • 很多人觉得,很多事情很容易,顺理了即可成章。 他们觉得自己所拥有的智商,能够让自己看懂所有事物的发展;他们觉得自己...
    皮卡弟弟阅读 434评论 0 1