本文已参与「新人创作礼」活动,一起开启掘金创作之路。
执行机制
同步
前一个任务结束后再执行后一个任务,程序的执行顺序与任务的排列顺序是一致的、同步的。
同步任务都在主线程上执行,形成一个执行栈。
异步
你在做一件事情时,因为这件事情会花费很长时间,在做这件事的同时,你还可以去处理其他事情。
JS的异步是通过回调函数实现的。
一般而言,异步任务有以下三种类型:
1、普通事件,如click、resize等。
2、资源加载,如load、error等。
3、定时器,包括setlnterval、setTimeout等。
异步任务相关回调函数添加到任务队列中(任务队列也称为消息队列)。
2.5Location对象
window对象给我们提供了一个location属性用于获取或设置窗体的URL,并且可以用于解析URL。因为这个属性返回的是一个对象,所以我们将这个属性也称为location对象。
2.5.1 对象属性
| 属性 | 返回值 |
|---|---|
| location.href | 获取或者设置整个URL |
| location.host | 返回主机(域名)www.itheima.com |
| location.port | 返回端口号如果未写返回空字符串 |
| location.pathname | 返回路径 |
| location.search | 返回参数 |
| location.hash | 返回片段#后面内容常见于链接锚点 |
2.5.2对象方法
| location 对象方法 | 返回值 |
|---|---|
| location.assign() | 跟href一样,可以跳转页面(也称为重定向页面) |
| location.replace() | 替换当前页面,因为不记录历史,所以不能后退页面 |
| location.reload() | 重新加载页面,相当于刷新按钮或者f5如果参数为true 强制刷新ctrl+f5 |
2.6 navigator 对象
navigator对象包含有关浏览器的信息,它有很多属性,我们最常用的是userAgent,该属性可以返回由客户机发送服务器的user-agent头部的值。
下面前端代码可以判断用户那个终端打开页面,实现跳转
if ((navigator.userAgent.match( /(phone|pad|pod|iPhone|iPod| ios|iPad/Android/Mobile|BlackBerry|IEMobile |MQQRrowser|JUC| rennec | wOSBrowser|BrowserNG | webosl symbian | windows Phone)/i) )) {
window . location.href = "";//手机
}else {
window . location.href = "" ;l/电脑
}