获得徽章 9
赞了这篇沸点
赞了这篇文章
#每天一个知识点# 5.
执行以下程序,会抛出语法错误的式子是(②)
var s = Symbol('key'); ...①
console.log(s + '123'); ...②
var obj = {
[s]:function(){console.log(1);} ...③
}
var b = Reflect.ownKeys(obj); ...④
官方解析:Symbol是不完整的构造函数,创建symbol对象时不需要new操作符,①式不会抛出异常;symbol对象不能用于数据运算,包括+、-、*、/等,②式会抛出异常;symbol对象的唯一作用是作为对象的属性名,这样可以防止属性因重名而覆盖,使用时必须用[],③式不会抛出异常;使用Reflect.ownKeys()可以遍历对象的属性,包括symbol属性,④式不会抛出异常。
执行以下程序,会抛出语法错误的式子是(②)
var s = Symbol('key'); ...①
console.log(s + '123'); ...②
var obj = {
[s]:function(){console.log(1);} ...③
}
var b = Reflect.ownKeys(obj); ...④
官方解析:Symbol是不完整的构造函数,创建symbol对象时不需要new操作符,①式不会抛出异常;symbol对象不能用于数据运算,包括+、-、*、/等,②式会抛出异常;symbol对象的唯一作用是作为对象的属性名,这样可以防止属性因重名而覆盖,使用时必须用[],③式不会抛出异常;使用Reflect.ownKeys()可以遍历对象的属性,包括symbol属性,④式不会抛出异常。
展开
评论
点赞
#每天一个知识点#
for(var i=0;i<5;++i){
setTimeout(function(){
console.log(i+ ' ');
},100);
}
这段代码输出内容 5 5 5 5 5
setTimeout() 是异步的,只有等到同步任务都执行完,才会执行异步的任务,此时i已经变成5。由于共循环了5次,异步队列中存放了五次setTimeout(),会按照队列的顺序依次执行,且共同访问的是同一个变量,所以每次结果都是5。
for(var i=0;i<5;++i){
setTimeout(function(){
console.log(i+ ' ');
},100);
}
这段代码输出内容 5 5 5 5 5
setTimeout() 是异步的,只有等到同步任务都执行完,才会执行异步的任务,此时i已经变成5。由于共循环了5次,异步队列中存放了五次setTimeout(),会按照队列的顺序依次执行,且共同访问的是同一个变量,所以每次结果都是5。
展开
评论
2
赞了这篇文章
下面情况会导致reflow发生
1:改变窗口大小
2:改变文字大小
3:内容的改变,如用户在输入框中敲字
4:激活伪类,如:hover
5:操作class属性
6:脚本操作DOM
7:计算offsetWidth和offsetHeight
8:设置style属性 #每天一个知识点#
1:改变窗口大小
2:改变文字大小
3:内容的改变,如用户在输入框中敲字
4:激活伪类,如:hover
5:操作class属性
6:脚本操作DOM
7:计算offsetWidth和offsetHeight
8:设置style属性 #每天一个知识点#
展开
1
2
阻止默认事件:
e.preventDefault()
e.returnValue = false (IE)
阻止冒泡:
e.stopPropagation()
e.cancelBubble = true (IE) #每天一个知识点#
e.preventDefault()
e.returnValue = false (IE)
阻止冒泡:
e.stopPropagation()
e.cancelBubble = true (IE) #每天一个知识点#
展开
评论
点赞
赞了这篇文章
赞了这篇文章
赞了这篇文章
#每天一个知识点# js常见的继承方式包括原型链继承,借用构造函数继承,组合继承。原型式继承,寄生式继承,寄生组合式继承,以及ES6新增的class继承,不包括关联继承。
评论
1
赞了这篇文章