前端学习
DCX_abc
我爱编程!
展开
-
Servlet入门经验
1.先在myeclispe下创建一个MyServlet类。代码为:public class Myservlet implements Servlet {@Overridepublic void destroy() {System.out.println("destroy.....");}@Overridepublic ServletConfig get原创 2017-05-27 22:44:39 · 3186 阅读 · 0 评论 -
模板模式
模板模式概念: 定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 通俗的讲,就是将一些公共方法封装到父类,子类可以继承这个父类,并且可以在子类中重写父类的方法,从而实现自己的业务逻辑。代码实现:比如前端面试,基本包括笔试,技术面试,领导面试,HR面试等,但是每个公司的笔试题,技术面可能不一样,也可能一样,原创 2017-12-01 09:26:18 · 2441 阅读 · 0 评论 -
策略模式
策略模式概念: 策略模式指的是定义一些列的算法,把他们一个个封装起来,目的就是将算法的使用与算法的实现分离开来。说白了就是以前要很多判断的写法,现在把判断里面的内容抽离开来,变成一个个小的个体。代码实现:代码情景为超市促销,vip为5折,老客户3折,普通顾客没折,计算最后需要支付的金额。没有使用策略模式的情况:function Price(personType, price)原创 2017-12-01 09:23:53 · 4301 阅读 · 0 评论 -
观察者模式(发布订阅模式)
观察者模式概念: 定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新,也被称为是发布订阅模式。它需要一种高级的抽象策略,以便订阅者能够彼此独立地发生改变,而发行方能够接受任何有消费意向的订阅者。应用场景: 这个模式要先说应用场景,比较好理解。 打一个离我们比较近的一个场景,博客园里面有一个订阅的按钮(貌似有bu原创 2017-12-01 09:20:46 · 1856 阅读 · 0 评论 -
单例模式
单例模式概念: 单例模式定义了一个对象的创建过程,此对象只有一个单独的实例,并提供一个访问它的全局访问点。也可以说单例就是保证一个类只有一个实例,实现的方法一般是先判断实例存在与否,如果存在直接返回,如果不存在就创建了再返回,这就确保了一个类只有一个实例对象。代码实现: 单例的实现有很多种,下面只介绍其中的一种,使用闭包方式来实现单例,代码如下:var single =原创 2017-12-01 09:16:40 · 1057 阅读 · 0 评论 -
单体模式和工厂模式
单体模式概念: 单体是一个用来划分命名空间并将一批相关的属性和方法组织在一起的对象,如果他可以被实例化,那么他只能被实例化一次。其特点有以下三点: (1)可以来划分命名空间,从而清除全局变量所带来的危险。 (2)利用分支技术来来封装浏览器之间的差异。 (3)可以把代码组织的更为一体,便于阅读和维护。js代原创 2017-11-30 23:21:58 · 1428 阅读 · 0 评论 -
浅谈A*算法
搜索区域 假设有人想从A点移动到一墙之隔的B点,如下图,绿色的是起点A,红色是终点B,蓝色方块是中间的墙。 你首先注意到,搜索区域被我们划分成了方形网格。像这样,简化搜索区域,是寻路的第一步。这一方法把搜索区域简化成了一个二维数组。数组的每一个元素是网格的一个方块,方块被标记为可通过的和不可通过的。路径被描述为从A到B我们经过的方块的集合。一旦路径被找到,我们的人就从一个方格的中心走向另一个,直原创 2017-10-21 14:39:47 · 1206 阅读 · 0 评论 -
JAvaScript中apply()和call()的区别
初学JavaScript时经常混淆apply()和call()的区别,现在就它们的做一下简单的描述。相同点:apply()和call()两个方法产生的作用是一样的,都用来改变当前函数调用的对象。不同点:apply()和call()方法调用的参数不同。下面细致分析下apply()和call()使用区别:call()的使用call([thisObj[,arg1[, arg2[, [,.argN]]]]原创 2018-01-02 16:04:45 · 991 阅读 · 0 评论 -
单线程模型
什么是单线程模型?单线程模型指的是,JavaScript只在一个线程上运行。也就是说,JavaScript同时只能执行一个任务,其他任务都必须在后面排队等待。注意,JavaScript只在一个线程上运行,不代表JavaScript引擎只有一个线程。事实上,JavaScript引擎有多个线程,单个脚本只能在一个线程上运行,其他线程都是在后台配合。JavaScript之所以采用单线程,而不原创 2018-01-02 23:04:10 · 1965 阅读 · 0 评论 -
浅谈window对象
在浏览器中,window对象(注意,w为小写)指当前的浏览器窗口。它也是所有对象的顶层对象。“顶层对象”指的是最高一层的对象,所有其他对象都是它的下属。JavaScript规定,浏览器环境的所有全局变量,都是window对象的属性。var a = 1;window.a // 1上面代码中,变量a是一个全局变量,但是实质上它是window对象的属性。声明一个全局变量,就是原创 2018-01-30 20:26:05 · 813 阅读 · 0 评论 -
浅谈navigator对象
(1) navigator.userAgentnavigator.userAgent属性返回浏览器的User-Agent字符串,标示浏览器的厂商和版本信息。下面是Chrome浏览器的userAgent。navigator.userAgent// "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko原创 2018-01-30 21:03:59 · 1246 阅读 · 0 评论 -
js中数组方法push()、shift()与pop()、unshift()的区别
1、push()是用来在数组末端添加项,shift()在移除数组的第一个项。2、pop()在数组末端移除项,unshift()在数组前端添加项。3、push(),unshift()在推入多个项时,各个项之间的顺序不变。4、push(),unshift()将数组的长度+1并且返回的是数组的长度;pop(),shift()将数组length-1并返回的是移除的项原创 2017-09-08 19:42:40 · 3583 阅读 · 1 评论 -
JS实现数组去重的六种方法
方法一:双层循环,外层循环元素,内层循环时比较值如果有相同的值则跳过,不相同则push进数组Array.prototype.distinct =function(){ var arr = this; var result = []; len = arr.length; for(var i = 0; i < len; i++){ for(var j = i + 1; j < ...原创 2018-03-07 12:40:16 · 955 阅读 · 2 评论 -
浅谈MVC、MVP、MVVM架构模式的区别和联系
MVC、MVP、MVVM这些模式是为了解决开发过程中的实际问题而提出来的,目前作为主流的几种架构模式而被广泛使用。一、MVC(Model-View-Controller)MVC是比较直观的架构模式,用户操作->View(负责接收用户的输入操作)->Controller(业务逻辑处理)->Model(数据持久化)->View(将结果反馈给View)。MVC使用非常广泛,比如J...原创 2018-03-07 13:59:47 · 838 阅读 · 0 评论 -
ES6与ES5差别简述
ES6与ES5差别1、ES6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。 { var a = 1; let b = 1; } a;//1 b;//undefinedlet不像var存在变量提升,即变量一定要声明之后才能使用。2、块级作用域ES5只有全局作用域和函数作用域,没有块...原创 2018-03-10 15:13:24 · 1364 阅读 · 0 评论 -
代理模式
代理模式概念: 代理模式的中文含义就是帮别人做事,javascript的解释为:把对一个对象的访问, 交给另一个代理对象来操作. 代码实现: 比如我们公司的补打卡是最后是要交给大boss来审批的,但是公司那么多人,每天都那么多补打卡,那大boss岂不是被这些琐事累死。所以大boss下会有一个助理,来帮忙做这个审批,最后再将每个月的补打卡统一交给大boss看看就行。//原创 2017-12-02 16:49:19 · 969 阅读 · 0 评论 -
外观模式
外观模式概念: 外观模式是很常见。其实它就是通过编写一个单独的函数,来简化对一个或多个更大型的,可能更为复杂的函数的访问。也就是说可以视外观模式为一种简化某些内容的手段。 说白了,外观模式就是一个函数,封装了复杂的操作。代码实现: 比如一个跨浏览器的ajax调用function ajaxCall(type,url,callback,data){ // 根据当前浏览原创 2017-12-02 16:51:06 · 816 阅读 · 0 评论 -
牛客网前端编程题库及答案汇总(中)
1.完全等同 题目描述 判断 val1 和 val2 是否完全等同 初始代码: AC代码: 解释:一般使用双等来判断(==), 如果还需要类型相同那么就用三等(===)。2.计时器 题目描述 实现一个打点计时器,要求 1、从 start 到 end(包含 start 和 end),每隔 100 毫秒 console.log 一个数字,每次数字增幅为 1 2、返回的对象中需要包含一个原创 2017-11-01 18:57:49 · 3536 阅读 · 0 评论 -
javascript学习过程详细记录
1.javascript代码是按序执行的,如果javacript代码未添加window.onlaod=function(){……},其中function为匿名函数。则可能会出现取不到某个元素的错误。 2.JavaScript中函数调用时,什么时候加括号,什么时候不加括号? 函数只要是要调用它进行执行的,都必须加括号。此时,函数()实际上等于函数的返回值。当然,有些没有返回值,但已经执行了函数体内原创 2017-07-04 00:22:35 · 3422 阅读 · 0 评论 -
JavaScript中SetInterval与setTimeout使用区别
在使用setTimeout和setInterval的时候,可以发现它们语法相同。都有两个参数。第一个参数是将要执行的代码字符串,第二个参数是以毫秒为单位的时间间隔。过了这个时间间隔,就会执行那段代码。 举个例子来看它们的区别: (1)window.setTimeout(“function”,time);这条语句设置了一个超时对象,只执行一次,无周期 (2)window.setInte原创 2017-09-24 22:14:18 · 2807 阅读 · 0 评论 -
JavaScript强制类型转换和隐式类型转换
在JavaScript中声明变量不需指定类型, 对变量赋值也没有类型检查,同时JavaScript允许隐式类型转换。这些特征说明JavaScript属于弱类型的语言。 (1).转换为字符串 转换为字符串是应用程序中的常见操作,javascript提供了toString方法。多数的JavaScript宿主环境(比如Node.js和Chrome)都提供了全局函数toString; 与此同时Objec原创 2017-09-29 20:15:25 · 2874 阅读 · 0 评论 -
vis.js介绍
Vis.js是一个动态的、基于浏览器的可视化库,可处理大量的动态数据并能与这些数据进行交互操作。该项目包含 DataSet、Timeline, 和 Graph(2d和3d)。 Vis.js是由Almende B.V公司开发的开源项目,基于Canvas绘制web可视化图形图表,简单易用,功能强大。 下面是vis.js的模块: 数据集(DataSet): 灵活的键/值对,可添加、更原创 2017-09-30 16:13:15 · 7136 阅读 · 0 评论 -
javascript方法中new方式和字面量方式的区别
JavaScript中并没有类的概念,正如其他动态语言一样,JavaScript中的所有元素均为对象。我们可以把JavaScript中的对象看做是其他语言中的HashTable,即键-值对(key-value pair)哈希表。 举个简单的例子:在创建对象时向其添加属性和方法: var dog = { name: "Max", getName = function原创 2017-10-04 10:22:57 · 4459 阅读 · 0 评论 -
浅谈常见的target=_blank
常见的html页面经常出现target=”_blank”,尤其发生在为超链接的情况下,所以专门整理了下相关的知识点: 首先target有几个可选值: 1. _blank 链接在新页面打开 2. _parent 链接在父页面打开 3. _self 链接在当前页面打开(默认为_self) 4. _top 链接在最上级页面打开 (1)HTML元素<a href=原创 2017-10-11 17:18:41 · 10602 阅读 · 0 评论 -
简述HTML和JSP在注释上的区别
作为一名初学者,我简单的说下HTML与JSP的区别:希望有大神补充。原创 2016-12-27 16:37:30 · 6687 阅读 · 0 评论 -
$(window).height() 和 $(document).height()的区别
先上代码:function b(){ h = $(window).height(); t = $(document).scrollTop(); if(t > h){ $('#gotop').show(); }else{ $('#gotop').hide(); }}$(document).ready(function(e) {原创 2017-10-22 00:38:47 · 1747 阅读 · 1 评论 -
html中的垂直居中和水平居中
转自http://blog.csdn.net/github_37037281/article/details/55510401转载 2017-02-17 15:45:57 · 3940 阅读 · 0 评论 -
纯CSS画基本图形(圆形、三角形、多边形、爱心、八卦)
1、正方形 CSS代码如下:#square{ width: 100px; height: 100px; background: red;}最终效果: 2、长方形 CSS代码如下:#rectangle { width: 200px; height: 100px; background: red;}最终效果: 3、圆形 CSS代码如下:#ci原创 2017-11-12 14:37:03 · 2063 阅读 · 3 评论 -
javascript自执行匿名函数(function(){})()
匿名函数指没有指定函数名或指针的函数,自执行匿名函数只是其中一种,下面是一种最常用的例子: // 传统匿名函数 (function() { alert('hello'); })();是什么促使它自动执行的?我们在传统写法上去掉小括号,并在前面加上运算符 ~,!,+,-,效果都是一样的,可以发现这些写法的共同点是运算符,其实传统方式的小括原创 2017-09-14 10:28:58 · 5393 阅读 · 0 评论 -
D3.js和highcharts,echarts性能对比
前端做数据可视化开发时,经常会用到D3.js、highcharts、echarts这些可视化插件,我就这三者在性能上的区别做一个简单的介绍: (1).Highcharts和echarts是一类东西,但跟d3.js维度不同。假如前面两个能解决你的需求,那么就可以先不考虑d3。英语好highcharts,英语不好选echarts。当然最好要先评估一下它们对浏览器的兼容性,免得写完了发现用户那运行不了。原创 2017-09-30 16:28:53 · 26607 阅读 · 0 评论 -
前端JS小坑集锦
我在做一些JS项目的时候经常遇到一些小坑,现在决定将它们记录下来,也供童鞋们参考和指正。 1.$(...).on is not a function 解决方案。 解:出现这个错误的原因是引入的jQuery的插件版本过低,此版本的jQuery中不包含on()方法。解决办法是:可以引入较高的版本 如 jquery-1.8.3.min.js。(相关知识:之前的使用的bind()、delegate()原创 2017-10-19 23:31:32 · 1268 阅读 · 0 评论 -
javascript中function前面加!,+,-,~的含义
我们都知道,函数的声明方式有这两种function fnA(){alert('msg');}//声明式定义函数var fnB = function(){alert('msg');}//函数赋值表达式定义函数函数的调用方式通常是FunctionName()但是,如果我们尝试为一个“定义函数”末尾加上(),解析器是无法理解的。function msg(){ alert('message');...原创 2018-03-03 19:37:37 · 5764 阅读 · 0 评论