前端面试题(二)

1、如何减少DOM操作?
(1)缓存DOM查询结果:如果脚本需要多次使用同一个元素,可以把这些元素的位置保存在一个变量中。
(2)多次DOM操作合并到一次插入。
例如:
在这里插入图片描述
2、理解jsonp的原理,为何不是ajax?

概念:JSON是一种轻量级的数据传输格式,被广泛应用于当前Web应用中。是一种绕过同源策略实现跨域获取数据的解决方案,是一种非正式传输协议。
原理:利用src或href属性不受同源策略限制的特点,动态创建script标签,将远程接口赋值给src获取数据,并通过回调函数来接受和处理数据,达到跨域的目的。
为什么不是ajax?
ajax是通过XMLHttpRequest进行的,而jsonp只是加载javascript脚本,可以打开浏览器调试,网络监察查看,ajax请求找不到jsonp。反而在script里可以找到jsonp。

jsonp的优缺点:
优点
不受同源策略的限制
兼容性好,在老版本浏览器中仍可运行,不需要XMLHttpRequest或ActiveX的支持
在请求完毕后可以通过调用callback的方式回传结果,将回调方法的权限给了调用方、
缺点
只支持GET请求而不支持POST等其它类型的HTTP请求
只支持跨域HTTP请求这种情况,不能解决不同域的两个页面之间如何进行JavaScript调用的问题
jsonp在调用失败的时候不会返回各种HTTP状态码
存在一定的安全问题

3、document load 和 ready的区别?
window.addEventListener(‘load’,function(){}) 页面的全部资源加载完成才会执行,包括图片、视频等
document.addEventListener(‘DOMContentLoaded’,function(){}) DOM渲染完即可执行,此时图片、视频还可能没加载完
在这里插入图片描述
在这里插入图片描述
4、= = 和 === 的区别?

= = 会先做类型转换,再判断值得大小,
=== 类型和值必须都相等

5、函数声明和函数表达式的区别?

函数声明会被提升到当前作用域的顶部,函数表达式则不会。
函数声明一定会有函数名,而函数表达式一般不会有函数名。
函数声明不是一个完整的语句,所以不能出现在if-else,for循环, finally,try catch语句以及with语句中。
在这里插入图片描述
6、new Object()和 Object.create() 的区别
{}等同于new Object(),原型Object.prototype
Object.create(null)没有原型
Object.create({…})可指定原型

7、如何用JS实现继承
class继承、prototype继承

8、什么是json?
json中只能用双引号,不能用单引号
json中只能用双引号,不能用单引号

9、将url参数解析为JS对象
在这里插入图片描述
10、手写数组flatern,考虑多层级
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值