本章介绍正则表达式的内容.正则表达式是一门独立的语言,它拥有自己的语法规则,在学习本章之前需要了解基本的语法规则. 正则表达式是通用的,意味着同样的语法规则可以适用于不同的编程语言,相同的正则表达式在Java,JS编程语言中功能是相同的. 正则表达式是复杂的,复杂性并不来源于它的语法,而是来源于看待字符串的方式.它将字符串分为若干部分,每个部分都匹配对应的规则.若可以将整个正则表达式拆分为若干部分,并逐个的进行分析,那么正则理解起来会非常简单.所以个人建议在初期时将每个部分用括号包裹起来,之后再…
本书是一本经典,优秀的JS书籍. 目的 在书籍中作者多次提及本书的目的,让读者去发现语言中的精华部分,避免糟粕部分,提高代码的编写质量.简述为取其精华去其糟粕. 本书的内容只涉及到Core JS部分,对Client JS与Server JS没有提及,而且是基于ES5标准,所以ES6的新特性需要阅读其他书籍,个人推荐<Exploring ES6>. 同类型书籍 同类型书籍很多,最经典的有<JS权威指南第五版>,MDN web docs官网,它的地址是https://developer…
第九章节 本章节不再介绍知识点,而是作者在提倡大家培养良好的编码习惯,使用Good parts of JS,避免Bad parts of JS.它是一篇文章. 本文的1-3段阐述应用在开发过程中总会遇到需求更新,BUG的修改,代码的维护等.而在这些过程中保持代码没有任何错误是一个非常挑战性的工作,所以在日常开发时必须严格要求自己,编写阅读性较高,可维护较高的代码,使用”strict”模式编写JS代码. 本文的4-8段阐述style在开发过程中的作用性,优秀的编码风格会导致代码更容易阅读,也更容易…
本章是引言,有四个小节,具体内容如下: 第一小节 第一小节介绍作者的观点,作者编写本书的目的. 原文:I discovered that I could be a better programmer by using only the good part And avoiding the bad part.(简述为取其精华去其糟粕) 原文:My Intention here is to expose the goodness in javascript, an outstanding,Dynam…
本章介绍Function对象,它是JS语言最复杂的内容. Java语言中没有Function对象,而是普通的方法,它的概念也比较简单,包含方法的重载,重写,方法签名,形参,实参等. JS语言中的Function对象,它扮演了很多的角色,而且这些角色并不是互斥的. 当Function角色为普通方法时,它包括参数,上下文,返回值,异常处理等内容.是Function的基础. 当Function角色为构造器时,需要深入理解原型链的概念,这是实现继承的基石. 当Function角色为命名空间时,需要深入理…
本章题目是继承,实质上介绍JS如何实现面向对象的三大特性,封装,继承,多态.本章的最后一个小节介绍事件. 与Java语言对比,虽然名称同样称为类,对象,但是显然它们的含义存在一些细微的差异,而且实现三大特性的方式存在很大差异.所以用Java的概念去理解JS中的面向对象反而会很困惑. 从实际效果看,JS同样可以实现复杂的类结构,例如easyui中存在工具类(parser,loader),接口(resizable,draggable,droppable),继承(validatebox,textbox…
本章介绍对象. 在学习Java时,对象理解为公共事物的抽象,实例为具体的个例,对象为抽象的概念,例如人为抽象的概念,具体的个例为张三,李四. Java对象种类多,包含普通类,JavaBean,注解,枚举,接口,抽象类.每种类的特点也不同.对象之间的关系很多,泛化,实现,依赖,关联,组合,聚合.可以创建很复杂的类结构,例如IO框架,集合框架.每个对象都有强,弱,虚引用的概念,生命周期的概念.还需要考虑多线程下对象属性的安全性,总之很复杂. 而JS的对象,虽然概念相同,但它理解起来非常简单,是属性的…
本章介绍数组的内容,Java中的数组在创建时,会分配同等大小的内存空间,一旦创建数组的大小无法改变,如果数据超过数组大小,会进行扩容操作.并且数组的元素类型在创建时必须是已知的,而且只能存放相同数据类型的元素. JS的数组,它与硬件的概念不沾边,在创建时等同于创建了一个对象,只不过对象的属性必须是数字,而且由编译器自动管理.数组的大小概念是对象拥有多少个属性,数组的元素可以是任何值,没有数据类型的约束. 与Java数组对比,JS的数组更偏向于对象的概念,与数组的数据结构也没有任何关系,不具有快速…
本章介绍JS核心对象的方法.这些对象包括Array,Function,Number,Object,RegExp,String.除这些常用的核心对象还有Date,JSON. 本章更偏向于API文档,介绍如何使用这些对象,每个对象都有哪些方法,以及这些方法的示例.所以本文不再重复这些内容,而是直接给出API的链接. Array:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array…
1.JSLint 本书的JSLint部分只是一个引言,详细了解该工具的使用参考http://www.jslint.com/ 2.铁路图 在本书中使用过的铁路图集中放在这部分附录中,其实读完本书之后,没有必要单独查看该附录,在之前的铁路中都配有文本描述,更容易理解.画铁路图的在线工具地址https://www.bottlecaps.de/rr/ui 3.JSON 本书的JSON部分只是一个引言,在第三部分中介绍JSON解析器的源码,可以尝试编写一下,其他的参考JSON官网https://www.j…
<C#从现象到本质>读书笔记(七)第9章 泛型 泛型的三大好处:类型安全,增强性能(避免装箱和拆箱),代码复用. 泛型方法是传入的参数至少有一个类型为T(尚未制定的类型,根据微软的命名规则,通常以T开头)的方法.T称为类型参数. 它的使用契机一般为:传入类型可能有很多种.但处理方式却相同的情景.这是可以不需要写很多歌重载,而考虑用泛型方法达到代码复用的目的. 同名的泛型方法和非泛型方法会被编译器看做不同的方法.即使都是泛型方法,不同个数的类型参数也会被编译为不同的方法. 泛型约束使得类型参数只…
JavaScript语言精髓与编程实践读书笔记 function v1(v1){ v1 = 100; alert('v1:'+v1); } function v2(name){ v1.apply(this, arguments); alert(name); } //显示传入的参数未被修改, 值 v2('myName');…
接上篇<android开发艺术探索>读书笔记(六)--Drawable No1: 自定义动画:派生一种新动画只需要继承Animation这个抽象类,然后重写它的initialize和applyTransformation方法,在initialize方法中做一些初始化工作,在applyTransformation中进行相应的矩阵变换即可,很多时候需要采用Camera来简化矩阵变换的过程. No2: 属性动画PropertyAnimation   补间动画TweenAnimation   帧动画F…
接上篇<深入理解Android2>读书笔记(六) 广播接受者 注册 ContextImpl @Override public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter) { return registerReceiver(receiver, filter, null, null); } @Override public Intent registerReceiver(BroadcastRece…
昨日内容回顾 浮动 定位 溢出 透明度 模态框 今日内容概要 变量与常量 基本数据类型 数据类型内置方法 函数 常见内置对象 BOM与DOM操作 内容详细 1.变量与常量 # 在JS中声明变量需要使用关键字 老版本 var(全部都是全局变量) 新版本 let(可以声明局部变量 推荐使用let) """ JavaScript的变量名可以使用_,数字,字母,$组成,不能以数字开头. 声明变量使用 var 变量名; 的格式来进行声明 """ # 在JS…
受到狗哥书单的影响,看到了豆瓣上的评论,买了这本书,然后囫囵吞枣似地用一个月的时间看完了.回头想想自己做的js项目,感觉都羞愧-什么东西都是拿来尝试了一下就用了,其实有很多写得超级丑的地方,看完这个让我对本来不太喜欢的前端技术,又产生了一些好感,于是又打算找点时间看一下css和html5的东西,因为实验室接下来要做这些了. 接下来就是干货了. 第一章: 讲了一下JS这十年来的历程,惭愧的是一点都没记住,只是知道JS的引擎有好多种,不同引擎对应的语法有细微的差别.还有就是平时的不同浏览器,出去引擎…
最近在读新书<vue.js权威指南>,一边读,一边把笔记整理下来,方便自己以后温故知新,也希望能把自己的读书心得分享给大家. [第1章:遇见vue.js] vue.js是什么? vue.js不是一个框架-它只聚焦视图层,是一个用来构建数据驱动的Web界面的库.Vue.js通过简单的API来提供高校的数据绑定和灵活的组件系统 vue.js的特性 轻量级:体积非常小,而且不依赖其他基础库 数据绑定:对于一些富交互,状态机类似的前端UI界面,数据绑定非常简单,方便 指令:类似与AJ,可以使用v-*的…
第3章非函数式语言特性 这一章首先介绍了语言的分类,命令式(结构化编程,面向对象编程),说明式(函数式等).而这一章,主要介绍JS的非函数式特点. 在开始之前,首先介绍了由“结构化编程”向“面向对象编程”的演化趋势.“结构化编程”根本上是面向机器世界的“存储描述”因此抽象层次比较低,所以带了以下几点问题: 1. 结构体与实体直接相关,并且将这种相关性直接呈现在使用者的面前,因此开发人员必须面临数据的具体含义与关系. 2. 结构体的抽象更面向于数据存储形式的表达和算法实现方式,脱离了使用环境,算法…
是时候写一写 “继承”了,为什么加引号,因为当你阅读完这篇文章,你会知道,说是 继承 其实是不准确的. 一.类1.传统的面向类的语言中的类:类/继承 描述了一种代码的组织结构形式.举个例子:“汽车”可以被看作是“交通工具”的一种特例.我们可以定义一个 Vehicle 类和一个 Car 类来对这种关系进行描述.Vehicle 的定义可能包含引擎.载人能力等,也就是 所有交通工具,比如飞机.火车和汽车等都有的通用的功能描述.在对 Car 类进行定义的时候,重复定义“载人能力”是没有意义的,我们只需要…
[第2章:数据绑定] 何为数据绑定?答曰:数据绑定就是将数据和视图相关联,当数据发生变化的时候,可以自动的来更新视图. 数据绑定的语法主要分为以下几个部分: 文本插值:文本插值可以说是最基本的形式了.在vue.js中,使用了Mustache的语法,类似于Angular中的{{}}双大括号的形式.代码如下 <span>Text:{{text}}</span> 当然,如果你只想渲染一次数据,而对以后的数据不再关心的话,你也可以使用下面的语法: <span>Text:{{*t…
在开发时如果修改了js内容,不能通过刷新浏览器直接看到效果,必须通过重启nodejs程序才能看到,这样显然不利于开发调试,supervisor可以实现这个功能,监视对代码的改动,并自动重启nodejs,使用npm安装supervisor,如果使用的是Linux或Mac,直接键入可能会有权限错误,可以使用第二个命令安装: npm install -g supervisor  (window) sudo npm install -g supervisor (Linux.Mac) 安装完成,启动程序通…
第一章 node.js介绍 非阻塞型I/O机制 当在访问数据库取得搜索结果的时候,在开始访问数据库之后,数据库返回结果之前,存在一段等待时间. 在传统的单线程处理机制中,在执行了访问数据库的代码之后,整个线程都将暂停下来,等待数据库返回查询结果之后才能继续执行后面的代码.这是I/O型阻塞 node.js中在执行了访问数据库的代码之后将立即执行其后面的代码段,把数据库返回的结果的处理代码放在回调函数中.这是非阻塞型I/O机制 第三章 node.js中的全局作用域及全局函数 timer.unref(…
一.编译过程 常见编译性语言,在程序代码执行之前会经历三个步骤,称为编译. 步骤一:分词或者词法分析 将由字符组成的字符串分解成有意义的代码块,这些代码块被称为词法单元. 例子:  var a = 2; 这一句通常被分解成为下面这些词法单元:var .a . = .2.; .   步骤二:解析或者语法分析 将词法单元流(数组)转换成一个由元素逐级嵌套所组成的代表了程序语法结构的树.这个树被称为“抽象语法树”(Abstract Syntax Tree, AST) 例子: var .a . = .2…
在导入数据并且将数据进行组织和初步可视化以后,需要对数据进行分布探索和两两关系分析等.主要内容有描述性统计分析.频数表和列联表.相关系数和协方差.t检验.非参数统计. 7.1描述性统计分析 7.1.1方法云集 书上说,R中的描述性统计量函数“多的尴尬”.summary函数返回最大值.最小值.上下四分位数.中位数.平均值以及因子向量和逻辑向量的频数统计.还讲了apply.sapply函数,写了峰度和偏度.fivenum函数可以返回图基五数,即最小值,下分位数,中位数,上四分位数,最大值. 扩展:…
第十七章 事件处理 1 客户端JS程序采用了异步事件驱动编程模型. 2 关于事件的重要定义     a 事件类型(event type)     b 事件目标(event target) target === srcElement(IE8及之前版本)     c 事件处理程序(event handler ) 当对象上注册的事件处理程序被调用时,可以说浏览器触发(fire trigger)和派发(dispatch)了事件:     d 事件对象(event object)     e 事件传播(e…
算法(Algorithm) 是利用计算机解决问题的处理步骤. 算法是古老的智慧.如<孙子兵法>,是打胜仗的算法. 算法是古老智慧的结晶,是程序的范本. 学习算法才能编写出高质量的程序. 懂得了算法,游戏水平会更高. 比如下棋,如果懂得棋谱,就不需要每次考虑"寻找最好的一步棋",按照棋谱 就可以走出最好的几步棋.棋谱是先人们智慧的结果,因此掌握多种棋谱的人更 容易在对弈中获得胜利. 算法的学习类似学习游戏攻略. 算法是编写好程序的"棋谱". 算法必须满足&…
第5章 5.1 单链表 /* -------------------------------- list.h -------------------------------- */ #ifndef LIST_H #define LIST_H #include <stdlib.h> /* Define a structure for linked list elements.*/ typedef struct ListElmt_ { void *data; struct ListElmt_ *n…
第4章 算法分析 1.最坏情况分析 评判算法性能的三种情况:最佳情况.平均情况.最坏情况. 为何要做最坏情况分析: 2.O表示法 需关注当算法处理的数据量变得无穷大时,算法性能将趋近一个什么样的值.一个算法的增长速度或增长规律非常重要,因为当输入数据量变得无穷大时,它可用来描述算法的效率到底有多高.O表示法是一种表示算法增长规律的方法.          O表示法的简单规则:(以增长率的角度观察函数f(n)) 1) 可忽略常数项. 2) 可忽略常数因子. 3) 只需要考虑高阶项的因子. 3.计算…
第3章 递归 1.基本递归 假设想计算整数n的阶乘,比如4!=4×3×2×1. 迭代法:循环遍历其中的每一个数,然后与它之前的数相乘作为结果再参与下一次计算.可正式定义为:n! = (n)(n-1)(n-2)…(1). 递归法:将n!定义为更小的阶乘形式.可以正式定义为: 递归过程中的两个基本阶段:递推与回归. 递推阶段,每一个递归调用通过进一步调用自己来记住这次递归过程.当其中有调用满足终止条件时,递推结束.每一个递归函数都必须拥有至少一个终止条件:否则,递推阶段就永远不会结束了.一旦递推阶段…
1.函数-函数声明和函数表达式 解析器在向执行环境加载数据时,函数声明和函数表达式的对待不同. 解析器会率先执行函数声明,将会在任何使用到它的地方前加载, 而对于函数表达式,只会在执行到的时候去加载:这就是函数声明提升的过程(function declaring hoisting). 如下这样子是可以执行的 alert(sum(1,2)): function sum(num1, num2){ return num1+num2: } 而下面的会报unexpected identifier aler…