promise是一个构造函数,下面是一个简单实例
var promise = new Promise((resolve,reject) => {
if (操作成功) {
resolve(value)
} else {
reject(error)
}
})
promise.then(function (value) {
// success
},function (value) {
// failure
})
1、 CSS选择器的解析是从右向左解析的。若从左向右的匹配,发现不符合规则,需要进行回溯,会损失很多性能。若从右向左匹配,先找到所有的最右节点,对于每一个节点,向上寻找其父节点直到找到根元素或满足条件的匹配规则,则结束这个分支的遍历。两种匹配规则的性能差别很大,是因为从右向左的匹配在第一步就筛选掉了大量的不符合条件的最右节点(叶子节点),而从左向右的匹配规则的性能都浪费在了失败的查找上面。
2、 而在 CSS 解析完毕后,需要将解析的结果与 DOM Tree 的内容一起进行分析建立一棵 Render Tree,最终用来进行绘图。在建立 Render Tree 时(WebKit 中的「Attachment」过程),浏览器就要为每个 DOM Tree 中的元素根据 CSS 的解析结果(Style Rules)来确定生成怎样的 Render Tree。
1、 不要在同一行声明多个变量
2、 请使用===/!==来比较true/false或者数值
3、 使用对象字面量替代new Array这种形式
4、 不要使用全局变量
5、 Switch语句必须带有default分支
6、 函数不应该有时候有返回值,有时候没有返回值
7、 For循环必须使用大括号
8、 IF语句必须使用大括号
9、 for-in循环中的变量 应该使用var关键字明确限定作用域,从而避免作用域污染
display:none 不显示对应的元素,在文档布局中不再分配空间(回流+重绘)
visibility:hidden 隐藏对应元素,在文档布局中仍保留原来的空间(重绘)
网页标准
和标准制定机构
都是为了能让 web
发展的更‘健康’,开发者遵循统一的标准,降低开发难度,开发成本,SEO
也会更好做,也不会因为滥用代码导致各种 BUG
、安全问题,最终提高网站易用性。
defer,只支持IE
async
:
创建script
,插入到DOM
中,加载完毕后callBack
1、 栈:原始数据类型(Undefined
,Null
,Boolean
,Numbe
r、String
)
2、 堆:引用数据类型(对象、数组和函数)
3、 两种类型的区别是:存储位置不同;
4、 原始数据类型直接存储在栈(stack
)中的简单数据段,占据空间小、大小固定,属于被频繁使用数据,所以放入栈中存储;
5、 引用数据类型存储在堆(heap
)中的对象,占据空间大、大小不固定,如果存储在栈中,将会影响程序运行的性能;引用数据类型在栈中存储了指针,该指针指向堆中该实体的起始地址。当解释器寻找引用值时,会首先检索其
6、 在栈中的地址,取得地址后从堆中获得实体
![33_1.png][33_1.png]
在alt和title同时设置的时候,alt作为图片的替代文字出现,title是图片的解释文字。
Object.freeze()
Object.freeze()
方法可以冻结一个对象。一个被冻结的对象再也不能被修改;冻结了一个对象则不能向这个对象添加新的属性,不能删除已有属性,不能修改该对象已有属性的可枚举性、可配置性、可写性,以及不能修改已有属性的值。此外,冻结一个对象后该对象的原型也不能被修改。freeze()
返回和传入的参数相同的对象。
Object.seal()
Object.seal()方法封闭一个对象,阻止添加新属性并将所有现有属性标记为不可配置。当前属性的值只要可写就可以改变。
方法的相同点:
1、 ES5新增。
2、 对象不可能扩展,也就是不能再添加新的属性或者方法。
3、 对象已有属性不允许被删除。
4、 对象属性特性不可以重新配置。
方法不同点:
Object.seal
方法生成的密封对象,如果属性是可写的,那么可以修改属性值。* Object.freeze
方法生成的冻结对象,属性都是不可写的,也就是属性值无法更改。改变元素的外边距用 margin,改变元素的内填充用 padding。
<img>
的title
和alt
有什么区别此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。