本章介绍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…
本书是一本经典,优秀的JS书籍. 目的 在书籍中作者多次提及本书的目的,让读者去发现语言中的精华部分,避免糟粕部分,提高代码的编写质量.简述为取其精华去其糟粕. 本书的内容只涉及到Core JS部分,对Client JS与Server JS没有提及,而且是基于ES5标准,所以ES6的新特性需要阅读其他书籍,个人推荐<Exploring ES6>. 同类型书籍 同类型书籍很多,最经典的有<JS权威指南第五版>,MDN web docs官网,它的地址是https://developer…
本章介绍数组的内容,Java中的数组在创建时,会分配同等大小的内存空间,一旦创建数组的大小无法改变,如果数据超过数组大小,会进行扩容操作.并且数组的元素类型在创建时必须是已知的,而且只能存放相同数据类型的元素. JS的数组,它与硬件的概念不沾边,在创建时等同于创建了一个对象,只不过对象的属性必须是数字,而且由编译器自动管理.数组的大小概念是对象拥有多少个属性,数组的元素可以是任何值,没有数据类型的约束. 与Java数组对比,JS的数组更偏向于对象的概念,与数组的数据结构也没有任何关系,不具有快速…
第九章节 本章节不再介绍知识点,而是作者在提倡大家培养良好的编码习惯,使用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,JS编程语言中功能是相同的. 正则表达式是复杂的,复杂性并不来源于它的语法,而是来源于看待字符串的方式.它将字符串分为若干部分,每个部分都匹配对应的规则.若可以将整个正则表达式拆分为若干部分,并逐个的进行分析,那么正则理解起来会非常简单.所以个人建议在初期时将每个部分用括号包裹起来,之后再…
本章介绍对象. 在学习Java时,对象理解为公共事物的抽象,实例为具体的个例,对象为抽象的概念,例如人为抽象的概念,具体的个例为张三,李四. Java对象种类多,包含普通类,JavaBean,注解,枚举,接口,抽象类.每种类的特点也不同.对象之间的关系很多,泛化,实现,依赖,关联,组合,聚合.可以创建很复杂的类结构,例如IO框架,集合框架.每个对象都有强,弱,虚引用的概念,生命周期的概念.还需要考虑多线程下对象属性的安全性,总之很复杂. 而JS的对象,虽然概念相同,但它理解起来非常简单,是属性的…
1.JSLint 本书的JSLint部分只是一个引言,详细了解该工具的使用参考http://www.jslint.com/ 2.铁路图 在本书中使用过的铁路图集中放在这部分附录中,其实读完本书之后,没有必要单独查看该附录,在之前的铁路中都配有文本描述,更容易理解.画铁路图的在线工具地址https://www.bottlecaps.de/rr/ui 3.JSON 本书的JSON部分只是一个引言,在第三部分中介绍JSON解析器的源码,可以尝试编写一下,其他的参考JSON官网https://www.j…
<C#从现象到本质>读书笔记(八)第10章反射 个人感觉,反射其实就是为了能够在程序运行期间动态的加载一个外部的DLL集合,然后通过某种办法找到这个DLL集合中的某个空间下的某个类的某个成员(通过反射可以访问该类所包含的所有成员,不论成员是公有还是私有). 在.NET中,查看和操作元数据的动作,称为反射. 通过反射我们可以:1)加载一个程序集,这称为动态加载程序集或者晚期绑定.2)获得程序集的托管模块(IL+元数据).3)获得程序集中(托管模块中的)类型对象(通过元数据).4)获得类型的成员和…
JavaScript语言精髓与编程实践读书笔记 function v1(v1){ v1 = 100; alert('v1:'+v1); } function v2(name){ v1.apply(this, arguments); alert(name); } //显示传入的参数未被修改, 值 v2('myName');…
接上篇<深入理解Android2>读书笔记(七) AMS中的进程管理 AMS对进程的管理仅涉及两个方面 1.调节进程的调度优先级和调度策略 2.调节进程的oom值 调度优先级和调度策略 1.相对于在OS(操作系统)上运行的应用进程个数来说,CPU的资源非常有限 2.调度优先级是OS分配CPU资源给应用进程时(即调度应用进程运行)需要参考的一个指标.一般而言,优先级高的进程将更有机会得到CPU资源 3.除了优先级,还有一个需要考虑的重要因素是,每个进程所分配的时间片及它们的使用情况 Androi…
接上篇<android开发艺术探索>读书笔记(七)--动画 No1: Window是一个抽象类,它的具体实现是PhoneWindow.创建一个Window是很简单的事,只需要通过WindowManager即可完成. WindowManager是外界访问Window的入口,Window的具体实现位于WindowManagerService中,WindwoManager和WindowManagerService的交互时一个IPC过程. Android中所有的视图都是通过Window来呈现的,因此W…
在前一章也提到过,之所以中断会分成上下两部分,是由于中断对时限的要求非常高,需要尽快的响应硬件. 主要内容: 中断下半部处理 实现中断下半部的机制 总结中断下半部的实现 中断实现示例 1. 中断下半部处理 那么对于一个中断,如何划分上下两部分呢?哪些处理放在上半部,哪些处理放在下半部? 这里有一些经验可供借鉴: 如果一个任务对时间十分敏感,将其放在上半部 如果一个任务和硬件有关,将其放在上半部 如果一个任务要保证不被其他中断打断,将其放在上半部 其他所有任务,考虑放在下半部 2. 实现中断下半部…
昨日内容回顾 浮动 定位 溢出 透明度 模态框 今日内容概要 变量与常量 基本数据类型 数据类型内置方法 函数 常见内置对象 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…
算法(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…
this 关键字是 Javascript 中很特别的一个关键字,被自动定义在所有函数的作用域中.this提供了一种更优雅的方式隐式“传递”一个对象的引用.今天就来说说 this 的指向问题. this 是在运行时,也就是说函数被调用时进行绑定,而不是在编写时进行绑定,它的上下文取决于函数调用时的各种条件.this 的绑定和函数声明的位置没有任何关系,只取决于函数在哪里被调用. 一.调用位置 所谓 调用位置 就是 函数被调用的位置.找到这个位置并不是很简单的事情,因为有的时候,真正的调用位置会被隐…