.41、判断为数组类型的4种方式
Array.isArray() typeof instanceof constructor
42、判断对象是否包含特定的自身(非继承)属性
hasOwnProperty()
43、改变this的3种方式,他们有什么相同点和不同点
call 、bind 、 apply 这三个函数的第一个参数都是 this 的指 向对象,第二个参数差别就来了:
call 的参数是直接放进去的,第二第三第 n 个参数全都用逗号 分隔,直接放到后面 obj.myFun.call(db,'成都', ... ,'string' )。
apply 的所有参数都必须放在一个数组里面传进 去 obj.myFun.apply(db,['成都', ..., 'string' ])。
bind 除了返回是函数以外,它 的参数和 call 一样。
44、使用递归求0.1+0.2+....+1的和
let num = 0;
let sum = 0;
function add(num) {
num += 0.1;
if (num <= 1) {
sum += num;
add(num);
};
return sum;
};
console.log(add(num));
45、闭包的3个特性
①函数嵌套函数
②函数内部可以引用函数外部的参数和变量
③参数和变量不会被垃圾回收机制回收
46、什么是BFC
BFC (块级格式化上下文)overflow:hidden;
47、让一个200*200的元素垂直水平居中
答案不唯一
div{
width: 200px;
height: 200px;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
}
48、获取滚动条的高度
document.documentElement.scrollTop || document.body.scrollTop;(兼容代码)
49、For,forEach,for...in,while语法
for(初始值;判断条件;变化语句){循环体}
数组(对象).forEach(item,index,arr)---值,下标,当前循环 数组
for(键名 in 对象){执行语句(循环体);}
while(判断语句){循环体};
50、Opacity兼容5大浏览器的写法
opacity{
filter: alpha(opacity=50); 兼容IE6、7、8
-moz-opacity:0.5; 老版的Mozilla
-khtml-opacity:0.5; 老版的Safari
-webkit-opacity:0.5; 支持webkit内核的浏览器
opacity: 0.5; 支持opacity的浏览器
}