- 博客(16)
- 资源 (1)
- 收藏
- 关注
原创 第四十六课:MVC和MVVM的开发区别
实现MVC的目的就是为了让M和V相分离。前端的MVC无法做到View和Model的相分离,而MVVM可以。我们先来看一个用MVC模式开发的经典例子:(一定要深入了解这种开发的思想,而不是看懂代码)$(function(){ //基本的Todo模型, var Todo = Backbone.Model.extend({ // 设置模型的默认属性 defaults:...
2018-05-07 11:14:11
203
原创 第十三课:js操作节点的创建
浏览器提供了多种方法创建节点。比如:document.createElement,innerHTML,insertAdjacentHTML,createContextualFragment。document.createElement方法传入一个标签名,返回此类型的元素节点,对于浏览器不支持的标签类型,它也能成功返回。在IE6-IE8中,它允许用户连同属性一起生成,比如:documen...
2018-04-22 10:36:43
203
原创 第十二课:Sizzle引擎详解
Sizzle引擎是jQuery的选择器,它大部分操作都是从右到左进行选择,特殊选择符会从左到右。用户输入("div"),("div"),("div"),(“div p.class”),$(“div [attr=val] :checked”)等各种复杂的选择符,它都能选择到用户想要取到的元素节点。Sizzle的整体结构如下:(1)Sizzle主函数,里面包含选择符的切割,内部循环调用主查找函...
2018-04-22 10:24:12
326
原创 第十一课:js操作选择器的通用函数
1.判断文档是否是XML文档var isXML = function(elem){ var documentElement = elem && (elem.ownerDocument || elem).documentElement; return documentElement ? documentElement.nodeName !==”HTML” : fa...
2018-04-22 09:15:18
288
原创 第十课:CSS选择器的介绍和区分
IE7以及以下版本:getElementById是不区分表单元素ID与Name的,因此如果有一个表单元素只定义name,并与我们的目标元素ID同名,并且我们的目标元素在它的后面,那么就会选择到那个表单元素。所以一般在定义表单元素时,都会定义跟name一样的id,就是以防其他元素的id跟表单元素的name一样(文档中的id都是唯一的)。getElementsByTagName,当参数为”*”...
2018-04-18 16:17:24
505
原创 第九课:js的类与继承
有关js的构造函数,继承的方法大家可以去看js的高级程序设计function A(){}A.prototype = { aa:1 }var a = new A();A.prototype = { aa:2 }console.log( a.aa ) 大家会认为,会打印出2.因为构造函数A的原型改变了,当访问实例对象时,如果实例对象没有的属性,就去...
2018-04-18 16:13:50
180
原创 第八课:日期的扩展与修复
Date的构造分为四种:new Date()new Date(value) //传入毫秒数new Date(dateString) new Date(year,month,day hour,minute , second, millisecond) //day后面的hour… , 可选第三种可以传很多字符串格式,推荐使用”2007/08/12 12:34...
2018-04-16 10:06:58
154
原创 第七课:数值以及函数的扩展和修复
1.数值扩展和修复toFixed(num) 方法可把 Number 四舍五入为指定小数位数的数字。num必需,规定小数的位数,是 0 ~ 20 之间的值,包括 0 和 20,有些实现可以支持更大的数值范围。如果省略了该参数,将用 0 代替。返回 NumberObject 的字符串表示,不采用指数计数法,小数点后有固定的 num 位数字。如果必要,该数字会被舍入,也可以用 0 补足,以便它达到指...
2018-04-16 08:30:19
122
原创 Micro微分销_手机APP商城源码研发
本项目是关于 百雀羚 手机商城的 App 产品研发模块界面。 如果有需要的小伙伴可以 下载使用阅读 使用框架是 FaceStrap工作室 自主研发的FaceUI 前端框架 FaceCSS以下是购物车模块代码的JS 实现方式GE1C var q = “\u60a8\u786e\u5b9a\u8981\u628a\u6b64\u5e97\u6240\u6709\u7684...
2018-04-16 08:28:21
442
原创 第五课:字符串的扩展和修复
1.repeat方法:将一个字符串重复自身n次。比如:repeat(“chaojidan”,2) -> chaojidanchaojidan方法1:function repeat(str,n){ return Array.prototype.join.call({length:n+1},str); //在类数组{length:n+1}上下文下执行join方法,并传入s...
2018-04-13 09:15:42
235
原创 第六课:数组的扩展与修复
1.indexOf和lastIndexOf方法:因为IE7在数组对象上使用indexOf会报错,所以需要重写一个兼容性的。Array.prototype.lastIndexOf(item,index){ var n = this.length,i = (index==null||index>n-1)?n-1:index; if(i < 0) i = n+i; ...
2018-04-13 08:37:46
171
原创 第四课:seajs的模块编译_compile过程
seajs的模块编译_compile过程。a.js的编译Module.prototype._compile = function() { var module = this // 如果该模块已经编译过,则直接返回module.exports if (module.status === STATUS.COMPILED) { return m...
2018-04-12 10:13:25
158
原创 第三课:SEA.js模块加载设计原理
模块加载,其实就是把js分成很多个模块,便于开发和维护。因此加载很多js模块的时候,需要动态的加载,以便提高用户体验。在介绍模块加载库之前,先介绍一个方法。动态加载js方法:function loadJs(url , callback){ var node = document.createElement(“script”); node[window.addEventLis...
2018-04-12 09:29:44
170
原创 导言 教你写出优秀Javascript代码
今天我们来讲讲写好JS代码的几个要点 松耦合 当修改一个组件而不需要更改其他组件时,就做到了松耦合 1、将JS从CSS中抽离:不要使用CSS表达式 2、将CSS从JS中抽离:通过JS修改CSS样式时,使用className或classList,不要逐条修改style样式 3、将JS从HTML中抽离:从JS文件放入外置文件中 ...
2018-04-12 08:17:58
213
原创 第二课:判断JS变量的类型以及DOMREADY的原理
1.类型的判断: js五种简单数据类型有:null,undefined,boolean,number,string。 还有复杂的数据类型:Object,Function,RegExp,Date,自定义的对象,比如:Person等。 typeof一般用来判断boolean,number,string,instanceof一般用来判断对象类型。但它们都有缺陷。比如:firame里面的...
2018-04-11 15:08:42
228
原创 第一课:JS 命名空间的介绍、对象的扩展以及数组化
1.命名空间: js里面的命名空间就是使用对象的属性来扩展的。比如,用户定义一个A对象,A对象下面有B属性和C属性,同时B属性和C属性又是对象。因此A={B:{},C:{}},这时用户就可以在B对象和C对象中定义一样的方法,属性了。因此B和C就属于不同的命名空间。我们调用B,C对象里面的方法,就可以通过A.B.like(),A.C.like()调用了。当然A属于window对象中的属性。...
2018-04-11 12:00:17
195
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人