JavaScript基础梳理
DOM
文档对象模型(DOM,Document Object Model)提供访问和操作网页内容的方法和接口(API,Application Programming Interface)。DOM把整个页面映射为一个多层节点结构。
BOM
浏览器对象模型(BOM,Browser Object Model)。提供与浏览器交互的方法和接口。
重要的对象和方法:
窗口位置——screenLeft,screenTop(screenX,screenY)
窗口大小——innerWidth,innerHeight,outerWidth,outerHeight
导航和打开窗口——window.open()
间歇调用——setInterval()
超时调用——setTimeout()
location对象——包含属性hash,host,hostname,href,pathname,port,protocol,search
严格模式
ECMAScript 5引入了严格模式(strict mode)这个概念。严格模式是为JavaScript定义了一种不同的解析与执行模型。在严格模式下,ECMAScript3的一些不确定的行为将得到处理,而且对某些不安全的操作也会抛出错误。
通过在脚本顶部或者函数内部上方添加
"use strict";
即可指定脚本或函数在严格模式下执行
七种数据类型
空值(null)
未定义(undefined)
布尔值(boolean)
数字(number)
字符串(string)
对象(object)
符号(symbol,ES6中新增)
垃圾收集
标记清除(mark-and-sweep)。给进入环境和离开环境的变量加上不同的标记,定时清理离开环境的变量。
引用计数(reference counting)。追踪记录所有值被引用的次数,当变为0时即可回收。存在的问题:循环引用导致永远无法回收。解决办法:将循环引用的变量设置为null(解除引用)。
对象(object)
Object构造函数
var person = new Object();
person.name = "Tom";
person.age = 22;
对象字面量表示法
var person = {
name : "Tom",
age: "22"
};
函数内部属性
函数内部有两个特殊的对象:arguments和this。
arguments的主要用途是保存函数参数。但这个对象内部还有一个名叫callee的属性,该属性是一个指针,指向拥有这个arguments对象的函数。
this引用的是函数执行的环境对象。
函数的属性和方法
属性:
length:表示函数希望接受的命名参数的个数
prototype:
方法:
apply():
call():
上述两个方法的用途都是在特定的作用域中调用函数,区别是apply()传入参数数组,而call()需要将参数逐一传入。
bind():(ECMAScript5定义)该方法会创建一个函数的实例,其this值会被绑定到传给bind()函数的值。