JavaScript知识点复习(2)

一、Null 和 Undefined的区别

Null 表示“无”的对象,转换为数值时为0

典型用法:
a、作为函数的参数,表示该函数的参数不是对象;
b、作为对象原型链的终点。

Undefined表示一个“无”的原始值,转换为数值时为NaN

典型用法:
a、变量被声明,但未赋值;
b、调用函数时,应该提供的参数没有提供,该参数=undefined;
c、对象没有赋值的属性,该属性的值=undefined;
d、函数没有返回值,默认返回undefined。

二、Boolean

只有两个值:true 和 false;
转换函数 Boolean() : JS 所有类型的值都有与这两个Boolean值等价的值,具体的转换关系见下表:

三、检测类型

基本数据类型:

typeof操作符是确定一个变量是字符串、数值、布尔值,还是udefined的最佳工具。如果变量的值是一个对象或null,则typeof操作符会返回“object”。

引用类型:

instanceof操作符
语法:result = variable instanceof constructor

alert(person instanceof Object);//变量person是Object吗?

如果变量是给定引用类型的实例,instanceof操作符就会返回true。(所有引用类型
的值都是Object的实例)

四、垃圾收集

JavaScript具有自动垃圾收集机制,执行环境会负责管理代码执行过程中使用的内存。

1、标记清除(最常用的垃圾收集方式)

当变量进入环境时,就将这个变量标记为“进入环境”;当变量离开环境时,则将其标记为“离开环境”。从逻辑上讲,永远不能释放进入环境的变量所占用的内存。

2、引用计数(不太常见)——跟踪记录每个值被引用的次数。

当某个值的引用次数变成0时,就可以将其占用的内存空间收回来。
存在一个严重的问题:循环引用

3、性能问题

在IE中,调用window.CollectGarbage()方法会立即执行垃圾收集;
在Opera 7 及更高版本中,调用window.opera.collect()方法也会启动垃圾收集历
程。

4、管理内存

分配给Web浏览器的可用内存数量通常要比分配给桌面应用程序的少,防止运行JavaScript的网页耗尽全部系统内存而导致系统崩溃;内存分配问题不仅会影响给变量分配内存,同时还会影响调用栈以及在一个线程中能够同时执行的语句数量。

优化内存的最佳方式——解除引用(执行的代码只保存必要的数据,一旦数据不再有用,最好通过将其值设置为null来释放其引用)。这一做法适用于大多数全局变量和全局对象的属性,局部变量会在它们离开执行环境时自动解除引用。

解除引用的真正作用——让值脱离执行环境,以便垃圾收集器下次运行时将其收回。

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

推荐阅读更多精彩内容

  • 第1章 JavaScript 简介 JavaScript 具备与浏览器窗口及其内容等几乎所有方面交互的能力。 欧洲...
    力气强阅读 1,156评论 0 0
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,351评论 11 349
  • Java8张图 11、字符串不变性 12、equals()方法、hashCode()方法的区别 13、...
    Miley_MOJIE阅读 3,726评论 0 11
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 2,686评论 0 11
  • Vim使用总结 前言 Vim是Linux中经常使用到的文本编辑器,之前虽然有学过过Vim的使用,不过,由于使用的频...
    颜洛滨阅读 337评论 0 0