关于前端的一些问题

1.定义变量的几种方式分别是什么?有什么区别?

答:var:是 ECMAScript6 版本以前一直使用的方式,由于这种方式      声明的变量在某些情况下会导致一些问题 let:let是块级作用域,函数内部使用let定义后,对函数外部无影响,值可以改变. const:值不能改变.

2.flex布局主轴有哪几种排列方法?

(1) flex-start:项目靠近父盒子的左侧

(2) flex-end:项目靠近父盒子的右侧

(3) center : 居中显示

(4) space-evenly:沿主轴方向均匀分布

(5) space-between:子元素紧贴父容器的首尾两侧。

3.浅拷贝和深拷贝的区别?

浅拷贝是指只复制一层对象,当对象的属性是引用类型时,实质复制的是其引用,当引用指向的值改变时也会跟着变化 深拷贝就是复制了目标的所有层级

可以理解为浅拷贝只是复制了网页的链接,而深拷贝则是将网页的代码拷贝下来重新写了一个网页.

所以当原目标发生改变时,浅拷贝会随之变化,深拷贝不会.

4.防抖和节流的区别?如何实现防抖和节流?

 区别:防抖是将多次执行变为只执行最后一次,节流是将多次执行变成每隔一段时间执行.

防抖实现方式:每次触发事件时设置一个延迟调用方法,并且取消之前的延时调用方法.

节流实现方法:每次触发事件时,如果当前有等待执行的延时函数,则直接return.

5.什么是跨域?跨域的解决方法?

请求一个url时,协议,域名,端口三者之间任意一个与当前页面1的url不同则为跨域,反之叫同源.

解决跨域的有cors,jsonp.jsonp只针对get请求.

6.图片懒加载的原理?

优先加载可视区域的内容,其他部分等进入可视区域在加载,从而提高性能.

7.构造函数,原型函数,对象实例之间是怎样查询的?

每创建一个函数,该函数都会自动带有一个prototype属性,该属性指向一个对象,称之为原型对象;原型对象上默认有一个属性constructor,指向其相关联的构造函数.通过调用构造函数产生的实例对象,都拥有一个内部属性,指向了原型对象,其实例对象能够访问原型对象上的所有属性和方法.

8.三元表达式的用法是什么?

条件表达式?true的表达式 :false的表达式.

9.在node.js中如何拼接路径字符串?

使用path.join方法.也可以使用'+'进行拼接.

10.改变this指向的3种方法?以及区别?

1.call(),apply(),bind().

11.说出迭代遍历数组,筛选数组,查找数组中是否有满足条件的元素这三种方法?

forEach(),filter(),some()

12.说出闭包的定义及作用

定义:只有权访问另一个函数作用域中变量的函数.

作用:延长局部变量的生命周期,延伸局部变量的作用范围.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值