一、JavaScript执行机制
1、单线程
单线程:JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。
console.log(1); //先输出了1、2
setTimeout(function () {
console.log(3); //,等待5秒后输出3
}, 5000);
console.log(2);
2、同步和异步
同步:所谓同步,就是前一个任务结束后再执行后一个任务,程序的执行顺序与任务的排列顺序是一致的、同步的。
异步:所谓异步,就是在做一件事件的同时,可以去处理其他的事情。
3、执行机制
执行栈和任务队列如下图:
通过代码演示:
console.log(1);
setTimeout(function () {
console.log(3);
}, 0);
for (var i = 0, str = ''; i < 900000; i++) {
str += i; // 利用字符串拼接运算拖慢执行时间
}
console.log(2);
二、location对象
1、URL的组成
URL组成:
各部分 | 说明 |
protocol | 网络协议,常用的如http,ftp,mailto等 |
host | 服务器的主机名,如www.example.com |
port | 端口号,可选,省略时使用协议的默认端口,如http默认端口为100 |
path | 路径,如“/web/index.html” |
query | 参数,键值对的形式,通过“&”符号分隔,如“a=3&b=4” |
2、 location常用属性
属性 | 说明 |
location.search | 返回(或设置)当前URL的查询部分(“?”之后的部分) |
location.hash | 返回一个URL的锚部分(从“#”开始的部分) |
location.host | 返回一个URL的主机名和端口 |
location.hostname | 返回URL的主机名 |
location.href | 返回完整的URL |
location.pathname | 返回URL的路径名 |
location.port | 返回一个URL服务器使用的端口号 |
location.protocol | 返回一个URL协议 |
3、locatin的常用方法
方法 | 说明 |
assign() | 载入一个新的文档 |
reload() | 重新加载当前文档 |
replace() | 用新的文档替换当前文档,覆盖浏览器当前记录 |
三、natigator对象
1、常用属性
属性 | 说明 |
appCodeName | 返回浏览器的内部名称 |
appName | 返回浏览器的完整名称 |
appVersion | 返回浏览器的平台和版本信息 |
cookieEnabled | 返回指明浏览器中是否启用Cookie的布尔值 |
platform | 返回运行浏览器的操作系统平台 |
2、常用方法
常用方法javaEnabled():指定是否在浏览器中启用Java。
四、history对象
1、 常用属性
history.length属性:返回历史列表中的网址数。
2、 常用方法
方法 | 说明 |
back() | 加载history列表中的前一个URL |
forward() | 加载history列表中的下一个URL |
go() | 加载history列表中的某个具体页面 |