小莫的面试
艾小莫的梦
这个作者很懒,什么都没留下…
展开
-
JavaScript 面试中常见算法问题详解
JavaScript 面试中常见算法问题详解JavaScript 面试中常见算法问题详解 翻译自 Interview Algorithm Questions in Javascript 从属于笔者的 Web 前端入门与工程实践。下文提到的很多问题从算法角度并不一定多么困难,不过用 JavaScript 内置的 API 来完成还是需要一番考量的。J转载 2017-03-27 17:13:59 · 703 阅读 · 0 评论 -
BFC原理及其应用
BFC 已经是一个耳听熟闻的词语了,网上有许多关于 BFC 的文章,介绍了如何触发 BFC 以及 BFC 的一些用处(如清浮动,防止 margin 重叠等)。虽然我知道如何利用 BFC 解决这些问题,但当别人问我 BFC 是什么,我还是不能很有底气地解释清楚。于是这两天仔细阅读了CSS2.1 spec 和许多文章来全面地理解BFC。BFC是什么在解释 BFC 是什么之前,需要先介绍 Box、Form转载 2017-06-21 18:34:27 · 2315 阅读 · 0 评论 -
一道常被人轻视的前端JS面试题
前几天读文章,偶尔读到了一篇挺不错的文章,用来考核面试者的JavaScript的综合能力,先整理分享一下。题目如下:function Foo() { getName = function () { alert (1); }; return this;}Foo.getName = function () { alert (2);};Foo.prototype.getName =转载 2017-06-22 12:21:10 · 399 阅读 · 0 评论 -
GET和POST区别
http请求中get和post的区别是面试中老生常谈的问题,网上也看了好多文章,觉得很多都是复制粘贴,也不是很全。现在将我看到的一些资料整理一下,以便更加清楚的明白这两者的区别。首先是w3cSchool上,列出了一个表格,很形象的展示了get和post的区别 也就是说:1、GET请求,请求的数据会附加在URL之后,以?分割URL和传输数据,多个参数用&连接。URL的编码格式采用的是ASCII编码,原创 2017-06-23 12:29:35 · 440 阅读 · 0 评论 -
web前端面试题目汇总
以下是收集一些面试中经常会遇到的经典面试题以及自己面试过程中有一些未解决的问题,通过对知识的整理以及经验的总结,重新巩固自身的前端基础知识,如有错误或更好的答案,欢迎指正,水平有限,望各位不吝指教。HTML/CSS部分1、什么是盒子模型?在网页中,一个元素占有空间的大小由几个部分构成,其中包括元素的内容(content),元素的内边距(padding),元素的边框(bo原创 2017-05-11 21:44:43 · 1122 阅读 · 0 评论 -
OSI七层模型与TCP/IP四层模型
一、OSI七层模型开放系统互连参考模型 (Open System Interconnect 简称OSI)是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,为开放式互连信息系统提供了一种功能结构的框架。它从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。1、物理层物理层并不是物理媒体本身,它只是开放系统中利用物理媒体实现物理连接的原创 2017-09-04 15:57:23 · 730 阅读 · 0 评论 -
进程和线程的区别
一、先看一个很形象的比喻:1、计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2、假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,其他车间都必须停工。背后的含义就是,单个CPU一次只能运行一个任务。3、进程就好比工厂的车间,它代表CPU所能处理的单个任务。任一时刻,CPU总是运行一个进程,其他进程处于非运行状态。4、一个车间里,可以有很多工人。他原创 2017-09-05 17:41:04 · 400 阅读 · 0 评论 -
面试中常见的计算机网络问题
最近面试被问到了很多计算机网络的知识,现在把相关的知识系统的整理一下。一、七层模型与TCP/IP四层模型可以参考我整理的这篇文章二、TCP这篇文章整理的很好,可以看看三、请简述TCP\UDP的区别TCP和UDP是OSI模型中的运输层中的协议。TCP提供可靠的通信传输,而UDP则常被用于让广播和细节控制交给应用的通信传输。两者的区别大致如下:TCP面向连接,UDP面向非连接即发送数据前不需要建立链接原创 2017-09-04 16:19:47 · 650 阅读 · 0 评论 -
JS如何判断一个对象为空
昨天面试的时候被问到的问题。只怪自己根基不牢,没有回答好。然后面试官提示用for in,突然恍然大悟,然后又查询了网上的一些方法,对这个问题做一下整理。1、最常见的思路,for…in…遍历属性,为真则为“非空数组”;否则为“空数组”var judgeObj = function(obj){ for(var item in obj){ return true; }原创 2017-09-12 15:08:00 · 1287 阅读 · 0 评论 -
前端面试中常见的数据结构题
一、链表1、如何判断一个链表里有没有环思路:快慢指针,一个走的快,一个走的慢,那么若干步以后,快慢指针会相遇。/** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * this.next = null; * } */var hasCycle = funct原创 2017-09-20 14:33:21 · 2950 阅读 · 0 评论 -
输入一个URL到页面呈现的过程
输入一个URL到页面呈现的过程这是一个面试中老生常谈的问题,在百度、小米、美团等面试中均问到了这个问题。这几天读了一篇还不错的文章,现根据自己的理解做一下整理。1、 我们输入一个域名:www.facebook.com,然后点击确认;2、浏览器查找该域名的IP;具体的查找过程如下:(1)首先是浏览器缓存。各大浏览器默认开启了DNS缓存功能,大多数浏览器有独立于操作系统的自己的cache。只要浏览器在自原创 2017-09-04 10:13:01 · 581 阅读 · 0 评论 -
JS数组去重的多种实现
js数组去重是平时我们经常遇见的问题,也是前端面试中比较受面试官青睐的一个算法问题,现将几种方法整理如下:1.遍历数组法最简单的去重方法,实现思路:新建一新数组,遍历传入数组,值不在新数组就加入该新数组中;注意点:判断值是否在数组的方法“indexOf”是ECMAScript5 方法,IE8以下不支持,需多写一些兼容低版本浏览器代码,源码如下:var unique = function(arr){原创 2017-09-07 14:37:50 · 481 阅读 · 0 评论 -
前端面试之算法题
虽说我们很多时候前端很少有机会接触到算法。大多都交互性的操作,然而从各大公司面试来看,算法依旧是考察的一方面。实际上学习数据结构与算法对于工程师去理解和分析问题都是有帮助的。如果将来当我们面对较为复杂的问题,这些基础知识的积累可以帮助我们更好的优化解决思路。下面罗列在前端面试中经常撞见的几个问题吧。Q1 判断一个单词是否是回文? 回文是指把相同的词汇或句子,在下文中调换位置或颠倒过来,产生首尾回原创 2017-09-30 10:46:59 · 1812 阅读 · 2 评论 -
js中的事件委托
简介利用冒泡的原理,把事件加到父级上,触发执行效果。在介绍事件委托例子之前,先看一个传统做法的例子:实现功能是点击li,弹出123:<ul id="ul1"> <li>111</li> <li>222</li> <li>333</li> <li>444</li></ul>window.onload = function(){ var oUl = docum原创 2017-06-21 18:03:13 · 377 阅读 · 0 评论 -
HTML中<input>和<textarea>的区别
<input>是一个单行输入框,有value属性(value属性指定初始值),但是它不能自动换行;用来放置字数较少的单行文字内容。<input>元素:1.一定要指定type的值为text; 2.通过size属性指定显示字符的长度,value属性指定初始值,Maxlength属性指定文本框可以输入的最长长度;<input type="text" value="" size="10" Maxleng原创 2017-06-21 17:26:23 · 2812 阅读 · 0 评论 -
css清除浮动
为什么要清除浮动我们先来看一个现象: HTML代码结构<div class="outer"> <div class="div1">1</div> <div class="div2">2</div> <div class="div3">3</div></div>CSS样式.outer{border: 1px solid #ccc;background: #fc9;color原创 2017-05-18 14:01:21 · 356 阅读 · 0 评论 -
关于 JavaScript 的数组随机排序
关于 JavaScript 的数组随机排序JavaScript 开发中有时会遇到要将一个数组随机排序(shuffle)的需求,一个常见的写法是这样:function shuffle(arr) { arr.sort(function () { return Math.random() - 0.5; });转载 2017-03-30 16:04:20 · 971 阅读 · 0 评论 -
前端笔试题整理
一、 对WEB标准以及W3C的理解与认识 web标准,使得Web开发更加容易。Web标准由万维网联盟(W3C)制定。 web标准,简单来说就是将页面的结构、表现和行为各自独立实现(结构、表现和行为相分离原则)。web标准一般将三部分独立分开,使它们更加模块化。但一般产生行为时,结构和表现会发生变化,这三者之间的界限就会变模糊。 W3C对web标准提出了规范化的要求,在实际编程中,包含一下原创 2017-04-10 12:02:40 · 528 阅读 · 0 评论 -
今日头条前端面试总结
今天早晨刚刚结束了今日头条的前段实习生面试。总的下来感觉自己答的一般,感觉以前看东西太浅尝辄止了,导致了今天的面试有很多细节答不上来。现凭着记忆记录一下碰到的题目。HTML CSS1、position的属性有哪些,这些属性有什么区别。这个问题在百度一面的时候也遇到过。同时要注意以下几点:(1)relative产生的定位并不会让元素脱离文档流,并且其原来的位置也会保留。原创 2017-05-10 16:29:50 · 6438 阅读 · 2 评论 -
HTTP协议内容总结
HTTP协议1.简介HTTP协议(Hyper Text Transfer Protocol,超文本传输协议),是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP基于TCP/IP通信协议来传递数据。HTTP基于客户端/服务端(C/S)架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议。2.特点(1原创 2017-03-30 15:21:03 · 489 阅读 · 0 评论 -
80% 应聘者都不及格的 JS 面试题
写在前面,笔者在做面试官这 2 年多的时间内,面试了数百个前端工程师,惊讶的发现,超过 80% 的候选人对下面这道题的回答情况连及格都达不到。这究竟是怎样神奇的一道面试题?他考察了候选人的哪些能力?对正在读本文的你有什么启示?且听我慢慢道来不起眼的开始招聘前端工程师,尤其是中高级前端工程师,扎实的 JS 基础绝对是必要条件,基础不扎实的工程师在面对前端开发中的各种问题时大概率会束手无策。在考察候选人转载 2017-05-15 14:06:01 · 304 阅读 · 0 评论 -
JavaScript 深入之从原型到原型链
构造函数创建对象我们先使用构造函数创建一个对象:function Person() {}var person = new Person();person.name = 'name';console.log(person.name) // name在这个例子中,Person就是一个构造函数,我们使用new创建了一个实例对象person。很简单吧,接下来进入正题:prototype每个函数都有一个转载 2017-05-15 14:39:43 · 586 阅读 · 0 评论 -
快速排序(Quicksort)的Javascript实现
"快速排序"的思想很简单,整个排序过程只需要三步: (1)在数据集之中,选择一个元素作为"基准"(pivot)。 (2)所有小于"基准"的元素,都移到"基准"的左边;所有大于"基准"的元素,都移到"基准"的右边。 (3)对"基准"左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元素为止。举例来说,现在有一个数据集{85, 24, 6转载 2017-05-10 00:01:47 · 386 阅读 · 0 评论 -
HTML5本地存储:SessionStorage, LocalStorage, Cookie
SessionStorage, LocalStorage, Cookie这三者都可以被用来在浏览器端存储数据,而且都是字符串类型的键值对!。 区别在于前两者属于WebStorage,创建它们的目的便是存储客户端数据。 而Cookie早在网景公司的浏览器中就开始支持,最初目的是为了保持HTTP的状态。概念的异同Cookie是存储在客户端的小型文本文件,可以包含若干键值对,每个键值对可原创 2017-03-24 17:15:13 · 509 阅读 · 0 评论 -
从一道面试题谈js函数声明
爱奇艺前端面试题有个题目如下:a();function a(){ console.log('a');}b();var b = function(){ console.log('b');}那么函数的执行结果是?熟悉函数变量提升的同学很容易就想到答案是:a undefined。不熟悉的童鞋们可以接着往下看~JS关于函数的声明,有一个很重要的特征就是函数的变量提升。意思是在执行代原创 2017-05-15 16:33:14 · 1678 阅读 · 1 评论 -
CSS常见布局:左侧固定,右侧自适应
这是一个很常见的布局,当然也可以实现右侧自适应,左侧自适应。比如常见的网页中,左侧导航栏是固定的,右侧的内容区要自适应浏览器的大小。 现在我们来看下HTML布局:<div id="outer"> <div id="sidebar" style="height:240px;">固定宽度区</div> <div id="content" style="height:340px;">自适应区</原创 2017-05-18 16:56:04 · 5850 阅读 · 0 评论 -
JS中类型的检测
在js开发中,经常需要检测一个变量的类型。现在就总结一下常见的检测变量类型的方法,以及它们的适用场景。一、typeof要检测一个变量是不是基本数据类型,typeof是最佳的工具。也就是说,typeof是确定一个变量是字符串、数值、布尔值还是undefined的最佳工具。但如果变量是一个对象或者null,则typeof操作符会都返回object:var num = 123;var str = 'ab原创 2017-05-19 10:55:50 · 656 阅读 · 0 评论 -
校招提前批之今日头条一面
今天上午面了头条校招提前批,感觉考的比较基础,也有一些知识点没有答出来,现凭着记忆总结一些知识点。CSS1、inline间隙问题问了下inline-block间隙的原因,以及去掉的方案,这个打算重新开一篇博客总结。2、margin合并问题外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。当一个元素出现在另一个元素上面时,第一原创 2017-08-20 18:38:20 · 1583 阅读 · 0 评论