- 博客(35)
- 收藏
- 关注
原创 一些很少用到的js
oninput,onpropertychange,onchange的用法 onchange触发事件必须满足两个条件: a)当前对象属性改变,并且是由键盘或鼠标事件激发的(脚本触发无效) b)当前对象失去焦点(onblur); onpropertychange的话,只要当前对象属性发生改变,都会触发事件,但是它是IE专属的; oninput是onpropertychange的非IE浏览器版本
2016-02-05 16:14:02
496
原创 nodejs学习笔记
module.exports 可以赋值任何形式 module.exports = {hello:hello} module.exports.hello = hello module.exports = function(){} exports 只能赋值键值 exports只能以.的形式来赋值 exports.hello = hello 注:因为默认情况下module.ex
2016-02-05 16:07:33
497
原创 git学习笔记
git init 创建一个版本库 git add xxx 添加文件修改到暂存区 git commit -m xxx 把暂存区的修改提交到分支 git checkout -b xxx 创建并切换到 xxx分支 git checkout xxx 切换到xxx分支 git checkout – readme.txt 一种是readme.txt自修改后还没有被放到暂存区,现在,
2016-02-05 16:06:17
282
原创 js兼容性
var mousewheelevt = (/Firefox/i.test(navigator.userAgent)) ? "DOMMouseScroll" : "mousewheel"FF:event.detail 向下:-120 向上:120其他:event.wheelDelta 向下:3 向上:-3在 IE8- 下,Element 对象被 removeChild
2016-01-20 18:29:51
337
原创 angular发送multipart/form-data文件的方法
var fd = new FormData();fd.append('file',fileInput.files[0]);$http.post("service/...",fd, { transformRequest: angular.identity, headers: {'Content-Type': undefined}
2015-12-15 16:17:41
1888
原创 HTML5之应用缓存
html书写:<html manifest="demo.appcache"></html>cache文件的扩展名是”.appcache”; manifest文件必须设置正确的MIME-type为text/cache-manifest//服务器端设置manifest文件是简单的文本文件,告知浏览器被缓存的内容 CACHE MANIFEST 此标题下列出的文件将在首次下载后进行缓存 NETWORK
2015-11-21 23:09:25
372
原创 3种盒内元素两端对齐方案
ul { list-style: none; padding-left: 0; width:490px; overflow:hidden; background-color: #eee;}li { float:left; width:100px; height:50px; margin-left:30px; margin-bottom:10px;
2015-11-17 22:45:46
1080
原创 url解析函数
function parseURL(url){ var a = document.createElement("a"); a.href = url; return { source:url, protocol:a.protocol.replace(":",""), host:a.h
2015-11-17 22:42:41
476
原创 seajs模块加载
在使用seajs加载模块时,对模块中依赖的模块都要加载一次才能使用,比如用jquery写代码,在每个模块中都需要require一次,像jquery这种全局都需要用到的模块,可以在config中设置preload,保证事先准备好jquery
2015-11-16 22:12:06
380
原创 HTML5之drag
源元素事件 – dragstart drag dragend event.dataTransfer.setData("type","值") dataTransfer是存储要传给目标元素的数据的对象,通过event获取该对象目标元素事件 dragenterdragover // 在该事件中需要阻止事件的默认行为 e.preventDefault();才能触发drop事件d
2015-11-15 17:40:04
349
原创 HTML5之storage
storage包括:localStorage、sessionStorage; 这两个对象直接使用就是,无需创建API:localStorage.setItem("键","值")localStorage.getItem("key");localStorage.removeItem("key");localStorage.clear()//清空localStorage.lengthlocal
2015-11-15 17:35:22
274
原创 HTML5之worker
worker是允许多线程执行的 可用 typeof(Worker)!==undefined检查浏览器是否支持worker创建worker对象——相当于执行worker文件var worker = new Worker("文件地址");//worker文件内 用postMessage(数据)返回数据//设置回调函数处理返回的数据worker.onmessage = function(message
2015-11-15 17:29:30
317
原创 http缓存
浏览器第一次接收响应时:缓存文件 //响应头包括文件的过期时间(cache-controll\Expire)、文件的最后修改时间(last-modified)和根据文件内容生成的ETag;以后请求: 1检查cache-controll(http1.1/优先级更高)或Expire(http1.0)确定缓存是否过期. 没过期:继续使用缓存的文件
2015-11-15 17:21:23
283
原创 js执行上下文
变量作用域 是程序源代码中定义这个变量的区域作用域链 是存储当前作用域可访问的变量的栈三种代码运行环境:global function eval执行环境 =》 变量对象 作用域链 thisAO/VO =》 变量 函数声明 函数形参函数被调用时 1.创建阶段(函数被调用,但还没开始执行函数代码) (1)会创建作用域链
2015-11-12 21:48:52
460
原创 面试题
var length = 10function fn(){ alert(this.length)}var obj = { length: 5, method: function(fn) { fn() // 10 this指向window arguments[0]() // 1 arguments是一个对象,arguments也有自己的作
2015-11-11 22:25:42
261
原创 网页设计注意事项(总结)
1.首先要吸引眼球,让来访者产生兴趣;所以第一屏一定要吸引眼球;吸引眼球的就是主题,要突出主题,可以用用色彩来衬托; 2.若第一屏颜色单调,内容也简单,内容可以加个通道,导航条颜色可以深一些; 3.要有醒目的通道,通向自己的产品或服务,这样方便产生兴趣的来访者迅速找到目标; 4.首页的信息量不要太大,首页只是让来访者产生兴趣;通到才是指向信息; 5.网站要专业,目标客户要明确,风格要适合目标
2015-11-11 22:22:00
634
原创 ES6定义函数的新方法(generator和箭头函数)
generator函数; 定义 function* foo(){ .... yield x1; .... yield x2; ........ return xn; }调用 var f=foo(); f.next() //x1,false f.n
2015-11-11 22:20:45
1463
原创 ajax知识点
XHR readyState:0:unset(未发送)1:(已创建请求消息)2:(已接受到响应消息的头部) 3:(XHR正在加载响应消息的主体数据)4:(XHR已收完毕响应消息)AJAX实现的效果: 1.客户端和服务器端异步运行 2.客户端页面的局部刷新 3.动态页面静态化7种请求方法: GET HEAD POST PUT TRACE OPTIONS DELETE 只有post put请求
2015-11-11 22:15:58
361
原创 检查数组的方法
instanceofarr instanceof ArrayisPrototypeOfArray.prototype.isPrototypeOf(arr);Object.prototype.toString.call();Object.prototype.toString.call(arr)constructor;arr.constructor === ArrayArray.isArrayArray
2015-11-11 22:14:21
351
原创 flex
flex-direction:row 子元素要设置width或flex;若只设width未设flex,父元素宽度不够,且默认不换行,则子元素按比例显示,子元素只被调整宽度,未设高度则填充; flex-direction:column 同样 flex优先级高于width\height若flex-direction:column align-items:center 才能实现左右居中 若要
2015-11-11 22:02:04
476
原创 Angular知识点
1.不要复用controller,一个controller负责一小块 2.controller里不要操作DOM,DOM操作要用directive(操作view), 3.不要在controller里做数据格式化,ng有更好的表单控件 4.不要在controller里做数据过滤操作,ng有$filter服务 5.controller不会相互调用,控制器的交互通过事件进行特征 1.采用MVC模型
2015-11-11 21:59:18
504
原创 单例模式
单例模式:一个构造函数只有一个实例,可通过构造函数内部判断的方式来实现 使用数据缓存来存储该单例,用作判断单例是否已经生成,是单例模式主要的实现思路。function Construct(){ if(Construct.unique!==undefined){ return Construct.unique; } this.xxx=xxx; Cons
2015-11-11 21:06:20
263
原创 移动端学习笔记
click事件延迟300ms 来判断单击还是双击touchstart和touchend的位置相同,时间间隔较短没有触发touchmove事件,则可认为触发了手持设备上的click事件,一般称它为tap (如zepto库)tap事件比click事件更快BUG:1.tap点透bug//若点击上面一层消失,因为上面一层消失,300ms后下面的元素接受了事件解决方案:1.加入缓动动画,上
2015-11-11 21:01:27
327
原创 angularjs嵌套作用域问题
<!DOCTYPE html><html><head> <title></title> <meta charset="utf-8"> <script src="angular.js"></script></head><body ng-app="todo"> <div ng-controller="ctrl1"> <input type="tex
2015-11-01 23:49:11
933
原创 ajax跨域
跨域:1.协议不同2.主域名不同3.子域名不同4.端口号不同处理跨域的方法1.在同域名的web服务器端创建一个代理。2.jsonp(只支持GET方法)。3.XHR2:header("Access-Control-Allow-Origin:*(允许的域名,*表示全部)");header("Access-Control-AllowMethod:POST,GET");
2015-10-25 23:39:20
272
转载 关于内存泄漏
var theThing = null; var replaceThing = function(){ var priorThing = theThing; var unused = function(){ if(priorThing){ console.log("
2015-10-10 19:26:54
776
原创 DOM一些知识点
window对象有innerWidth和innerHeight属性,可以获取浏览器窗口的内部宽度和高度。内部宽高是指除去菜单栏、工具栏、边框等占位元素后,用于显示网页的净宽高。innerHTML不止修改文本,还可修改插入节点,可以以字符串的方式插入,也可一文档片段的方式插入 createDocumentFragment()第二种是修改innerText或textContent属性,这样可以自动对字
2015-09-30 19:01:37
329
原创 函数多层执行
function jisuan(){ var args = arguments; var sum = 0; var i = 0; var getSum = function(){ sum += args[i]; i++; if(i<args.length){ s
2015-09-30 19:00:14
392
原创 闭包
闭包 在定义函数时就创建了一个作用域链并保存在函数的scope属性中,当调用函数时,会为函数创建一个执行环境,并通过复制scope属性中的对象(变量对象)构建起执行环境的作用域链,并创建该函数的活动对象(可做变量对象)放入作用域链的前端,因此更内层的函数的作用域链会被重新定义,而闭包则是内层函数被更外部的变量对象引用,而内层函数又引用了定义它的环境的活动对象function getCounter(
2015-09-30 18:56:29
301
原创 js学习注意知识
通过构造函数创建对象,在构造函数内部先创造一个空对象,再通过传入的参数赋值,这个对象的原型会指向函数的prototype属性。最后把这个函数内部的对象返回给要实例化的对象。‘=’赋值操作仅仅赋的是指针,如 a.prototype = b.prototype ,它们指向的是同一个对象,当改变a.prototype的属性的时候b.prototype的属性也会跟着改变。但当a.prototype = {
2015-09-30 18:54:55
300
原创 js函数对象的总结
修改用字面量创建的对象的原型的方法; var a = Object.create({a:1}); a.a //1var p = Object.getPrototypeOf(a); p.a = 2; //2 a.a //2var man = { name:"bosn", weibo:"@bosn", $age:null, get age(
2015-09-30 18:52:40
349
翻译 基本的模块写法
基本的模块写法var module1 = (function(){ var _count = 0; var m1 = function(){ //... }; var m2 = function(){ //... }; return { m1 : m1, m2 : m2 }; })();添加方
2015-09-30 18:40:05
305
原创 对象的一些API
对象的一些API Object.getPrototypeOf(obj); 函数的原型把obj换为 函数名.prototype; Object.create(obj);创建一个空对象并把空对象的原型指向obj; Object.getOwnPropertyDescriptor(obj,”属性名”) 返回一个新对象与原来的属性标签没有了联系; Object.getOwnPropertyNames
2015-09-30 18:35:38
394
原创 原型关系
原型关系function a(){};a.__proto__ ——>Function.prototype——>Object.prototypea.prototype ={ constructor:a; __proto__:Object.prototype; }var b = new a()b ={ __proto__:a.prototype;}v
2015-09-30 18:30:08
340
原创 20150927js学习回顾
通过childNodes类型的方式查找的节点是NodeList类型;childNodes children 查找到的都是直接子节点通过getElementsByTagName类型的方式查找的是HTMLCollection类型; 二者都是动态集合给未声明的变量赋值不会出错,但取值会出错,给未声明的变量的下级赋值会出错,访问数组的未赋值的下标不会出错,访问数组的
2015-09-27 18:13:10
339
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人