前端面试

1、页面编码和被请求的资源编码如果不一致如何处理?


对于 ajax 请求传递的参数,如果是 get 请求方式,参数如果传递中文,在有些浏览器
会乱码,不同的浏览器对参数编码的处理方式不同,所以对于 get 请求的参数需要使用
encodeURIComponent 函数对参数进行编码处理,后台开发语言都有相应的解码 api。对于 post 请求
不需要进行编码
2、如何避免回调地狱


(1)拆解function:过多的嵌套(缩进)会极大的影响代码的可读性。基于这一点,
可以进行一个最简单的优化----将各个步骤拆解为单个function,
该方法非常简单,具有一定的效果,但是缺少通用性。
(2)事件发布/监听模式:我们可以监听某一件事情,当事情发生的时候,进行相应的回调操作;
另一方面,当某些操作完成后,通过发布事件触发回调。这样就可以将原本捆绑在一起的代码解耦。
events 模块是node原生模块,用node实现这种模式只需要一个事件发布/监听的库。
(3)Promise:Promise是es6的规范
首先,我们需要将异步方法改写成Promise,对于符合node规范的回调函数(第一个参数必须是Error),
可以使用bluebird的promisify方法。该方法接受一个标准的异步方法并返回一个Promise对象
(4)generator:在function关键字后添加*即可将函数变为generator。
执行generator将会返回

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值