模块化开发在编程开发中是一个非常重要的概念,一个优秀的模块化项目的后期维护成本可以大大降低.本文主要介绍了JavaScript模块化开发的那些事,文中通过一个小故事比较直观地阐述了模块化开发的过程. 小A是某个创业团队的前端工程师,负责编写项目的Javascript程序. 全局变量冲突 根据自己的经验,小A先把一些常用的功能抽出来,写成函数放到一个公用文件base.js中: var _ = { $: function(id) { return document.getElementById(id…
某人提出 请教下谁能解释下这个值var name = "The Window";        var object = {            name: "My Object",            getName: function () {                return this.name;            }        }; alert((object.getName = object.getName)());--------T…
引言 JS是一门面向对象的语言,但是在JS中没有引入类的概念,之前特别疑惑在JS中继承的机制到底是怎样的,一直学了JS的继承这块后才恍然大悟,遂记之. 假如现在有一个“人类”的构造函数: function Human() { this.type = '人类'; } 还有一个“男人”的构造函数: function Man(name,age) { this.name = name; this.age = age; } 现在我们想实现的是,让这个“男人”继承“人类”. 借用构造函数 我们可以通过在子类…
今天是第一次写稿,还是有那么一丢丢小鸡冻...回归正题啦... 关于javaScript事件委托不得不说的那些事,为什么要使用事件委托? 我们可以这么说,假设老板要分配一项任务,首先要秘书叫A君来到办公室,任务分配结束后老板要秘书叫B君...以此类推.这样严重浪费了老板的时间,降低了工作效率.我们现在可以将这项任务委托秘书,由秘书统一分配给员工.这样工作效率明显提高了很多.由此我们引出了事件委托. 使用事件委托的原因:添加到页面上的事件处理程序数量直接关系到页面整体运行的性能. 函数对象占用内存…
第一:变量声明 在使用javascript时使用变量时首先做的是声明变量,变量声明的关键字是var. 例子: var i; var sum; 也可以多个变量声明: var i,sum; 还可以在声明时赋值. var i=0; 如果没有给var声明的变量指定初始值,那么在给其初始值之前这变量一直是undefined. javascript是动态语言在运行期间才会去做数据类型检查,所以不需要给变量指定数据类型,它会在第一次赋值时把数据类型记录下来. 而c和java不一样,它们是静态语言,需要先定义好…
鉴于自己在JavaScript这方面比较薄弱,所以就找了一本书恶补了一下(被称为犀利书的JavaScript权威指南).书的内容虽然多了点,但这也充分说明了js中的东西还是挺多的.虽然我们的定位不是前端,但最好还是了解一下js这个发展了将近20年但依然很火的技术. 两年前,写过一篇关于JavaScript闭包的博客,所以对闭包这个词印象很深,在看这书的时候,又看到了闭包,那么这次再看闭包,会有什么不同的理解呢? 大家都知道,在JavaScript中是没有类的概念的,更没有私有.公有的成员变量这样…
1.1.缩略标记 //定义对象 //var car = new Object(); //car.colour = 'red'; //car.wheels = 4; //car.hubcaps = 'spinning'; //car.age = 4; //上述代码的简洁写法: var car = { colour: 'red', wheels: , hubcaps: 'spinning', age: } //定义数组 var testArr = new Array('str1', 'str2',…
NaN表示一个不能产生正常结果的运算结果.它不等于任何值,包括它自己.可以用isNaN(number)来检测. 同Java中的字符串一样,JS中的字符串是不可变的.也就是说一旦字符串被创建,就无法改变.下标表达式(如s[3],代替s.charAt(3))可以读取字符,但是不能用于改变字符. null,undefined,空字符串'',0,NaN被当做false,其余的值(包括"false")或对象都被当做true.所谓的“被当做”并不是说这些值就是布尔值true,例如true==&qu…
鉴于自己在JavaScript这方面比較薄弱.所以就找了一本书恶补了一下(被称为犀利书的JavaScript权威指南).书的内容尽管多了点,但这也充分说明了js中的东西还是挺多的.尽管我们的定位不是前端.但不妨了解一下js这个发展了将近20年但依旧非常火的技术. 两年前,写过一篇关于JavaScript闭包的博客,所以对闭包这个词印象非常深,在看这书的时候.又看到了闭包,那么这次再看闭包.会有什么不同的理解呢? 大家都知道,在JavaScript中是没有类的概念的,更没有私有.公有的成员变量这种…
如果你对javascript的原型链还有任何疑问,请看这篇文章 进入主题 前言 原型链的规则不百分百适用于所有情况 显式原型:prototype,是一个对象{} 隐式原型:__proto__,是一个对象的属性 原型链规则 任何一个引用类型的对象都有一个__proto__属性指向它的构造函数的prototype(也就是构造函数的原型对象,注意原型对象是一个{}类型) 只有函数类型的对象才有prototype属性,该属性的属性值指向该函数的原型对象. 当对象上不存在要寻找的属性或方法时,js会顺着隐…
先准备几个变量 var a = "abcde."; var b = 222; var c= [1,2,3]; // 或者 new Array() var d = new Date(); var e = function(){alert(111);}; var f = function(){this.name="rrrr";}; var g ={ 'name':'rrrr'} 1. 通用型 Object.prototype.toString.call(obj)  ,…
说起面向对象,人们就会想到继承,常见的继承分为2种:接口继承和实现继承.接口继承只继承方法签名,实现继承则继承实际的方法. 由于函数没有签名,在ECMAScript中无法实现接口继承,只支持实现继承. 1. 原型链 1.1 原型链将作为实现继承的主要方法,基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法. 构造函数---原型---实例 之间的关系: 每一个构造函数都有一个原型对象,原型对象包含一个指向构造函数的指针,而实例都包含一个指向原型对象的内部指针. function Sup…
本文译自:Functional Programming for JavaScript People 和大多数人一样,我在几个月前听到了很多关于函数式编程的东西,不过并没有更深入的了解.于我而言,可能只是一个流行词罢了.从那时起,我开始更深地了解函数式编程并且我觉得应该为那些总能听到它但不知道究竟是什么的新人做一点事情. 谈及函数式编程,你可能会想到它们:Haskell 和 Lisp,以及很多关于哪个更好的讨论.尽管它们都是函数式语言,不过的确有很大的不同,可以说各有各的卖点.在文章的结尾处,我希…
JavaScript 简介 我们一起来聊一下 JavaScript,用它能做什么,它有哪些特性,以及一些跟它配合使用的技术. 什么是 JavaScript? JavaScript 最初的目的是为了"赋予网页生命". 这种编程语言我们称之为脚本.它们可以写在 HTML 中,在页面加载的时候会自动执行. 脚本作为纯文本存在和执行.它们不需要特殊的准备或编译即可运行. 这方面,JavaScript 和 Java 有很大的区别. 为什么叫 JavaScript? JavaScript 在刚诞生…
JavaScript基于原型的对象机制 JavaScript原型上的哪些事 一.JavaScript基于原型的对象机制 JavaScript对象是基于原型的面向对象机制.在一定程度上js基于原型的对象机制依然维持了类的基本特征:抽象.封装.继承.多态.面向类的设计模式:实例化.继承.多态,这些无法直接对应到JavaScript的对象机制.与强类型语言的类相对应的是JavaScript的原型,所以,只能是基于原型来模拟实现类的设计模式. 为了便于理解,这里采用了Function构造函数及对象原型链…
[JavaScript基础]Js的定时器(你想看的原理也在哟) 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 说明 本章是经历第二次翻新,时过一年,再看自己的文章,觉得需要做点什么,它得丰富一点!篇幅半页或者一页,自己都感觉有点对不住自己.为了对得住自己,加了原理解析和案例.知其然与所以然. Js的定时器,是前端的基本工具,在日常的开发和工作上也会经常的使用到.前端的定时器有两种,一种是一次性定时器,一种是重复性定时器.…
文章的开始先上张图: 图片拍摄自北京图书大厦,代表着现在国内应该是绝大部分书店的现状--Javascript书籍放在Java类当中.甚至很多业内人也一直认为Javascript是Java语言在浏览器内的实现.不过也可以理解,谁让Javascript起了这么一个名字呢~   今天咱们就来聊聊Javascript的历史~~~~ 一.起源--ScriptEase 故事的开端在1992年,当时,一个叫Nombas的公司开发了叫做C减减(C minusminus,Cmm)的嵌入式脚本语言,其目标在于带来一…
说明:此类博客来自以下链接,对原内容做了标注重点知识,此处仅供自己学习参考! 来源:https://wangdoc.com/javascript/basic/introduction.html 1.诞生 JavaScript 因为互联网而生,紧跟着浏览器的出现而问世.回顾它的历史,就要从浏览器的历史讲起. 1990年底,欧洲核能研究组织(CERN)科学家 Tim Berners-Lee,在全世界最大的电脑网络——互联网的基础上,发明了万维网(World Wide Web),从此可以在网上浏览网页…
每个行业,都有业内"行话",不了解这些行话的人,很难融入到行业中,也永远装不了逼. 从Curry到Closes,有很多JavaScript行话(该领域中使用的特殊词汇)知道这些行话不仅能帮助你增加词汇量,还能更好地理解JavaScript. 术语通常出现在文档和技术文章中.但是其中一些像Closes一样是非常标准的事情.了解这个词本身的含义可以帮助您更好地了解它所命名的概念. 今天我们来聊聊 10 个JavaScript术语及其含义和在 JavaScript中使用的上下文的汇编.如果您…
类型检查专注于解析值所具有的"形态",这是TypeScript的核心原则之一.这个有时候被称为"duck typing"或者"structural subtyping".在TypeScript中,Interface中写入这些类型的命名规范,并且也是一种强有力的方式来对你的代码或者项目的外部代码进行约束. 实现第一个接口 要看看interface怎么工作的最简单的方式就是我们来写一个例子: function printLabel(labelledO…
1. 第一个demo 2. configs详解——之成员 3. configs详解——之field 4. configs详解——之site, page和console 5. configs详解——之回调函数 6. 爬虫进阶开发——之内置函数 7. 爬虫进阶开发——之模板化 8. 爬虫进阶开发——之图片云托管 9. 爬虫进阶开发——之自动IP代理 10. 爬虫进阶开发——之验证码识别 11. 爬虫进阶开发——之自动JS渲染 12. 爬虫进阶开发——之技巧篇 13. 两个完整demo 14. 开发神…
前言 由于业务需要做成类似腾讯课堂课程详情滚动的效果,考虑到后面有可能有新的呈现方式,RN提供的组件没有这种滚动控件,不如自己封装,其实去年已经写了一篇但是写的比较乱,周末花了点时间重写梳理下做的东西. 项目地址 在这里,如果有好的意见欢迎提 issue或pr. 开始 我们先来看下,腾讯课堂视频播放详情页面是怎么样的? 咋一看界面感觉有点复杂,其实简化来说,这个界面可以看成tab组件+scroll组件.哲学上说,要抓好主要矛盾与次要矛盾,这个问题的主要矛盾是scroll组件实现,也就是最外层的R…
time: 2016-03-30 20:00 这个月有点忙,学业的事工作的事私人的事有点烦,但是不能停止学习更不能忘记写博客! 最近看了<精通css>这本书,挑了一个点纪录一下. 一.含义     图像替代,就是像我们在平时将文本添加到文本中,然后通过css隐藏文本在它的位置上显示一个背景图片,这样,搜索引擎仍然可以搜到HTML文本,即使我们禁用css后,文本时仍然是可以显示的. 引用<精通css>中的一段解释: HTML文本由很多的优点.文本可以被搜索引擎读取,开发人员可以对其进…
JS 各种引擎介绍 http://www.oschina.net/project/tag/296/javascript-engine 不同浏览器有不同的JS引擎: WebKit , Safari浏览器          ->SquirrelFish Extreme, Firefox                                    àTraceMonkey引擎 Google Chrome                     àV8引擎,(C++) Opera       …
前言与铺垫 当我刚读研一的时候,对自己的未来还是非常迷茫的.尽管我读的是数字媒体技术专业,但是我对这一行根本就不感兴趣,对于平面设计.三维建模以及游戏引擎的使用这一类知识根本就不会,也不太想学(由于我的导师是这个领域的,因此我必须得学一些,毕业设计也得做这个方向的).当时我的初步想法是学好C/C++语言,毕业之后做一个C程序员,如果学得好的话,也许会去应聘游戏公司,做一名游戏引擎开发工程师.尽管当时我是这么想的,但也没有付出实际行动,因为总感觉自己不是编程的料,没那个脑子.加上我的本科还是学营销…
你知道 ES6~ES12等叫法是怎么来的吗? 前言 作为一名前端开发,学习 JavaScript 自是天经地义的事,但是,JavaScript 的发展历史是怎样的,恐怕有相当一部分人都不太了解. 我们常常听别人说并且自己也会说 ES6.ES7--ES12,那么,这些叫法到底是怎么来的? 今天,我们就来总结一下这些有关 JavaScript 的发展历程. 通过阅读本文,你将了解以下知识: ECMA 是什么 ECMAScript 是什么 JavaScript 的由来 ES5 ~ ES12 的意义 关…
本文翻译自WebRTC data channels 在两个浏览器中,为聊天.游戏.或是文件传输等需求发送信息是十分复杂的.通常情况下,我们需要建立一台服务器来转发数据,当然规模比较大的情况下,会扩展成多个数据中心.这种情况下很容易出现很高的延迟,同时难以保证数据的私密性. 这些问题可以通过WebRTC提供的RTCDataChannel API来解决,他能直接在点对点之间传输数据.这篇文章将介绍如何创建并使用数据通道,并提供了一些网络上常见的用例 为了充分理解这篇文章,你可能需要去了解一些RTCP…
前言 点保存时候不注意发出来了,有需要的朋友将就看吧,还在更新...... 几个月前学习了一下backbone,这段时间也用了下,感觉之前对backbone的学习很是基础,前几天有个园友问我如何将路由的#改为其他 我其实想说这个不能乱改,又怕不熟悉误人子弟,所以今天我们来一起重新学习下他,看看会不会带来不一样的感觉 我在博客园nuysoft的博客看到了backbone的分析,可惜没有写完,不失为一个遗憾,希望作者坚持下去,水平高得贡献出来哟(@nuysoft) 然后,网上backbone基础用法…
No Bug 031402401鲍亮 031402402曹鑫杰 031402403常松 031402412林淋 031402418汪培侨 031402426许秋鑫 设想和目标 1.我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 为了解决人们需要找人一起团购,缺乏拼单伙伴的这一痛点. 定义得很清楚. 是的,我们专门拍摄了视频描述用户场景:点击链接 2.是否有充足的时间来做计划? 有,但是由于经验不足,还是不能做出很好的安排. 3.团队在计划阶段是如何解决同事们对…
很多人表面上看着老实巴交的,实际上内心比谁都好强.自负.虚荣.甚至阴险.工作中见的多了,也就习惯了. 有一些人,什么事都写在脸上,表面上经常得罪人,甚至让人讨厌.但是他们所表现的又未必不是真性情. 我相信大多数人都看过<豪门夜宴>这部香港老电影.张学友.梁朝伟演的拍马屁的场景太有意思了,其中有这样一段:当两马屁精帮老板说出主意,老板马上叫停,然后拍一下脑门:“哦...我想到了...”,把别人的idea当成自己的说出来.我在工作中还真不止一次遇到这种事,我提出来的想法老被别人拿来当作自己的原创,…