前端面试题

1.call和apply的区别

2.transition, animation, transform 的区别

3.谈谈你对语义化的理解

4.介绍下js的基本数据类型

5.解释下什么是事件代理

6.从输入url到显示网页,后台发生了什么

7.谈谈你对This的理解

8.请用js实现一个继承

9.哪些操作会造成内存泄漏

10.在项目开发过程中你是怎么和后端进行交互的?

11.清除浮动有哪些方式?

12.vue的nextTick是怎么回事?

21.express 中的response对象有哪些常用方法?

res.download() 弹出文件下载res.end() 结束responseres.json() 返回jsonres.jsonp() 返回jsonpres.redirect() 重定向请求res.render() 渲染模板res.send() 返回多种形式数据res.sendFile 返回文件res.sendStatus()返回状态

22.使用NPM有哪些好处?

npm是nodejs包管理和分发的工具,用于管理node包。如安装、卸载、发布、查看等。通过NPM,你可以安装和管理项目的依赖,并且能够指明依赖项的具体版本号。 对于Node应用开发而言,你可以通过package.json文件来管理项目信息,配置脚本, 以及指明项目依赖的具体版本。

23.实现一个简单的http服务器?

var http = require('http'); // 加载http模块

http.createServer(function(req, res) {

   res.writeHead(200, {'Content-Type': 'text/html'}); // 200代表状态成功, 文档类型是给浏览器识别用的

   res.write('这么原生,初级的服务器,下辈子能用着吗?!'); // 返回给客户端的html数据

   res.end(); // 结束输出流

}).listen(3000); // 绑定3ooo, 查看效果请访问 http://localhost:3000

24.Node.js中导入模块和导入js文件写法上有什么区别?

nodejs引入模块,直接使用名字导入即可。如:const express = require("express");

导入js文件,需要使用文件的路径,如:const student = require("./mongoose");

25.Angular Directive中restrict 中分别可以怎样设置?

A匹配属性E匹配标签C匹配classM 匹配注释

26.列出至少三种实现不同模块之间通信方式?

Serviceevents,指定绑定的事件使用 $rootScopecontroller之间直接使用​$childHead等directive 指定属性进行数据绑定

27.有哪些措施可以改善Angular 性能?

关闭debug使用一次绑定表达式即{{::yourModel}}减少watcher数量在无限滚动加载中避免使用ng-repeat

28.ng-if 跟 ng-show/hide的区别有哪些?

ng-if 在后面表达式为 true 的时候才创建这个 dom 节点,ng-show 是初始时就创建了,用 display:block 和 display:none 来控制显示和不显示。ng-if 会(隐式地)产生新作用域,ng-switch 、 ng-include 等会动态创建一块界面的也是如此。

29.ng-repeat迭代数组的时候,如果数组中有相同值,会有什么问题,如何解决?

会提示 Duplicates in a repeater are not allowed. 加 track by $index 可解决。当然,也可以 trace by 任何一个普通的值,只要能唯一性标识数组中的每一项即可(建立 dom 和数据之间的关联)。

你可能感兴趣的:(前端面试题)