当前栏目
前端面试2021-010
1、简述git常见的操作命令和含义,描述一个你在操作git时让自己印象较为深刻的问题以及解决过程
git config 操作git管理中的配置信息 git init 初始化git本地仓库 git add 添加新文件到git管理 git commit 提交暂存区文件到本地仓库 git push 将本地仓库文件推送远程仓库 git pull 将远程仓库文件拉取到本地并合并到当前分支 git fetch 拉取远程仓库中指定分支文件 git branch 查看/添加/删除分支 git checkout切换分支 git merge合并分支 git tag 添加/查看/编辑标签 git stash 暂存文件 git log / git reflog 查看提交历史记录 git reset 版本回退
平时多整理出现的问题,在面试的时候经常会遇到面试官询问开发过程中的印象深刻的问题,印象深刻的问题不一定是非常复杂的问题! 如:文件冲突的问题及解决方案 如:版本回退了,但是解决完项目中的问题之后,回退不回去了!幸亏当时开发过程中我自己有记录自己的操作的习惯,将回退之前的版本信息都做了记录,解决过程中找出了当时回退之前的历史记录进行了版本更新 提示:平时多整理自己遇到的问题,将这样的问题梳理记录到一个(在线)文档中,面试的时候或者以后工作过程中,都可以翻出来使用!
2、什么是NodeJS,谈谈你对NodeJS的认识
NodeJS是一个JavsScript运行时环境,支持了JavaScript服务端应用开发场景; NodeJS本身具有单线程、事件驱动、Chrome V8引擎、JavaScript运行时等特点; NodeJS和其他的后端语言环境相比较,技术发展更加迅速,版本迭代更快,所以一般要求稳定性较高的后端项目开发很少会直接选择NodeJS进行开发,但是NodeJS本身具备的特性一方面可以支持后端开发,以后随着新特性的添加发展会更好,另一方面NodeJS对于前端开发框架的支持非常友好!
3、为什么说NodeJS是事件驱动的?底层实现逻辑是什么样的呢?
NodeJS底层是单线程运行机制,常规情况下每次都只能服务一个请求,操作效率就会非常低下;为了提高请求处理效率,让NodeJS应用可以同时服务多个请求,提供了自己的事件驱动机制,在单线程接受到请求之后直接分发给后端处理函数进行处理,在处理过程中就可以将请求临时挂起,继续处理后续的请求;可以在相同的时间段处理更多的请求;被处理的请求处理完成后通过事件通知单线程找回请求并且进行响应,所以NodeJS是单线程工作机制、同时包含了事件驱动的工作方式高效率的处理并发请求;底层是通过EmitEvent对象实现事件创建和触发工作的
加:有了解过你们公司使用的是什么服务器吗?都是什么样的配置?
提示:并不是所有的面试题或者笔试题都要你回答正确!
下下策:支支吾吾.... 下策:开发时用的服务器基本了解,公司的这个服务器我还真没有去了解过 中策:这个跟运维那边的同事合作的时候有简单了解过,好像用的是购买的云服务器,具体配置信息不是很清楚! 上策:赶紧去看看,多准备一些资料
4、在项目中你都用过哪些Node相关的模块,简单描述一下它们的含义
fs文件操作模块 http web服务模块 path 路径处理模块 url 地址处理模块 trim 空格处理模块 querystring 查询字符串处理模块 express WEB应用开发框架 qs 查询字符串处理模块 express-session 会话管理模块 parse-cookie cookie数据管理模块 svg-captcha 验证码模块 serve-favicon 服务器LOGO模块
5、Express中都有用过哪些中间件?
中间件一般包含内置中间件、第三方中间件和自定义中间件 内置中间件如静态文件处理、POST参数处理中间件等等 第三方中间件如POST参数、session会话管理、cookie数据管理、formidable文件上传、svg-captcha验证码等 自定义中间件一般用在拦截所有请求之前或者所有请求之后,所有请求之前自定义权限验证、请求参数验证等中间件;请求之后一般会设置共同响应、错误中间件
6、什么是路由?项目中你是怎么实现路由的?
路由描述的是项目中用户的请求进行分发处理的中间组件 NodeJS基本应用中我们通过选择结构实现基本路由操作,Express项目中通过构建的独立对象app或者router实现了路由分配
7、web应用一般都是多个用户同时访问的,项目中是如何解决多个用户使用的数据互相独立的问题的?
WEB应用开发过程中,主要工作在服务器上,服务器和WEB应用会提供各种多用户管理模式,如多进程模式、多线程模式,单线程事件驱动模式等等 我们前端使用的NodeJS应用中,主要是单线程事件驱动模式实现多用户并发,多个用户的数据通过每个请求所属的session会话进行管理,每个用户的session都是独立的一个数据空间,和其他用户的session不会冲突
8、什么是数据库?
数据库是软件解构中存储数据的仓库组件!主要提供数据持久化存储和操作的服务!
9、MySQL中怎么创建和删除数据库?
可以通过界面操作软件,图形化界面中创建和删除数据库 也可以通过SQL语句的方式创建和删除数据库
-- 创建数据库
create database 数据库名称 default charset 'UTF8';
-- 删除数据库
drop database 数据库名称;
10、MySQL中怎么创建和删除数据表?
可以使用图形化界面的方式创建和删除数据表 也可以使用sql语句创建和删除数据包
-- 创建数据表
create table 数据表名称()
-- 删除数据包
drop tabel 数据表名称;
11、假设MySQL中已经存在用户表user
image.png
使用SQL语句完成下面的业务操作
① 注册用户时,判断账号是否已经存在
select * from user where username = "要注册的账号"
② 会员tom登录时,同时允许使用账号或者手机号码登录系统
select * from user where (username = "tom" or phone = "15680439981") and password = "6df23d9a0b"
③ jerry更新用户资料时,更新自己新的昵称-茅尔丝
update user set nickname = "茅尔丝" where username = "jerry"
④ 用户tom查看自己的资料绑定新的手机号码18899008877
update user set phone="18899008877" where username = "tom"
⑤ 用户jerry要销毁自己的资料,如何注销自己的用户信息
delete from user where username = "jerry"
相关文章
- 前端面试 【JavaScript】— typeof 是否能正确判断类型?
- 前端面试 【JavaScript】— instanceof 能否判断基本数据类型?
- 前端面试 【JavaScript】— 能不能手动实现一下 instanceof 的功能?
- 前端面试 【JavaScript】— Object.is和=== 有什么区别?
- 前端面试 【JavaScript】— JS中类型转换有哪几种?
- 前端面试 【JavaScript】— == 和 ===有什么区别?
- 前端面试 【JavaScript】— 对象转原始类型是根据什么流程运行的?
- JavaScript 的 parseInt() 函数
- javascript实现两个数字进行组合
- JS监听键盘按键
- 大前端开发中的路由管理之五:Flutter篇
- Javascript的DOM操作
- 在Vue项目中使用WebSocket技术
- 新手向:前端程序员必学基本技能——调试JS代码
- React 毁了 Web 开发!
- 「JS 逆向百例」cnki 学术翻译 AES 加密分析
- 商标注册域名后缀用什么?商标和域名有哪些区别?
- 网站建设流程是怎样的?需要看重哪些细节?
- 网站域名商标注册流程是什么?网站域名商标有什么用?
- 如何建设一个实用性强的网站 网站上线后如何运营