
Javascript
meloseven
这个作者很懒,什么都没留下…
展开
-
正则表达式中的特殊匹配
贪婪匹配和惰性匹配原创 2017-08-22 11:21:41 · 409 阅读 · 0 评论 -
前端工程构建需要的文件及步骤
现代化前端工程需要有很多工具等,现在整理一些平时会用到的。 工具插件 涉及的文件及功能 Node、npm package.json bower bower.json,.bowerrc(bower的配置文件) gulp gulpfile.js git .gitignore babel .babelrc原创 2017-03-16 23:01:27 · 606 阅读 · 0 评论 -
gulp删除文件
gulp删除文件一般gulp删除文件大家会去使用gulp-clean等,但仅仅通过del就可以了。 这里是官方的建议:https://github.com/gulpjs/gulp/blob/master/docs/recipes/delete-files-folder.md 先安装del:npm install --save-dev del简单使用:var gulp = require('gul原创 2017-04-10 10:22:55 · 3577 阅读 · 0 评论 -
常用的gulp插件
HTML&CSS autoprefixer - parse CSS and add vendor prefixes to rules by Can I Use.gulp-browser-sync - keep multiple browsers & devices in sync when building websites.gulp-useref - parse build blocks in转载 2017-03-13 10:42:09 · 542 阅读 · 0 评论 -
AngularJs1.x自定义指令独立作用域的函数传入参数
在定义指令的scope属性如果设置成了{},那就成为了一个独立作用域,如果要传入一个方法,使用&,但是这里的传参有点不一样。先看下官网解释: & or &attr - provides a way to execute an expression in the context of the parent scope. If no attr name is specified then the a原创 2017-04-07 16:16:14 · 2434 阅读 · 0 评论 -
使用Benchmark.js和jsPerf分析代码性能
前言 前端开发中,掌握好浏览器的特性进行有针对性的性能调优是一项基本工作,同时,比较不同代码的执行速度也是一项关键的工作。比如,当我们想比较RegExp的test方法和String对象的indexOf方法查找字符串谁的速度更快的话,js代码在不同的浏览器,不同的操作系统环境运行的效率可能是不一样的,这就是为什么我们需要对其进行基准测试,在做基准测试方面,我们可以使用Benchmark.js和使用j转载 2017-03-12 11:34:57 · 1882 阅读 · 0 评论 -
Web前端代码构建优化
前言 本次所做的构建针对于iVMS-5200 Professional 车载 1.0项目的前端工程。在现在化Web开发情况下,越来越注重用户体验,具体包括网站的访问速度,页面的自适应,页面操作的流畅度。如何做到更快,对前端开发人员尤为重要。依据Yahoo经典的性能优化建议,包括减少HTTP请求、使用CDN、使用gzip压缩、精简CSS和JS等等,前端不仅需要再开发过程中对代码进行优化,同时需要在发原创 2017-03-07 09:21:29 · 851 阅读 · 0 评论 -
protobuf.js如何读取二进制数据
How to read binary data in the browser or under node.js?When reading/writing binary data in the browser or under node.js, it is mandatory to understand that just reading it (as a string) is not enough.转载 2017-03-07 09:10:52 · 3738 阅读 · 0 评论 -
JSONP的原理
那JSONP是如何工作的呢,我们知道,由于同源策略的限制,XmlHttpRequest只允许请求当前源(域名、协议、端口)的资源。若要跨域请求出于安全性考虑是不行的,但是我们发现,Web页面上调用js文件时则不受是否跨域的影响,而且拥有”src”这个属性的标签都拥有跨域的能力,比如function CallWebServiceByJsonp() { $("#SubEquipmentD转载 2017-03-07 09:07:18 · 404 阅读 · 0 评论 -
判断是否是IE浏览器,包括IE10,IE11
function isIE() { //ie? if (!!window.ActiveXObject || "ActiveXObject" in window) return true; else return false;}注意:但IE11的userAgent里是没有MSIE标志的或者function isIe(){ return /msie/.test(naviga原创 2017-03-07 09:06:15 · 831 阅读 · 0 评论 -
JS解析二进制图片
HTML代码:<div id="forAppend" class="demo"></div>JS代码:var eleAppend = document.getElementById("forAppend");window.URL = window.URL || window.webkitURL;if (typeof history.pushState == "function") { v转载 2017-03-07 09:05:47 · 10534 阅读 · 0 评论 -
ES6值得关注的点
不存在变量提升,在ES5中var定义的变量可以在声明之前使用,值为undefined,而let则不会,如果在let之前使用变量,会提示出错。ES6明确规定,如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错。总之,在代码块内,使用let命令声明变量之前,该变量都是不可用的块级作用域的出现,实际上使得获得广泛应用原创 2017-03-16 23:24:02 · 243 阅读 · 0 评论 -
Angular中Jquery修改input的值之后如何更新Model
在开发angular程序中,有时候会用到jquery来修改input值,比如在做输入限制的时候,当复制粘贴字符到input框之后,需要对值进行改变再放入到input中。此时需要同步更新input上的ng-model。注意不要使用scope.$apply(),因为这个是model改变之后来更新view的。下面来看下具体方法。function handlePaste(e) { e.prevent原创 2017-04-14 11:00:57 · 5637 阅读 · 3 评论 -
Object主要方法的总结
在javascript中Object含有很多内置函数,可能平时用的比较少,但是这些方法作用很大。这里对这些方法进行一些总结: Object主要含有的方法包括:defineProperty(), defineProperties(), assign(), create(), entries(), freeze(), getOwnPropertyNames(), getPrototypeOf(),原创 2017-08-11 15:39:36 · 442 阅读 · 0 评论 -
HTML5中video和audio所支持的格式
在HTML5中新增了video和audio标签,可以播放音视频文件,但是不同的格式需要不同的解码器,各个浏览器所支持的格式有很大差别,这里是桌面所支持的格式:原创 2017-07-20 14:25:19 · 4150 阅读 · 0 评论 -
实现javascript深复制
Javascript深复制需要处理引用值类型的数据,使复制的内容不再引用同一块内存地址。引用类型包括:Object,Array。通过typeof可以检测是否是类Object,包括了RegExp,Date等,需要将这些直接赋值即可,下面是我实现的深复制方法:/** * 实现深复制 * @param copy 需要复制的数组 * @returns {*} */function deepclon原创 2017-06-11 20:59:02 · 246 阅读 · 0 评论 -
IE8,9中将event传到其他作用域会失效
与其它浏览器在事件触发之后为每个事件创建一个单独的Event对象相对,IE的所有事件公用一个Event对象,也就是window.event。因此为了避免冲突,针对某个事件的window.event对象只在该事件的事件处理函数的执行过程中有效,一旦事件处理函数执行完了,window.event就被IE设置为null了。如果传到其他作用域,event的属性会显示无法获取成员。 比如:var elem原创 2017-06-30 17:36:16 · 276 阅读 · 0 评论 -
Angular 1.2 原理分析
$digest脏检查,先看下源码//位置:rootScope.js $digest: function() { var watch, value, last, watchers, asyncQueue = this.$$asyncQueue, postDigestQueue = this.$$postDiges原创 2017-06-05 09:58:31 · 601 阅读 · 0 评论 -
如何写一个DOM加载完成的执行行数
像在jquery中会有$(function(){})或者$.ready(function(){})来使代码在DOM加载完成后执行。那么这里面的原理是怎么样的。先看下面代码:ready: function(fn) { var fired = false; function trigger() { if (fired) return; fired = true;原创 2017-04-24 17:13:45 · 490 阅读 · 0 评论 -
字节,字符,Unicode,utf-32,utf-16,utf-8,ASCII的含义
计算机中字节,字符,Unicode,utf-32,utf-16,utf-8的概念很容易让人混淆,理解这里概念对于程序开发来说非常重要。字节:字节(Byte)是一种计量单位,表示数据量多少,它是计算机信息技术用于计量存储容量的一种计量单位。一个字节用8位二进制表示,也就是说,一个字节的范围是0-255,用16进制表示就是0x00-0xFF字符:表示一个符号,英文字母,汉字等等。一个字符没有特定等于多少原创 2017-05-23 22:11:09 · 608 阅读 · 0 评论 -
How browsers work(浏览器工作原理)
How browsers work:http://taligarsiel.com/Projects/howbrowserswork1.htm 浏览器的渲染原理简介 http://coolshell.cn/articles/9666.html 深度剖析浏览器渲染性能原理,你到底知道多少?http://www.jianshu.com/p/a32b890c29b1原创 2017-04-06 15:04:21 · 589 阅读 · 0 评论 -
Client side performance(web 客户端表现性能建议)
原文地址http://taligarsiel.com/ClientSidePerformance.html原创 2017-04-06 15:06:43 · 257 阅读 · 0 评论 -
初识requestAnimationFrame
HTML5/CSS3时代,我们要在web里做动画选择其实已经很多了: 你可以用CSS3的animattion+keyframes; 你也可以用css3的transition; 你还可以用通过在canvas上作图来实现动画,也可以借助jQuery动画相关的API方便地实现; 当然最原始的你还可以使用window.setTimout()或者window.setInterval()通过不断更新元素转载 2017-03-07 09:04:39 · 204 阅读 · 0 评论 -
nginx主要指令
1.进入nignx目录,敲出cmd 2.启动: start nginx或者直接执行nginx.exe 关闭: nginx -s quit , nginx -s stop 或者 taskkill /f /im nginx.exe>nul 刷新配置: nginx -s reload 查看进程: tasklist /fi “imagename eq nginx.exe”原创 2017-03-07 09:03:27 · 210 阅读 · 0 评论 -
出现滚动条之后如何修复内部DOM宽度
使用脚本设置宽度:$(".contentDiv",self.content).css("width", $(self.grid).css("width"));//将内部宽度设置为外部相等的宽度原创 2017-03-06 09:24:50 · 519 阅读 · 0 评论 -
r.js的使用
1.r.js是requireJs的优化工具,能够合并压缩JS,优化CSS2.r.js只会合并将字符串数组直接传入到require或者define的模块。如果像下面这种就不行: var mods = someCondition ? [‘a’, ‘b’] : [‘c’, ‘d’]; require(mods); 3.可以通过node 或者 java with Rhino or Na原创 2017-03-06 09:23:18 · 4134 阅读 · 0 评论 -
js中的hasOwnProperty和isPrototypeOf方法使用实例
hasOwnProperty:是用来判断一个对象是否有你给出名称的属性或对象。不过需要注意的是,此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个成员。 isPrototypeOf:是用来判断要检查其原型链的对象是否存在于指定对象实例中,是则返回true,否则返回false。原创 2017-03-06 09:22:37 · 606 阅读 · 0 评论 -
JS function length的含义
对function 使用时,length表示参数的长度。如: function a(){ return “”; } a.length; //output 0;function a(b,c){ return “”; }a.length; //output 2;原创 2017-03-06 09:22:11 · 646 阅读 · 0 评论 -
IE矩阵滤镜Matrix旋转与缩放及结合transform的拓展
一、前面的点唠叨 IE浏览器下Matrix滤镜可以实现旋转效果早在去年1月份在“图片旋转效果的一些研究、jQuery插件及实例” 一文中就有过还算详细的介绍。//zxx:其中还提及BasicImage滤镜-亦可旋转与翻转 这里之所以要重新嚼以前嚼过的烂叶子是因为我之前以为IE Matrix矩阵滤镜只能实现元素的旋转与拉伸,但是就在前几天发现Matrix滤镜还有元素比例缩放的功能,类似于zoom属转载 2017-03-06 09:19:08 · 675 阅读 · 0 评论 -
Javascript静态变量与实例变量
严格的来讲,js里面并没有静态与私有的概念,所有成员属性都是公开的,下面只是参考OO语言,通过某种方式来实现类似的概念。 一。静态变量 1.私有静态变量 所有实例共享。因为是私有的变量,所以不能通过函数名直接访问。通过闭包来实现。 根据闭包的作用域原理,只能在闭包内部访问。所以,并不是类的任何地方都可以访问这个静态变量。只有类的构造函数或者方法(原型方法)转载 2017-03-06 09:18:04 · 9903 阅读 · 0 评论 -
prototype定义方法和this定义方法的区别
如果要直接访问私有字段,应该使用特权方法,也就是 this定义的方法,应该定义在构造函数内部。相反,如果不需要直接访问私有字段,应该使用 prototype定义的方法,而且应该定义在构造函数外部。原创 2017-03-06 09:15:09 · 869 阅读 · 0 评论 -
操作dom中属性
当dom增加或修改内置属性(比如div中的className,input中的type,name等),使用‘.’来获取属性或赋值修改,区分大小写。 当dom增加或修改自定义属性时,使用setAttribute(key,value)来设置自定义属性,使用getAttribute获取属性,不区分大小写。原创 2017-03-06 09:13:40 · 259 阅读 · 0 评论 -
对象和数组的复制
对象复制(兼容数组) function clone(obj){ if( null=== obj){ return obj; }else if('object' === $.type(obj)){ var newObj = {};原创 2017-03-06 09:12:15 · 216 阅读 · 0 评论 -
当hover结束之后获取鼠标上的节点
if(event.type == "mouseenter"){ $(sourceDiv).addClass('on'); relateDiv.addClass('on');}else if(event.type == "mouseleave"){ if(event.relatedTarget!=null原创 2017-03-06 09:10:34 · 537 阅读 · 0 评论 -
jsonp
跨域实现的两种方式 一、通过src=”http://romateServer.com/api?callback=callbackHandler” 回调成功后,在浏览器端实现callbackHandler方法,返回值在callbackHandler参数中 批注:既然如此,所有src都可以实现跨域。比如图片src等。具体实现是将该内容动态的插入到DOM中。 二、通过jQuery的ajax参数转载 2017-03-06 09:26:12 · 1347 阅读 · 0 评论 -
firefox、Opera不支持backgroundPosition拆分为backgroundPositionX和backgroundPositionY
firefox、Opera不支持backgroundPosition拆分为backgroundPositionX和backgroundPositionY,CSS和JS中都不允许拆分 CSS: 比如现在是:background-position-x :20px;background-position-y :30px;需要改成background-position:20px 30px;JS 现在原创 2017-03-06 09:27:07 · 477 阅读 · 0 评论 -
Blob对象
[JS进阶] JS 之Blob 对象类型什么是Blob? Blob 是什么? 这里说的是一种Javascript的对象类型。 oracle 中也有类似的栏位类型。 在 [JS进阶] HTML5 之文件操作(file) 这一篇中用到了File对象,而实际上 file 对象只是 blob 对象的一个更具体的版本,blob 存储着大量的二进制数据,并且 blob 的 size 和 type 属原创 2017-03-07 09:02:59 · 859 阅读 · 0 评论 -
闭包分析
引用关系如图: 这样在执行完var c=a()后,变量c实际上是指向了函数b,再执行c()后就会弹出一个窗口显示i的值(第一次为1)。这段代码其实就创建了一个闭包,为什么?因为函数a外的变量c引用了函数a内的函数b,就是说: 当函数a的内部函数b被函数a外的一个变量引用的时候,就创建了一个闭包。 让我们说的更透彻一些。所谓“闭包”,就是在构造函数体内定义另外的函数作为目标对象的方法函数,而转载 2017-03-07 08:59:28 · 228 阅读 · 0 评论 -
JS严格模式的限制
1.禁止不标准的全局变量(未使用var) 2.禁止使用with语句 3.禁止使用eval 4.禁止this关键字指向全局对象 5.禁止在函数内部遍历调用栈 6.禁止删除变量 7.对象不能有重命名属性 8.函数不能有重命名参数 9.禁止八进制表示法 10.不能对arguments赋值 11.arguments不再追踪参数的变化 12.禁止使用arguments.callee 1原创 2017-03-07 08:58:07 · 800 阅读 · 0 评论 -
js获取鼠标位置的各种方法
在一些DOM操作中我们经常会跟元素的位置打交道,鼠标交互式一个经常用到的方面,令人失望的是不同的浏览器下会有不同的结果甚至是有的浏览器下没结果,这篇文章就上鼠标点击位置坐标获取做一些简单的总结,没特殊声明代码在IE8,FireFox,Chrome下进行测试兼容(1)相对于屏幕 如果是涉及到鼠标点击确定位置相对比较简单,获取到鼠标点击事件后,事件screenX,screenY获取的是点击位置相对于屏转载 2017-03-07 08:57:21 · 758 阅读 · 0 评论