前端面试题
一个被程序员耽误的厨师
经历一番,才会沉淀,人生需要储备
展开
-
史上最全的CSS hack方式一览
做前端多年,虽然不是经常需要hack,但是我们经常会遇到各浏览器表现不一致的情况。基于此,某些情况我们会极不情愿的使用这个不太友好的方式来达到大家要求的页面表现。我个人是不太推荐使用hack的,要知道一名好的前端,要尽可能不使用hack的情况下实现需求,做到较好的用户体验。可是啊,现实太残酷,浏览器厂商之间历史遗留的问题让我们在目标需求下不得不向hack妥协,虽然这只是个别情况。今天,结合自己的经原创 2016-10-09 10:32:53 · 817 阅读 · 0 评论 -
web app遇到的一些坑及小技能(持续更新...) 遇到的一些坑
问题:手机端 click 事件会有大约 300ms 的延迟 原因:手机端事件 touchstart --\> touchmove --> touchend or touchcancel --> click,因为在touch事件触发之后,浏览器要判断用户是否会做出双击屏幕的操作,所以会等待300ms来判断,再做出是否触发click事件的处理,所以就会有300ms的延迟解决方法:使转载 2016-10-08 17:50:05 · 371 阅读 · 0 评论 -
什么是前端组件化,模块化?
组件化就是做一个网站,把导航栏拆成一个组件,一个一个回答区域拆成一个组件,编辑区是一个组件,页脚是一个组件,等等。。你可以尽情拆分。一个组件包含了html、css、js代码,可以简单理解为页面的一块。模块化就是做一个网站的编辑区组件,假设要有时间格式化、图片格式处理、视频格式处理、代码格式处理,这样很多个js功能。那么你当然可以在HTML里面引入多个JS script,现在更流行更好的方式原创 2016-10-18 14:48:29 · 1272 阅读 · 0 评论 -
闭包是什么
闭包是什么?闭包是指某种程序语言中的代码块允许一级函数存在并且在一级函数中所定义的自由变量能不被释放,直到一级函数被释放前,一级函数外也能应用这些未释放的自由变量。 怎样?看得一头冒汗吧……没事,我也是(虽然是我是了解的,只是表达能力的问题)。让我们换个更加简单的方法说明:闭包,其实是一种语言特性,它是指的是程序设计语言中,允许将函数看作对象,然后能像在对象中的操作搬在函数中定义实例(局部转载 2016-10-18 14:19:21 · 477 阅读 · 0 评论 -
对require.js 的使用进行总结
一、为什么要使用require.js 首先一个页面如果在加载多个js文件的时候,浏览器会停止网页渲染,加载文件越多,网页失去响应的时间就会越长;其次,由于js文件之间存在依赖关系,因此必须严格保证加载顺序,当依赖关系很复杂的时候,代码的编写和维护都会变得困难。 require.js,就是为了解决这两个问题: (1)实现js文件的异步加载,避免网转载 2016-10-18 13:56:49 · 233 阅读 · 0 评论 -
RequireJS - 用法
首页在html页面中写入: [html] view plain copy script src="js/require.js" data-main="js/main">script> data-main属性的作用是,指定网页程序的主模块。在上例中,就是js目录下面的main.js,这个文件会第一个被require.js加载。由于req转载 2016-10-18 13:27:40 · 165 阅读 · 0 评论 -
JS怎样获取url中的参数?
//获取url参数function get_url_param(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象 var r = window.location.search.substr(1).match(reg); //匹配目标参数 if原创 2016-10-18 11:32:02 · 230 阅读 · 0 评论 -
JavaScript设计模式都有哪些?
单体(Singleton)模式: 绝对是JavaScript中最基本最有用的模式。 单体在JavaScript的有多种用途,它用来划分命名空间。可以减少网页中全局变量的数量(在网页中使用全局变量有风险);可以在多人开发时避免代码的冲突(使用合理的命名空间)等等。 在中小型项目或者功能中,单体可以用作命名空间把自己的代码组织在一个全局变量名下;在稍大或者复杂的功能中,单体可以用来转载 2016-10-18 11:04:41 · 1461 阅读 · 1 评论 -
如何理解JS中的封装和继承?
封装:通过将一个方法或者属性声明为私用的,可以让对象的实现细节对其他对象保密以降低对象之间的耦合程度,可以保持数据的完整性并对其修改方式加以约束,这样可以是代码更可靠,更易于调试。封装是面向对象的设计的基石。 尽管JavaScript是一门面向对象的语言,可它并不具备将成员声明为公用或私用的任何内部机制,所以我们只能自己想办法实现这种特性。下面还是通过一套完整的代码去分析,介绍什么是私有转载 2016-10-18 10:38:13 · 533 阅读 · 0 评论 -
JS闭包问题?
在面试的时候总是会问JS闭包,总是因为这个问题,郁闷好久,于是百度了很久,终于有了一些了解,不扯了,上代码了:闭包:关于闭包这个月在园子里有几篇不错的分享了,在这我也从最实际的地方出发,说说我的理解。 1.闭包最常用的方式就是返回一个内联函数(何为内联函数?就是在函数内部声明的函数); 2.在JavaScript中有作用域和执行环境的问题,在函数内部的变量在原创 2016-10-18 10:23:24 · 275 阅读 · 0 评论 -
MVC与MVVM区别?
在MVC里,View是可以直接访问Model的!从而,View里会包含Model信息,不可避免的还要包括一些业务逻辑。 MVC模型关注的是Model的不变,所以,在MVC模型里,Model不依赖于View,但是 View是依赖于Model的。不仅如此,因为有一些业务逻辑在View里实现了,导致要更改View也是比较困难的,至少那些业务逻辑是无法重用的。 MVVM在概念上是真正将页面与数据逻辑原创 2016-10-18 09:44:05 · 207 阅读 · 0 评论 -
前端面试题
1、DOM结构——两个节点之间可能存在哪些关系以及如何在节点之间任意移动。document.documentElement 返回文档的根节点 document.body document.activeElement 返回当前文档中被击活的标签节点(ie) event.fromElement 返回鼠标移出的源节点(ie) event.toElement原创 2016-10-11 09:43:53 · 328 阅读 · 0 评论 -
Web前端应该从哪些方面来优化网站?
作者:斯迪链接:http://www.zhihu.com/question/21658448/answer/18903129来源:知乎著作权归作者所有,转载请联系作者获得授权。前端是庞大的,包括 HTML、 CSS、 Javascript、Image 、Flash等等各种各样的资源。前端优化是复杂的,针对方方面面的资源都有不同的方式。那么,前端优化的目的是什么 ? 1.原创 2016-10-09 13:35:33 · 622 阅读 · 0 评论 -
前端开发面试题
作为一名前端工程师,无论工作年头长短都应该掌握的知识点:此条由 王子墨 发表在 攻城师的实验室 1、DOM结构 —— 两个节点之间可能存在哪些关系以及如何在节点之间任意移动。 2、DOM操作 —— 如何添加、移除、移动、复制、创建和查找节点等。 3、事件 —— 如何使用事件,以及IE和标准DOM事件模型之间存在的差别。 4、XMLHttpReques转载 2016-10-08 18:01:06 · 1061 阅读 · 0 评论