加号+的定义
对于“+”来说,有两个含义:第一个含义是做字符串拼接,第二个含义是加减法中的加法。
1,如果操作数里有一个是字符串,其他的值将被转换成字符串;
2,其他情况,操作数转换成数字执行加法运算。
而对于“ - ”来说,只有一个含义,就是做减法,自然不会转化成字符串了。
web页面生命周期
一般浏览器的加载顺序如下:
- script executed
- readyState : interactive
- DOMContentLoaded
- image onload
- iframe onload
- readyState : complete
- window onload
总结:
-
同步的JavaScript脚本最先执行,它先于DOMContentLoaded事件执行。
-
当DOM准备就绪时,DOMContentLoaded事件在document上触发。可以在这个阶段利用JavaScript来操作DOM元素。
所有脚本都执行完毕,除了那些外部使用异步(async)或延迟(defer)加载的脚本 图片和其他资源可能仍在载入过程中。
-
window上的onload事件,在页面加载完所有资源后触发。 大多数的操作我们都应该放在DOMContentLoaded事件中执行,而不要放在window.onload中执行,因为通常的操作不用等到最后才执行。
-
window上的beforeunload事件,该事件在用户准备离开页面,在unload事件之前触发。如果beforeunload返回一个字符串,浏览器会给出用户是否真的想离开的提示。
-
window上的unload事件,当用户最终离开时会触发该事件。在unload的事件处理程序中,我们只能做简单的事情,不涉及延迟或询问用户。由于这个限制,它很少使用。
-
document.readyState表示文档的当前状态,可以在readystatechange事件中跟踪文档状态的变更。
loading – 文档正在载入。 interactive – document已经解析完毕时触发,几乎与DOMContentLoaded同时发生,但在DOMContentLoaded事件之前触发。 complete – 文档和资源加载完成时触发,几乎与window.onload同时发生,但在onload事件之前触发。
导致回流发生的因素
- 调整窗口大小,浏览器窗口尺寸改变——resize事件发生时
- 元素尺寸改变——边距、填充、边框、宽度和高度;改变字体大小
- 页面渲染初始化
- 元素位置改变
- 样式表变动
- 元素内容变化,尤其是输入控件
- CSS伪类激活
- DOM操作,添加或者删除可见的DOM元素
- offsetWidth, width, clientWidth, scrollTop/scrollHeight的计算,
会使浏览器将渐进回流队列Flush,立即执行回流。 - 内容改变——比如文本改变或者图片大小改变而引起的计算值宽度和高度改变