前端高频面试题笔记

2021年10月18日


0.1+0.2=0.300000000004 因为js对浮点数表示不精确,怎样解决?
console.log((0.1 + 0.2).toFixed(2)); 输出为字符串
console.log((0.1 * 1000 + 0.2 * 1000) / 1000); 输出为数字

盒模型分为标准盒模型和怪异盒模型
标准盒模型:width=width+padding+border
怪异盒模型:width=width

box-sizeing:border-box时,
width的值大于padding+border时,采用width的值
width的值小于padding+border时,采用padding+border的值

定位有几个值?
static 默认值/没有定位
relative 相对定位 相对与自身
absolute 绝对定位 相对与拥有除了static定位以外的最近的父元素,没有以视口为基准
fixed 固定定位 相对于浏览器窗口进行定位

sticky 黏性定位 不兼容安卓 监听scroll滚动到指定位置 由static变为fixed

relative 设置四个值,top值会盖掉bottom left会盖掉right 只有left和bottom生效

数组去重/合并:
let arr = [1, 2, 3, 1, 2, 3]
let arr1 = [4, 5, 6, 4, 5, 6]
console.log([...new Set(arr)]); [123]
console.log([...new Set([...arr, ...arr1])]);[123456]

闭包:

书面定义是值一个函数可以访问调用另一个函数作用域的变量,延长变量的作用范围,使其不被销毁,两个函数作用域链相连,就形成闭包

原型: 对象是__proto__ 函数是prototype

javascript的作者在创造原型时,是为了共享属性和方法,对象是__proto__ 函数是prototype,原型也是一个对象,通过原型可以实现对象的属性继承.

原型链:

当访问一个对象的某个属性时,会先在这个对象本身属性上查找,如果没有找到,就会去它的__proto__隐式原型上查找,即它的构造函数的prototype,如果还没有找到,就会再在构造函数的prototype的__proto__中查找,这样一层一层向上查找就形成了一个链式结构,就称为原型链  一直向上层查找,直到null还没找到,返回undefined,
Object.prototype.__proto__===null

作用域链:

1.函数在定义产生作用域链 ,而不是在定义时产生
2.查找作用域链,由近到远查找,找到了就停止查找

作用域链和闭包有什么关系?

闭包不是一个具体技术,而是一种现象,是指在定义函数时,周围环境中的信息可以在函数中使用。
换句话说,执行函数时,只要在函数中使用外部的数据,就创建了闭包
而作用域链,正是实现闭包的手段。

什么情况下this指向于window?
1.普通函数
2.闭包的情况,内部函数的this指向window

find和filter的区别?
find 发现 返回匹配中的第一个值,找到后停止 
filter 过滤 返回符合条件一个新数组 

some和every的区别?
some 一些 某个 只要有一个元素符合 就返回true
every 每个  只有每个元素都符合 才返回true

箭头函数和普通函数有什么区别?
1.箭头函数自身没有this,会捕获上下文中最近的this,当做自己this
2.箭头函数没有arguments
3.箭头函数不能new 不能当做构造函数使用

call,apply,bind的区别?

共同点:都是用来改变this指向,第一个参数是nullnudefinedthis都指向window

区别:call是apply的语法糖, fn.call(obj, 1, 2); fn.apply(obj, [1, 2]); apply需要传递一个数组

call和apply是立即执行,bind是返回函数,需要接收手动调用

bing绑定this指向后,无法再通过call和apply修改this,使用new可以修改,会指向新对象

函数在调用时才会确定this

待更新

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值