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


一、基础入门类

  

二、原生JS和Jquery操作DOM元素

  • 常用的事件:十个
  1. click
  2. mousemove
  3. mouseover
  4. mouseout
  5. mouseenter
  6. mouseleave
  7. mouseup
  8. scroll
  9. mousewheel
  10. 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的几个警告:

  1. Node.js/JavaScript只能在单线程上运行,但是大多数Web服务器都是多线程,而且并发的处理请求。
  2. 一个用户长时间运行的 JavaScript 处理会阻止其它用户的代码执行,除非拆分任务或者使用Web Workers。

开发建议:评估选项,根据你的需求来选择一门语言,这比这样的”对比“靠谱得多。

四、AngularJS和Node.js的区别

从应用上来说,宽泛的讲:

  1. node.js是用于服务器端,做后台程序的。
  2. AngularJS是前端框架,主要用于数据绑定;不需要安装,只要在<script>标签导入就能用了。

当然,面试一定不是问这个,这个太敷衍了,要区别AngularJS和Nodejs的原因,首先也是因为它们是有相似点的:

  1. 它们都是单线程运行类型。
  2. 都可以使用一个主文件(引导页面或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

反思

一直把“匠心”作为自己对自己的职业要求,但是现在看起来,自己的认识还是停留在比较表层的感觉,希望自己可以在更深层次的,不论是思维还是行动,都跟的上自己的初心,不管面试的结果如何,这些都是入门的开始阶段,以后,这件事情起码是要做很长时间的,一辈子不敢说,但也要对得起自己的初心和每一分努力。

“专注做一件事情,做到极致”——这不仅仅适合于行业、专业的选择,在一个专业的细分领域里也同样适合。虽然说一个刚入门的人也许是应该多接触,多学习,多了解,但是没有几门自己专注,擅长的知识块,这也确实说不过去,毕竟,这是在工作,是一个“效率和结果”摆在第一位的地方,所以,努力的同时,还是要确定方向,不要什么都懂一点,要有自己擅长的部分。

最后,还是希望自己能够保持“初心”,好好钻研技术,为了自己的“价值”,而不是“价格”做事,和很多前辈一样,在这个充满新奇和才华的圈子里探索、学习、成长,向他们看齐,我相信,金钱和面包都会有的,我可以靠自己的脚踏实地,在技术成长的路上收获这一些,保持这份热忱,是对自己和对自己选择的行业的尊重。


注:转载请注明出处

【面试问题】——秋招面试中遇到的一些问题&思维导图&反思的更多相关文章

  1. jQuery中的事件与动画<思维导图>

    Javascript和HTML之间的交互是通过用户和浏览器操作页面时引发的事件来处理的.当文档或者它的某些元素发生某些变化或操作时,浏览器会自动生成一个事件.例如当浏览器装载完一个文档后,会生成事件. ...

  2. jQuery中的DOM操作《思维导图》

    首先,是关于jQuery中的DOM操作的<思维导图>,请点击这里:jQuery中的DOM操作 列表框的左右选项移动 <html> <head> <title& ...

  3. jQuery中的DOM操作<思维导图>

    DOM是Document Object Model的缩写,意思是文档对象模型.DOM是一种与浏览器.平台.语言无关的接口.使用该接口可以轻松地访问页面中所有的标准组件.简单来说,DOM解决了Netsc ...

  4. 在为知笔记中使用Markdown和思维导图

    为知笔记Wiz是一款很好的网摘和笔记工具,作为为知的忠实用户,我在为知收费后第一时间就购买了两年的授权,毕竟这么多年积累的资料都在为知上,我也习惯了使用Wiz来做些工作相关的笔记.为知笔记自带Mark ...

  5. jQuery中的Ajax应用<思维导图>

    传统的WEB应用程序模型是这样工作的:当用户的界面操作触发HTTP请求,服务器在接到请求后进行一些业务逻辑处理,如保存数据等,然后向客户端返回一个html页面.但这种方式并没有给予用户很好的应用体验, ...

  6. 面试还搞不懂redis,快看看这40道面试题(含答案和思维导图)

    Redis 面试题 1.什么是 Redis?. 2.Redis 的数据类型? 3.使用 Redis 有哪些好处? 4.Redis 相比 Memcached 有哪些优势? 5.Memcache 与 Re ...

  7. 【转】面试还搞不懂redis,快看看这40道Redis面试题(含答案和思维导图)

    ———————————————— 版权声明:本文为CSDN博主「程序员追风」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog. ...

  8. 《百面机器学习算法工程师带你去面试》高清PDF及epub+《美团机器学习实践》PDF及思维导图

    http://blog.sina.com.cn/s/blog_ecd882db0102yuek.html <百面机器学习算法工程师带你去面试>高清PDF及epub+<美团机器学习实践 ...

  9. 面试BAT问的最多的27道MyBatis 面试题(含答案和思维导图总结)

    前言 关于MyBatis总结了一个思维导图希望对大家有帮助 什么是 Mybatis? Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身, ...

随机推荐

  1. Linux入门(17)——Ubuntu16.04显示内存CPU网速等(System Monitor)

    终端查看内存状况有两个命令 top htop 如果系统没有安装htop的话,那就安装一下. 然而这样比较麻烦,System Monitor是个不错的选择,System Monitor可以显示网速,内存 ...

  2. 使用bitset实现毫秒级查询(二)

    在上一篇中我们了解了bitset索引的基本用法,本篇开始学习bitset索引更新及一些复杂查询. 1.bitset索引更新   因为我们的数据是在系统启动时全部加载进内存,所以当数据库数据发生变化时要 ...

  3. canvas绘制太阳系

    原文地址:http://jeffzhong.space/2017/10/26/solar/ 学习canvas有一段时间了,顺便写个小项目练手,该项目用到的知识点包括: ES6面向对象 基本的三角函数 ...

  4. 用gdb调试python多线程代码-记一次死锁的发现

    | 版权:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.如有问题,可以邮件:wangxu198709@gmail.com 前言 相信很多人都有 ...

  5. 简易RPC框架-上下文

    *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...

  6. Linux系列教程(九)——Linux常用命令之网络和关机重启命令

    前一篇博客我们讲解了Linux压缩和解压缩命令,使用的最多的是tar命令,因为现在很多源码包都是.tar.gz的格式,通过 tar -zcvf 能完成解压.然后对于.zip格式的文件,使用gunzip ...

  7. .13-Vue源码之patch(3)(终于完事)

    怎么感觉遥遥无期了呀~这个源码,跑不完了. 这个系列写的不好,仅作为一个记录,善始善终,反正也没人看,写着玩吧! 接着上一节的cbs,这个对象在初始化应该只会调用create模块数组方法,简单回顾一下 ...

  8. 【唯星宠物】——CSS/BootStrap/Jquery爬坑之响应式首页

    前言:唯星宠物产品官网,分为首页.子页和登录注册页三个页面,除网页内容设计与图片素材的部分使用网上的材料之外,其余内容呈现以及功能模块全部为自己重构. 一.响应式轮播banner 思路:使用BootS ...

  9. css中的em用法

    px:是相对于浏览器分辨率的一个度量单位 em是一个相对于父元素的font-size的大小的一个度量单位 1.浏览器的默认字体大小是16px 2.如果元素自身没有设置字体大小,那么元素自身上的所有属性 ...

  10. Javascript判断数据类型与真假值隐形转换研究

    一.引言 我们在开发的时候经常要判断真和假,这是我们经常写的代码: if(a){ alert(1) } 那我们怎么判定a是真还是假呢?下面这些值的真假又是多少呢?它们的数据类型又是怎样的呢? &quo ...