背前端JS面试题

发布于:2023-01-04 ⋅ 阅读:(276) ⋅ 点赞:(0)

1、Cookie、sessionStorage、localStorage的区别

答:cookie、sessionStorage、localStorage都是存储在浏览器本地中,cookie是由服务器写入的,而sessionStorage、localStorage是由前端写入的。cookie的声明周期在服务器写入的时候设置好了,sessionStorage数据是关闭浏览器窗口之前有效、localStorage是持久化存储,除非手动删除。cookie数据存储空间只有4kb,而sessionStorage、localStorage数据存储空间很大大概为5M。Cookie、sessionStorage、localStorage数据共享都遵循同源原则,sessionStorage只能在同一窗口有效,cookie当浏览器请求服务器的时候会自动携带cookie数据,而sessionStorage、localStorage不会。

2、说一说JS数据类型有哪些,区别是什么?

答:number、string、Boolean、sysbom、bigint、null、underfined、object

3、说一说promise是什么与使用方法?

答:promise作用:promise是异步微任务,解决异步多层嵌套回调问题。promise使用:promise是ES6提供的构造函数,new创建实例的时候,promise构造函数的参数为一个函数,该函数的有两个参数分别为resolve和reject。resolve是由等待状态到成功状态回调,异步操作的结果作为参数传递,reject是由等待状态到失败状态的回调,将异步报的错误作为参数传递,then方法分别接受指定成功resolve或者失败的reject,catch捕捉promise的失败,他们两个返回的是promise对象,所以可以链式调用。promise特点:promise三个状态分别是pedding、resolve、reject。pedding是初始状态,而resolve、reject是结果状态。promise一旦状态改变,无法改变,一共两种改变pedding到resolve状态,pedding到reject状态。resolve函数中的参数是then回调中的参数,reject函数中的参数是catch中的参数。只要then或catch不是失败的回调,返回promise都是fullfiled的状态

4、说一说跨域是什么?如何解决跨域问题?

答:第一种cors在服务器端设置

第二种node中间件或者Nginx反向代理,使用代理服务器和静态页面传递数据,因服务器和服务器没有跨域问题,最后服务器和代理服务器进行传递

第三种jsonp 使用script标签引入,因为script标签引入没有跨域问题

第四种在前端中使用proxy代理跨域配置

5、说一说JavaScript有几种方法判断变量的类型?

6、说一说样式优先级的规则是什么?

7、说一说BFC

8、说一说JS实现异步的方法?

9、说一说数组去重都有哪些方法?

10、说一说null 和 undefined 的区别,如何让一个属性变为null

11、说一下浮动

12、说一说es6的箭头函数?

       答:箭头函数相当于匿名函数,它有两种写法一种如果有单条语句的话,就可以省略{}和return。第二种写法如果有多条语句,就不可以省略{}和return。箭头函数最大的特点他没有this关键字,所以this是从外部获取,继承了外部执行上下文this,由于没有this关键字所以不能作为构造函数,调用call()方法或apply()的时候第一个参数不能绑定忽略,也没有原型和super

13、说一说call apply bind的作用和区别?

call apply bind函数都是改变函数运行时的this指向,bind在改变this指向的时候返回的是改变执行上下文的函数,不能立即执行函数,所以在调用该函数的时候再次调用即可,而call和apply在改变this指向的同时立即执行函数。bind只能接受一个参数,即this指向的执行上下文参数,而call和apply接受多个参数,第一个是this指向的执行上下文,第二个是改变执行上下函数的参数,但是call和apply接受的格式不一样,call的一个参数对应原函数的一个参数,apply的参数格式为数组,数组中每一个元素对应原函数每一个参数

14、说一说CSS尺寸设置的单位?

px:绝对长度大小,取决于屏幕分辨率,em:相对长度大小,在font-size使用中相对于父级元素字体的大小,在其他属性中相对于自身字体的大小,因字体大小具有继承性,可逐级向上查找,最终找不到,相对于浏览器默认字体大小。rem,相对长度单位,相对根元素字体大小,如果没有根元素相对于浏览器默认的字体大小,vw,相对长度单位,相对于视窗的宽度1%

15、说几个未知宽高元素水平垂直居中方法

答第一种子绝父相,position:absolute,left50%top50%,然后自身移动transform:translate-50%,-50%

第二种 display:flex ,Justin-contentcenter align-items:center

第三种 父元素设置为网格,display:grid,Justin-contentcenter align-items:center

第四种:父元素设置为表格,display:table-cell text-align:center,vertical-align:middle

16、说一说JS变量提升?

答js变量提升是指js变量和函数声明在代码编译时期,将变量和函数声明提到代码最前面。变量提升前提是使用var关键字声明,将变量声明提升到最前面,但是变量赋值并没有提升,同时函数声明比变量声明优先。变量提升的结果,在变量的初始化阶段可以访问变量,但是值为underfined,函数提升可以在函数声明之前调用


网站公告

今日签到

点亮在社区的每一天
去签到