【面试问题】——秋招面试中遇到的一些问题&思维导图&反思
前言:秋招也跑了挺多的公司,虽然都是招Web前端,但是不同的公司,因为需求和目的不同,面试的考察点也是各不相同。我没有实习经验,只有自己学东学西比较杂也比较浅的一些知识积累可以用,这个过程我发现了自己的不足,也增加了很多对公司、对社会的阅历,觉得自己成长了,起码越来越真实,越来越坚强,勇敢,也发现了自己原来也有干脆、利落、直接的一面,与以往害羞、含蓄的自己很不一样。哈哈哈,废话不多说,下面我就整理一下自己面试的很多问题,还有自己整理总结的答案、分析。
| 一、基础入门类 |


|
二、原生JS和Jquery操作DOM元素 |
- 常用的事件:十个
- click
- mousemove
- mouseover
- mouseout
- mouseenter
- mouseleave
- mouseup
- scroll
- mousewheel
- onkeydown


【特别注明:这里原生JS和JQuery操作DOM元素 参考梳理自博文 —— 感谢原作者的分享,这里仅作学习整理】
| 三、PHP和Node.js的区别 |
面试问了PHP和Node.js的区别,是因为它们首先值得比较(相似点很多):两者都是开放源码,都是致力于web开发,并且都可用于相似的项目
下面将会对 PHP 和 Node.js 进行十几个方面的比较。每个对比都会考量可以应用到任意 web 技术的常见的开发挑战。我们不会太深入讨论细节;很少有人会关心随机数生成器或数组排序的价值。
【特别注明:这里PHP和Node.js的区别梳理参考 文章 —— 感谢原作者的分享,这里仅作学习整理】
| PHP | Node.js | |
| 创建时间 | 1994年 | 2009年 |
| 运行基础 | 安装在web服务器(Apache等)上的组件运行的 |
基于Google的V8 JavaScript解释引擎 (在Chrome浏览器里它负责执行客户端的JavaScript代码) |
| 和其他语言不同的地方 | PHP代码可以和HTML混合到一块 |
Node.js内置了处理网络请求和响应的函数库, 所以不需要单独的服务器(Apache等)或者其他依赖 |
| 起步 |
一段<?php …php>代码可以放在任意.php文件中, 在浏览器中输入URL跳转到文件即可 但是,只能运行于安装了PHP的web服务器 |
只需要 下载安装程序 或 使用包管理器 在浏览器输入http://127.0.0.8080/之前, 需要在终端输入node app.js来启动应用程序 |
| 帮助和支持 | 有大量的指南和二十年的 Q&A | 拥有很好的文档,但是更加年轻,能提供的帮助较 PHP 也少 |
| 语言语法 |
PHP不会限制按特定的方式编写, PHP在版本间可能有一些调整,但是向后兼容一般都做的很好 也导致一个问题:PHP很混乱, 怎么统计一个字符串中字符的个数 PHP有数以百记的函数,而且命名规则也不完全一致 |
JavaScript代码比PHP简洁 例如,你再不需要跟 JSON 转来转去—— UTF-8 也不用 全栈工程师可以同时在客户端与服务端使用 JavaScript 大脑不用来回切换 |
| 开发工具 |
NPM包管理器 NPM允许安装和管理依赖,设置配置变量,定义脚本和其他 |
|
| 环境 | PHP本质上就是一个服务端技术,它很擅长该领域 |
JavaScript原来的主战场还是浏览器, Node.JS出现后可以在任何地方使用, 浏览器、服务器、终端、桌面甚至嵌入型系统 |
| 集成 | PHP的扩展,使他能和拥有主流或冷门的API的服务器直接通讯 |
Node.js会为某些老旧冷门的技术寻找成熟集成组件而头疼 |
| 托管和部署 |
随机联系某个网页托管公司你可以找到对主要的 PHP 支持, 也许还免费附送 MySQL |
Node.js 是个不同的野兽,服务端的应用永远运行。 你需要一台物理/虚拟/云或定制的服务器环境,最好有 root 权限, 这对有些服务器来说遥不可及,特别是那些共享的服务器, 你有可能让整台服务器宕机 |
| 性能 ↓ |
PHP很快, 有很多项目和选项可以使他跑得更快, 几乎不会担心速度问题 |
Node.js性能通常会更好一点 |
|
1、Node.js更少的依赖 |
所有对PHP的应用,都必须经过一个Web服务器的路由, 来启动PHP的解释器运行PHP代码 |
Node.js不需要这些依赖, 而且你基本一定会使用一个带服务器的框架, 比如:Express,它很轻量,很好的扮演应用的一部分 |
|
2、Node.js更小更快的解释器 |
会受到旧版语言遗留兼容问题的拖累 |
Node.js 的解释器比 PHP 的更小更灵活。 他并不受旧版语言遗留兼容问题的拖累, 而且 Google 在 V8 引擎性能改善上出了大力。 |
|
3、Node.js应用永久在线 |
PHP遵循标准客户端—服务端模型。 每个页面请求都会初始化应用; 读取配置参数、连接数据库、读取信息、渲染HTML。 |
Node.js应用持久运行,只需要启动一次。 例如:可以创建一个单独的数据连接对象,然后所求请求一起复用 |
|
4、Node.js事件驱动,无阻塞I/O |
PHP跟其他多数服务器语言采用阻塞执行的模型。 当你执行一个命令,比如数据库取数据, 那么必须等这个命令执行完成后,才执行下面的命令 |
Node.js通常不会等的, 取而代之的是,你需要提供一个回调函数, 这个函数当指令执行后,会被调用一次。 换句话说,当解释器在其他进程处理的时候可以干些别的事情 |
关于集成:指开发技术很受限制,除非它们能与数据库和驱动集成。
关于性能:性能很大程度上决定于开发团队的经验以及是否上心。
关于Node.js事件驱动,无阻塞I/O的几个警告:
- Node.js/JavaScript只能在单线程上运行,但是大多数Web服务器都是多线程,而且并发的处理请求。
- 一个用户长时间运行的 JavaScript 处理会阻止其它用户的代码执行,除非拆分任务或者使用Web Workers。
开发建议:评估选项,根据你的需求来选择一门语言,这比这样的”对比“靠谱得多。
| 四、AngularJS和Node.js的区别 |
从应用上来说,宽泛的讲:
- node.js是用于服务器端,做后台程序的。
- AngularJS是前端框架,主要用于数据绑定;不需要安装,只要在<script>标签导入就能用了。
当然,面试一定不是问这个,这个太敷衍了,要区别AngularJS和Nodejs的原因,首先也是因为它们是有相似点的:
- 它们都是单线程运行类型。
- 都可以使用一个主文件(引导页面或js文件)+多个路由运行的模式,实现页面的跳转。
【特别注明:这里AngularJS和Node.js的路由区别梳理参考 文章 —— 感谢原作者的分享,这里仅作学习整理】
| AngularJS的路由 | NodeJS(Express)的路由 | |
| 页面跳转 |
针对于单页面的路由,每次路由发生变化, 只是页面的状态发生变化,页面本身没有发生跳转 |
express的路由是针对多页面的, 也就是说他做的页面,路由的切换是伴随着页面的切换 |
| 路由类型 |
Angular的路由是前台的就是以前html的各个锚点, #login,#index,#user,看到了没,有个井号 |
Express的路由是后台的url 例如:/user/:id/edit |
| 互相使用 | Angular不可以跑Express |
Express可以跑Angular 可以在Express的路由里面跳转到一个Angular页面, 之后所有的操作可以在Angular的路由里面玩耍, 但是玩耍到最后, 发生数据交互,还是要发给Express |
关于页面跳转的选择,建议:页面内部的路由变化使用angular.js 的router,而页面间的路由用express
| 反思 |
一直把“匠心”作为自己对自己的职业要求,但是现在看起来,自己的认识还是停留在比较表层的感觉,希望自己可以在更深层次的,不论是思维还是行动,都跟的上自己的初心,不管面试的结果如何,这些都是入门的开始阶段,以后,这件事情起码是要做很长时间的,一辈子不敢说,但也要对得起自己的初心和每一分努力。
“专注做一件事情,做到极致”——这不仅仅适合于行业、专业的选择,在一个专业的细分领域里也同样适合。虽然说一个刚入门的人也许是应该多接触,多学习,多了解,但是没有几门自己专注,擅长的知识块,这也确实说不过去,毕竟,这是在工作,是一个“效率和结果”摆在第一位的地方,所以,努力的同时,还是要确定方向,不要什么都懂一点,要有自己擅长的部分。
最后,还是希望自己能够保持“初心”,好好钻研技术,为了自己的“价值”,而不是“价格”做事,和很多前辈一样,在这个充满新奇和才华的圈子里探索、学习、成长,向他们看齐,我相信,金钱和面包都会有的,我可以靠自己的脚踏实地,在技术成长的路上收获这一些,保持这份热忱,是对自己和对自己选择的行业的尊重。
注:转载请注明出处
【面试问题】——秋招面试中遇到的一些问题&思维导图&反思的更多相关文章
- jQuery中的事件与动画<思维导图>
Javascript和HTML之间的交互是通过用户和浏览器操作页面时引发的事件来处理的.当文档或者它的某些元素发生某些变化或操作时,浏览器会自动生成一个事件.例如当浏览器装载完一个文档后,会生成事件. ...
- jQuery中的DOM操作《思维导图》
首先,是关于jQuery中的DOM操作的<思维导图>,请点击这里:jQuery中的DOM操作 列表框的左右选项移动 <html> <head> <title& ...
- jQuery中的DOM操作<思维导图>
DOM是Document Object Model的缩写,意思是文档对象模型.DOM是一种与浏览器.平台.语言无关的接口.使用该接口可以轻松地访问页面中所有的标准组件.简单来说,DOM解决了Netsc ...
- 在为知笔记中使用Markdown和思维导图
为知笔记Wiz是一款很好的网摘和笔记工具,作为为知的忠实用户,我在为知收费后第一时间就购买了两年的授权,毕竟这么多年积累的资料都在为知上,我也习惯了使用Wiz来做些工作相关的笔记.为知笔记自带Mark ...
- jQuery中的Ajax应用<思维导图>
传统的WEB应用程序模型是这样工作的:当用户的界面操作触发HTTP请求,服务器在接到请求后进行一些业务逻辑处理,如保存数据等,然后向客户端返回一个html页面.但这种方式并没有给予用户很好的应用体验, ...
- 面试还搞不懂redis,快看看这40道面试题(含答案和思维导图)
Redis 面试题 1.什么是 Redis?. 2.Redis 的数据类型? 3.使用 Redis 有哪些好处? 4.Redis 相比 Memcached 有哪些优势? 5.Memcache 与 Re ...
- 【转】面试还搞不懂redis,快看看这40道Redis面试题(含答案和思维导图)
———————————————— 版权声明:本文为CSDN博主「程序员追风」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog. ...
- 《百面机器学习算法工程师带你去面试》高清PDF及epub+《美团机器学习实践》PDF及思维导图
http://blog.sina.com.cn/s/blog_ecd882db0102yuek.html <百面机器学习算法工程师带你去面试>高清PDF及epub+<美团机器学习实践 ...
- 面试BAT问的最多的27道MyBatis 面试题(含答案和思维导图总结)
前言 关于MyBatis总结了一个思维导图希望对大家有帮助 什么是 Mybatis? Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身, ...
随机推荐
- Linux入门(17)——Ubuntu16.04显示内存CPU网速等(System Monitor)
终端查看内存状况有两个命令 top htop 如果系统没有安装htop的话,那就安装一下. 然而这样比较麻烦,System Monitor是个不错的选择,System Monitor可以显示网速,内存 ...
- 使用bitset实现毫秒级查询(二)
在上一篇中我们了解了bitset索引的基本用法,本篇开始学习bitset索引更新及一些复杂查询. 1.bitset索引更新 因为我们的数据是在系统启动时全部加载进内存,所以当数据库数据发生变化时要 ...
- canvas绘制太阳系
原文地址:http://jeffzhong.space/2017/10/26/solar/ 学习canvas有一段时间了,顺便写个小项目练手,该项目用到的知识点包括: ES6面向对象 基本的三角函数 ...
- 用gdb调试python多线程代码-记一次死锁的发现
| 版权:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.如有问题,可以邮件:wangxu198709@gmail.com 前言 相信很多人都有 ...
- 简易RPC框架-上下文
*:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...
- Linux系列教程(九)——Linux常用命令之网络和关机重启命令
前一篇博客我们讲解了Linux压缩和解压缩命令,使用的最多的是tar命令,因为现在很多源码包都是.tar.gz的格式,通过 tar -zcvf 能完成解压.然后对于.zip格式的文件,使用gunzip ...
- .13-Vue源码之patch(3)(终于完事)
怎么感觉遥遥无期了呀~这个源码,跑不完了. 这个系列写的不好,仅作为一个记录,善始善终,反正也没人看,写着玩吧! 接着上一节的cbs,这个对象在初始化应该只会调用create模块数组方法,简单回顾一下 ...
- 【唯星宠物】——CSS/BootStrap/Jquery爬坑之响应式首页
前言:唯星宠物产品官网,分为首页.子页和登录注册页三个页面,除网页内容设计与图片素材的部分使用网上的材料之外,其余内容呈现以及功能模块全部为自己重构. 一.响应式轮播banner 思路:使用BootS ...
- css中的em用法
px:是相对于浏览器分辨率的一个度量单位 em是一个相对于父元素的font-size的大小的一个度量单位 1.浏览器的默认字体大小是16px 2.如果元素自身没有设置字体大小,那么元素自身上的所有属性 ...
- Javascript判断数据类型与真假值隐形转换研究
一.引言 我们在开发的时候经常要判断真和假,这是我们经常写的代码: if(a){ alert(1) } 那我们怎么判定a是真还是假呢?下面这些值的真假又是多少呢?它们的数据类型又是怎样的呢? &quo ...