javascript高级试题

本文涵盖了JavaScript高级面试中的多项重要知识点,包括数组类型的判断、对象属性检测、this的改变、递归计算、闭包特性、BFC概念、元素居中、滚动条高度获取、循环语法、兼容性写法、Object.defineProperty、Symbol与Map、Set和Map的区别、事件监听、解构赋值以及箭头函数的注意事项等。
摘要由CSDN通过智能技术生成

1.判断为数组类型的4种方式
Array.isArray()   typeof   instanceof  constructor

2.判断对象是否包含特定的自身(非继承)属性
hasOwnProperty()

3.改变this的3种方式,他们有什么相同点和不同点
call 、bind 、 apply 这三个函数的第一个参数都是 this 的指向对象,第二个参数差别就来了:
call 的参数是直接放进去的,第二第三第 n 个参数全都用逗号分隔,直接放到后面 obj.myFun.call(db,'成都', ... ,'string' )。
apply 的所有参数都必须放在一个数组里面传进去 obj.myFun.apply(db,['成都', ..., 'string' ])。
bind 除了返回是函数以外,它 的参数和 call 一样。

4.使用递归求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));

5.闭包的3个特性
①函数嵌套函数
②函数内部可以引用函数外部的参数和变量
③参数和变量不会被垃圾回收机制回收

6.什么是BFC
BFC (块级格式化上下文)o

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BiBbo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值