jQuery

139 阅读5分钟

jQuery 相关

1.Css 预处理 sass less 是什么?为什么使用他们

2.Js 中.call()与.apply()区别

3.为什么会造成跨域/请简述同源策略

跨域问题来源于 JavaScript 的同源策略,即只有 协议+主机名+端口号

(如存在)相同,则允许相互访问。也就是说 JavaScript 只能访问和操作自己域下的资源,不能访问和操作其他域下的资源。

同源策略 是由NetScape 提出的一个著名的安全策略。所谓的同源,指的是协议,域名,端口相同。浏览器处于安全方面的考虑,只允许本域名下的接口交互,不同源的客户端脚本,在没有明确授权的情况下,不能读写对方的资源。

4.请输出三种减少页面加载时间的方式

5.This 指向

6.什么是 jsonp 工作原理是什么?他为什么不是真正的 ajax

Jsonp:其 实 就 是 一 个 跨 域 解 决 方 案 。Js 跨域请求数据是不可以的,但是js 跨域请求js 脚本是可以的。所以可以把要请求的数据封装成一个js 语句,做一个方法的调用。跨域请求js 脚本可以得到此脚本。得到js 脚本之后会立即执行。

可以把数据做为参数传递到方法中。就可以获得数据。从而解决跨域问题 。

jsonp 原理:(动态创建script 标签,回调函数)

浏览器在 js 请求中,是允许通过 script 标签的 src 跨域请求,可以在请求的结果中添加回调方法名,在请求页面中定义方法,就可获取到跨域请求的数据。  

为什么不是真正的 ajax?

1、ajax 和jsonp 这两种技术在调用方式上"看起来"很像,目的也一样, 都是请求一个 url,然后把服务器返回的数据进行处理,因此 jquery 和ext 等框架都把jsonp 作为ajax 的一种形式进行了封装;

2、但 ajax 和 jsonp 其实本质上是不同的东西。ajax 的核心是通过XmlHttpRequest 获取本页内容,而jsonp 的核心则是动态添加

3、所以说,其实ajax 与 jsonp 的区别不在于是否跨域,ajax 通过服务端代理一样可以实现跨域,jsonp 本身也不排斥同域的数据的获取。

4、还有就是,jsonp 是一种方式或者说非强制协议,如同 ajax 一样,它也不一定非要json 格式来传递数据,如果你愿意,字符换也行,只不过这样不利于jsonp 提供公开服务

7.请掌握 2 种以上数组去重的方式

8.深浅拷贝是什么如何实现?

9.为什么 js 是弱类型语言

10.怎么转换 less 为 css

1. 用node 将less 文件生成为css 文件

2. 用webstorm 自动生成

11.echarts 使用最多的是什么

图表📈

12.For 循环与 map 循环有什么区别

For 遍历对象自身的和继承可枚举的属性,也就是说会包括哪些原型链上的 属 性

Map 方法不会对空数组进行检测,map 会返回一个新数组,不会对原数组产生影响(除复杂数组外,eg.数组对象)

13.请写出一个简单的类与继承

14.同步与异步的区别/阻塞与非阻塞区别

同步(阻塞)异步(非阻塞)这两个关注的是程序在等待调用结果时的状态

image.png

15.重绘和回流/重排是什么

16.http 是什么?有什么特点

17.HTTP 协议和 HTTPS 区别

18.原型和继承,prototype,call 和 apply 继承的区别(第一个参数是相同的,第二个的区别在哪)

19.箭头函数与普通函数的区别

箭头函数是匿名函数,不能作为构造函数,不能使用new 箭头函数不能绑定arguments,要用rest 参数解决

箭头函数没有原型属性

箭头函数的this 永远指向其上下文的this,

箭头函数不能绑定 this,会捕获其所在的上下文的 this 值,作为自己的this 值

20.什么是 js 内存泄露?

内存泄漏是指一块被分配的内存既不能使用又不能回收,直到浏览器进程结束

释放内存的方法:赋值为null

21.你如何对网站的文件和资源进行优化?

22.请简述 ajax 的执行过程 以及常见的 HTTP 状态码

image.png

23.预加载和懒加载的区别,预加载在什么时间加载合适

预加载是指在页面加载完成之前,提前将所需资源下载,之后使用的时候从缓存中调用;懒加载是延迟加载,按照一定的条件或者需求等到满足条件的时候再加载对应的资源

两者主要区别是一个是提前加载,一个是迟缓甚至不加载。懒加载对服务器前端有一定的缓解压力作用,预加载则会增加服务器前端压力。

24.Jquery 选择器有哪些

25.Jquery 插入节点的方法

26.Js 的函数节流和函数防抖的区别

1、throttle

image.png 2、debounce

image.png

27.Get 和 post 不同

Get 是从服务器上获取数据,post 是向服务器传送数据

在客户端,get 通过url 提交数据,数据在url 中可以看到,post 方式, 数据放在html header 中提交

安全性问题

Get 长度受限于url的长度,所以提交数据最多只能有 1024 字节

Post 没有限制

28.什么是 csrf 攻击

Csrf (Cross-site request forgery)(跨站点请求伪造) 攻击者在用户已经登录目标网站之后,诱使用户访问一个攻击页面,利用目标网站对用户的信任,以用户身份再攻击页面对目标网站发起伪造用户操作的请求,达到攻击目的

29.Js 中手写一个深拷贝

30.什么时候用深拷贝 /浅拷贝