javascript
文章平均质量分 59
VictorIsildur
首先是程序员,其次是前端
展开
-
javascript学习,1st day after Z-day
js创建新对象:function person(firstname,lastname,age,eyecolor){this.firstname=firstname;this.lastname=lastname;this.age=age;this.eyecolor=eyecolor;}myFather=new person("Bill","Gates",56,"b原创 2013-10-30 21:29:34 · 442 阅读 · 0 评论 -
非常简单的js双向数据绑定框架(三):js model黑科技
初衷之前我们要在js域更新model,需要这样:model.set('name', 'sub');这实在太土了。。。 我们希望像angularjs一样,直接:$scope.name = 'sub';然后bong, 视图就会更新!这样的黑科技必定是极好的。目标完成model更新黑科技200行以内完成实现今次主要借鉴avalon“劫持”setter,getter的方法,链接:avalon简化版解原创 2015-06-11 10:52:45 · 14742 阅读 · 0 评论 -
非常简单的js双向绑定框架(二):控制器继承
初衷上一篇已经实现了数据的双向绑定,但model的控制范围是整个文档,在实际工程中必须要有作用范围,以便做ui模块的拆分。 这一篇,我们希望实现像angularjs一样的控制器继承: 1. 父controller的Model可以在子controller里被访问到 2. 子controller的model不影响父controller 3. controller继承关系在html中指定,而不是j原创 2015-06-09 20:21:21 · 2837 阅读 · 0 评论 -
非常简单的js双向绑定框架(一)
初衷搞了近5个月的angularjs项目,用起来非常顺手。最爽的是两个功能: 1. 控制器的继承特性 2. 数据的双向绑定 3. 表达式控制显示与否 前者减少了很多model的重复声明,赋值。后者大大简化了动态编辑,动态显示。比如我的表格需要根据某一列排序,我只用改动数据模型的顺序,视图会自动更新。 但是,作为“Get your hands dirty”的小项目,用脏值检测和dom树编译太原创 2015-06-09 09:25:45 · 11601 阅读 · 1 评论 -
javascript scope chain
scope chain一个函数有一个scope chain 函数每调用一次,该函数的scope上创建一个对象,函数的局部变量被当做属性赋值给这个新对象。 所以对嵌套函数function A() { var a = 'A'; function B() { var b = 'B' } function C() { var c = 'C'原创 2015-05-23 17:15:34 · 849 阅读 · 0 评论 -
javascript原型链与原型继承
引子var Model = function() { prototype: { init: function() {} }, create: function() { var object = Object.create(this); object.prototype = Object.create(this.prototype原创 2015-05-09 15:19:47 · 470 阅读 · 0 评论 -
javascript 基础
严格模式好处消除语法模糊,避免一些安全问题 提高编译、运行速度区别不支持全局变量的隐式声明不支持对象的重名属性不支持argument.callee变量标示符字符,_,$开头除了开头,允许数字内置类型引用类型:Object 原始类型:Null, Undefined, Boolean, Number, String 类型识别typeof识别除null外的标准类型Object.prot原创 2015-05-29 17:40:08 · 404 阅读 · 0 评论 -
javascript正则表达式
引子遇到的问题:// 希望字符串格式:"io":1 , "cpu":2 , "mem":3 ,// 可接受的字符串格式:"io":1 , "cpu":2 , "mem":3我们希望检测到第二种格式,然后偷偷的在最后加一个逗号就好。 我的代码:var vrRegx = /^("[a-zA-Z0-9]+":[0-9]+,)+(\s*"[a-zA-Z0-9_\-+]+"\s*:\s*[0-9]+\原创 2015-04-09 17:32:17 · 423 阅读 · 0 评论 -
javascript 表格非空判断
引子jquery自带的<input required>非常好用,但是只能在一个form里做非空校验如果我们想用js对任何元素及其子元素做非空校验,该怎么办呢?attr我们借鉴required方式,给我们想要非空的元素加<element i-require>然后用jquery的attr方法判断即可!$(element).attr('i-require') !== undefined深度优先遍历算法va原创 2015-04-16 14:28:27 · 2235 阅读 · 0 评论 -
angularjs源码阅读
compile到底干了些什么?书上是怎么写的$compile指令会遍历dom树并搜集它找到的所有指令,然后将这些指令的链接函数合并为单一的链接函数。 然后这个链接函数会将 编译好的模板 链接到$rootScope中去function compile($compileNodes,transcludeFn,...){ //$compileNodes是JQuery的Node对象Array原创 2015-04-01 17:28:54 · 898 阅读 · 0 评论 -
javascript学习,2nd day after Z-day
jQuery选取对象操作:$(this) //当前对象$("#this") // id = this$("p") // $(".test") // class = "test"原创 2013-10-31 20:40:07 · 683 阅读 · 0 评论 -
javascript学习,3rd day after Z-day
jQuery效果: slideToggle(speed, callback) //上下滑动方法,callback为滑动完成后所执行的函数名称,speed单位为msdiv.animate({height:'300px',opacity:'0.4'},slow)div.animate();div.animate();//内部动画队列,逐一执行$(selector).st原创 2013-11-01 11:48:11 · 587 阅读 · 0 评论 -
angularjs $evalAsync()实现原理
《angularjs权威教程》是怎么说的angular扩展了 addEventListener的流程angular事件循环通常称为$digest循环$digest循环分两步:$watch列表,$evalAsync列表 一个用作ui的$scope属性,向$watch列表增加一个函数$watch列表会在$digest循环中被“脏值检查”解析脏值检查维护一个旧值一个新值一个isDirty就好原创 2015-03-24 22:49:25 · 6870 阅读 · 0 评论 -
为什么要用AMD规范以及怎么用
为什么要用AMD规范我们必须自己清楚js文件的加载顺序必须依靠全局变量使用依赖,强烈的全局污染!同步有性能问题,我们希望依赖一旦load, 代码立即执行我们希望有类似#include,因为我们希望js代码能不写成一坨,同时还能少http请求几次一旦模块化,我们可以容易的mock一些模块,方便测试怎么用define( //The name of this module "t原创 2015-04-02 15:20:03 · 2488 阅读 · 0 评论 -
简单的js模板引擎
模板引擎初探最简单:定义<%data%>做模板关键字,引擎一遇到关键字就进行文本替换。替换的值来自引擎的data参数var templateEngine = function( tpl , data ) { var re = /<%([^%<>]+)%>/g; while (match = re.exec(tpl)) { console.log( match );原创 2015-03-21 16:28:29 · 1974 阅读 · 1 评论 -
javascript事件,自定义事件,基于自定义事件的解耦
事件代理this是什么?this在事件代理中是"父节点",也就是为了省事,往上层绑定的节点。和addEventListener中不同哦!addEventListener中的this就是发生事件的节点。这也会造成一些callback函数作用域不符合预期的情况![event listener scope](http://jsbin.com/atoluy/1/embed?html,js,output)原创 2015-03-20 21:20:31 · 1122 阅读 · 0 评论 -
前端面试题
facebook图形题题目描述define([ 'jquery', 'underscore'], 关键是用栈原创 2015-03-22 20:04:06 · 700 阅读 · 0 评论 -
nodejs使用中遇到的问题
XMLHttpRequest.send(JSON.stringify(obj))时, 需要设置Content-Type = application/json,否则req.body为空XMLHttpRequest.setRequestHeader必须在request open后再设置Express()生成的app, 可以用use(router),也可以直接app.post, app.delete原创 2015-07-06 19:32:35 · 1986 阅读 · 0 评论