方法调用中,谁调用,this就指向谁
构造函数中,this指向构造函数的实例
js执行
● js语言的一大特点就是单线程,同一时间只能做一件事。单线程意味着所有任务都要排队,前一个任务结束,才执行下一个任务。这就有个问题:如果js执行时间太长,这样会造成页面渲染不连贯,导致页面渲染加载阻塞
● 同步:前一个任务执行完毕之后再执行后一个任务,程序的执行顺序和任务的排列顺序是一致的、同步的
● 异步:在处理一个任务时,这个任务需要耗费很长时间,那在处理这个任务的同时,可以去做其他的任务(如:煲汤需要半小时,那么这个过程中可以洗菜切菜炒菜)
js执行机制
同步任务:都在主线程上执行,形成一个执行栈
异步任务:通过回调函数实现。异步任务相关的回调函数放到任务队列中(也叫消息队列)
● 1、普通事件,如click、resize等
● 2、资源加载事件,如load、error等
● 3、定时器,包括setTimeout和setInterval
机制
● 1、先执行执行栈中的同步任务
● 2、异步任务(回调函数)放到任务队列中
● 3、一旦执行栈中的同步任务全部执行完毕,系统会依次按序读取任务队列中的异步任务。被读取到的异步任务结束等待状态,进入执行栈中开始执行
location对象
● window对象给我们我提供了一个location属性用于获取或设置窗体的URL,并且可以用于解析URL。因为这个属性返回的是一个对象,所以也称这个属性为location对象
● URL:统一资源定位器(Uniform Resource Locator),是互联网上标准资源的地址。互联网上每个资源都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它
location对象属性
● location.href 获取或设置整个URL
● location.host返回主机(域名) (如www.itheima.com)
● location.port 返回端口号,如果为设置则返回空字符 ● location.pathname 返回路径
● location.search 返回参数
● location.hash 返回片段 井号后面的内容 常见于锚点 链接
● location对象方法
● location.assign( ),跟href属性类似,可以跳转页面(也称为重定向页面)
● location.replace( ),替换当前页面,因为不记录历史,所以不能后退页面
● location.reload( ),重新加载页面,相当于F5刷新按钮。参数默认是空或者为false,则直接刷新;当参数设置为true时为强制刷新(相当于ctrl+f5)
navigator对象
● navigator对象包含很多浏览器的信息,它有很多属性,我们最常用的是userAgent,该属性可以返回由客户机发送服务器的user-agent头部的值
history对象
● window对象给我们提供了一个history对象,与浏览器历史记录进行交互。该对象包含用户(在浏览器窗口中)访问过的URL
方法
● history.back( ),后退功能
● history.forward( ),前进功能
● history.go(参数),前进后退功能。参数为1,前进一个页面;参数为-1,后退一个页面