JavaScript忍者秘籍

出版日期:2015-10
ISBN:9787115401942
作者:John Resig,Bear Bibeault
页数:350页

内容概要

John Resig是可汗学院计算机科学学院的院长,也是jQuery JavaScript库的创造者。排名前10000的网站中,目前有57%的网站使用jQuery(BuiltWith.com统计),并且有几百万其他网站也使用jQuery,它已成为最受欢迎的用于构建网站的技术,可能也是一直以来最流行的编程技术之一。
他还创建了许多其他开源工具和项目,包括Processing.js(Processing语言到JavaScript的转换)、QUnit(测试JavaScript代码的测试套件)和TestSwarm(用于分布式JavaScript测试的平台)。
他目前正在可汗学院进一步开展计算机科学教育,他在学校开发计算机科学课程和工具,来教各个年龄层的人如何编程。可汗学院的目标是创造优秀的免费教育资源。他不仅教人们如何编程,还让每一位程序员体验写完自己的第一个程序后的兴奋。
目前,John住在纽约布鲁克林,业余时间喜欢研究Ukiyo-e(日本版画)。
Bear Bibeault编写软件已经超过30年,一开始是通过一个100波特的电传打字机在控制数据网络超级计算机上编写井字程序。因为Bear有两个电气工程学位,因此应该是从事设计天线之类的工作,但从他在数字设备公司从事的第一份工作开始,他总是更着迷于编程。
Bear还分别在Lightbridge Inc.、BMC Software、Dragon Systems、Works.com等其他几个公司工作过。Bear甚至曾在美国军队服役,教步兵学习如何炸毁坦克,这些技能在每日例会上还能派上用场。
Bear目前担任一家家庭网关设备和电视机顶盒领域领先供应商的软件架构师。
Bear是其他一些Manning图书的作者:jQuery in Action(第一版和第二版)、Ajax in Practice和Prototype and Scriptaculous in Action__,他还是O’Reilly出版的许多网络Head First图书的技术复审员,如Head First Ajax、Head Rush Ajax和Head First Servlets and __JSP。
除了日常工作外,Bear还写书(duh!),并经营着一家小型企业,致力于创建Web应用程序,提供其他媒体服务(但不是婚礼摄像——永远不会是婚礼摄像),并作为“引领者”(非常资深的版主)帮着打理CodeRanch.com。
不在电脑前待着时,Bear喜欢做大餐、涉足摄影和视频,也喜欢驾驶雅马哈V-Star和穿热带印花衬衫。
他工作和居住在得克萨斯州奥斯汀,他深爱这座城市,除了满城的疯狂司机外。

书籍目录

作者简介
图书评论
版权声明
内容提要
致谢
译者序

前言
第一部分 准入训练
第1章 进入忍者世界
第2章 利用测试和调试武装 自己
第二部分 见习训练
第3章 函数是根
第4章 挥舞函数
第5章 闭包
第6章 原型与面向对象
第7章 正则表达式
第8章 驯服线程和定时器
第三部分 忍者训练
第9章 忍者点金术:运行时代码 求值‘
第10章 with语句
第11章 开发跨浏览器 策略
第12章 洞悉特性、属性和 样式
第四部分 火影训练
第13章 不老事件
第14章 DOM操作
第15章 CSS选择器引擎

作者简介

JavaScript语言非常重要,相关的技术图书也很多,但没有任何一本书对JavaScript语言的重要部分(函数、闭包和原型)进行深入、全面的介绍,也没有任何一本书讲述跨浏览器代码的编写。本书是jQuery库创始人编写的一本深入剖析JavaScript语言的书。
本书共分四个部分,从准入训练、见习训练、忍者训练和火影训练四个层次讲述了逐步成为JavaScript高手的全过程。全书从高级Web应用程序开发者所面临的挑战谈起,由浅入深地覆盖了测试和测试工具、函数、闭包、对象、正则表达式、定时器、运行时代码求值、with语句、跨浏览器问题、元素的特性和属性、事件处理、DOM以及CSS选择器等众多核心话题;将严谨的理论讲解和实用的代码示例相结合,引导读者更加深入地了解JavaScript的神奇,充分展示了JavaScript语言的各种特性。
本书适合具备一定的JavaScript基础知识的读者阅读,也适合从事程序设计工作并想要深入探索JavaScript语言的读者阅读。


 JavaScript忍者秘籍下载 精选章节试读 更多精彩书评



发布书评

 
 


精彩书评 (总计2条)

  •     ==== 修改说明:去掉对于翻译质量的评价,只评论本书的内容罢。======== 但是!译者对闭包概念的翻译(86页)真是让人大跌眼镜啊!!!真的是用的谷歌翻译吗???====书名《JavaScript忍者秘籍》,作者呢是大名鼎鼎的 jQuery 的创作者。这本书里介绍了各种“忍者级”JS用法,收益颇丰。总体来说,这本书适合中级 JS 开发者。作者的许多代码,就体现了他在设计 jQuery 时的编程思想,非常有价值。附:本评论的阅读体验更友好的地址(我的博客里):http://borninsummer.com/2016/09/20/javascript-ninja/### 第3章 函数是根基函数的 name 属性,有别于函数表达式的变量名,它是函数声明时指定的。### 第4章 挥舞函数函数名是一个有趣的概念,它的本质是 token,与变量名、对象属性名一样,都有各自的可见范围。函数声明可以使得该函数在其所在的词法作用域内在任意处访问到。函数表达式里,如果 function 关键字后面带有函数名,那么该函数名字只能被自己的函数体内访问到,外部都不可见。例如:```var a = function b() {console.log(b.name);}; a(); // bb(); // Uncaught ReferenceError: b is not defined```而且函数名是一个优先级比较弱的标识符,函数的形参名会在函数体内覆盖函数名:```var a = function b(b) {console.log(b.name);};a(); // Uncaught TypeError: Cannot read property 'name' of undefined```而在将对象的属性指向一个函数时,如果将函数进行命名,那么其行为与函数表达式一样。这样的函数被称为内联命名函数。72页的一段代码非常有趣,对象的方法可以调用数组原型方法,例如 Array.prototype.push.call(this, objectB),然后如果这个对象有个 length 属性,那么这个原型方法呢就会将 length 值加 1,并且给对象添加一个数字属性,对象通过 [index] 访问这个数字属性,就可以访问到刚刚添加的对象 objectB。#### 4.4 函数重载方式> 重载函数是函数的一种特殊情况,为方便使用,C++允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同,也就是说用同一个运算符完成不同的运算功能。这就是重载函数。重载函数常用来实现功能类似而所处理的数据类型不同的问题。> > ——来自百度百科这本书给出的 JS 实现函数重载的技术与C++不同,但是思路是一样的:根据形参来、直观地重载;充分利用闭包来保存函数链。```/*** 用于给对象添加重载方法的方法* @param {[type]} object [description]* @param {[type]} name [description]* @param {Function} fn [description]*/function addMethod(object, name, fn) {var old = object[name];object[name] = function() {if (fn.length === arguments.length) {return fn.apply(this, arguments);} else if (Object.prototype.toString.call(old) === '[object Function]') {return old.apply(this, arguments);}};}/*** 定义一个测试对象*/var ninjas = {values: ['a', 'b', 'c']};/*** 第一个是不带任何参数的方法*/addMethod(ninjas, 'find', function() {return this.values;});/*** 第二个方法带有一个字符串参数*/addMethod(ninjas, 'find', function(str) {return this.values.filter(item => (item === str));});console.log(ninjas.find()); // ["a", "b", "c"]console.log(ninjas.find('c')); // [c"]```Jhon Resig 自夸说:**这是个绝佳的技巧,因为这些绑定函数实际上并没有存储于任何典型的数据结构中,而是在闭包里作为引用进行存储**。的确很巧妙。### 第8章 驯服线程和定时器同一个 interval 处理程序的多个实例不能同时进行排队。因此,setInterval 的有些回调可能就被废弃掉了。> 减少同时使用的定时器的数量,将有助于解决这种问题(卡顿),这就是为什么所有现代动画引擎都使用一种称为中央定时器控制(central timer control)的技术。一个完整的中央定时器控制示例代码:```<!DOCTYPE html><html><head><title>test timer control</title><style type="text/css">#box {position: relative;border: 1px solid #999;display: inline-block;height: 100px;width: 100px;}</style></head><body><div id="box"></div></body></html><script type="text/javascript">var timers = {timerID: 0,timers: [],add: function(fn) { this.timers.push(fn);},start: function() {if(this.timerID) return;(function runNext() {if(timers.timers.length > 0) {for (var i = 0; i < timers.timers.length; i++) {if(timers.timers[i]() === false) {timers.timers.splice(i,1);i--;}} timers.timerID = setTimeout(runNext, 0);}})();},stop: function() {clearTimeout(this.timerID);this.timerID = 0;}};var box = document.getElementById("box"), x = 0, y = 20;timers.add(function() {box.style.left = x + "px";if(++x > 50) return false;});timers.add(function() { box.style.top = y + "px";y += 1;if (y > 120) return false;});timers.start();</script>```
  •     这是一本JavaScript进阶书,翻译也比较地道。本书是由jQuery的创建者和《jQuery实战》的作者合著的。全书从实际的实践中出发,对测试,函数、闭包、正则、定时器、事件,跨浏览器的DOM编程等内容,娓娓道来,内容清晰明了。同时对JavaScript编程中存在的陷阱以及规避的办法还有一些非常有用的小技巧穿插在其中,非常精彩,让我在阅读的过程中好几次为作者的巧妙思路而喝彩。总之如果你有了一定JavaScript基础,想要进一步提升自己的水平的话,看完这本书一定会让你受益匪浅,写起JavaScript代码来底气也更足。

精彩短评 (总计28条)

  •     挺好的。
  •     此书早几年出版肯定是神书
  •     看完一半⋯⋯真心觉得有点难就好久没看了 最后送同学了, 好像是有点落伍了
  •     很好的一本书,结合重构及有效代码,前端标准
  •     很多有趣的点
  •     jquery作者出品,值得一看
  •     排版和翻译都非常糟糕.
  •     挺干货的一本书,觉得比市面上大部分js的书要好,闭包和事件的部分讲解的尤其细致,但是翻译确实不好,有些地方和作者的意思完全背道而驰啊……还不如只看实例代码来的快
  •     读过一遍,很爽,真心很爽,对我来说主要是对函数有了不一样的理解。再说一遍,读的时候真的很爽
  •     翻译的不好
  •     已经看完前4章,翻译烂到无语,怀疑是机器翻译的。废话连篇,简直浪费我时间。后悔买这本书
  •     。
  •     javascript 基础库的开发技术,跨浏览器事件处理方案,dom属性和特性处理技术,有很强的实践价值
  •     JS开发者都应该读的、接近编程思想层面的书。jQuery创始人,实力真是强大!
  •     恩。我已经不适合再看JavaScript的书了。。一轮看下来,基本没有不知道的知识点。期待其他ES6方面的书吧。
  •     我也不确定算不算是进阶书,至少把事情将清楚了(解释浏览器端的js、dom到这个程度应该够了)。
  •     你还在用jQuery的话,必须得来膜拜。对于已经用上了es6的同学,选读就好,毕竟有些内容过时了。
  •     好书,前三个部分的代码大都能看懂,解释的也很好,最后一部分有点懵,都是ie的锅,还得兼容代码那么多…
  •     不少js的黑科技
  •     虽然是jQuery作者John Resig写的,但其实技术难度并不高。书里面很多技巧在(浏览器纷纷向标准靠拢和EcmaScript2015已经逐渐开始普及的)今天已经稍微有些过时,但有些有趣的用法和思路仍然能让人眼前一亮。话说n年前我还和John Resig合影过呢…
  •     厉害,很佩服人类的潜力,能把号称很烂的JS语言运用出这么多眼花缭乱的技巧。
  •     由浅入深的一本书,很值得去深入学习,近期读了一遍还有许多需要去推敲的地方。后面再去深入推敲
  •     总体是不错的,但是翻译得不咋地,有很多机器翻译的痕迹,闭包两句解释没一句翻译得像人话,还有个"第一型对象",我看了这么多js书,人家都翻译成"一等公民",后来发现百度的翻译是"第一类对象",还有很多地方很不通顺,白瞎了大神的好书啊!!!内容很精彩,看完这个基本上jq的设计思想就了解了,如果你在读jq源码又读不懂,先看看这本,很有帮助
  •     原本以为最后面火影忍者部分会深入的讲一些javascript、html和css的引擎实现原理,结果涉及都是分析各大类库如何应对跨浏览器差异的解决方法,有点小失落。不过初学者都了解一下还是有用的,尤其是函数、closure、prototype部分讲的比较细。
  •     嗯,买了有一两个月都在吃灰。直到初九回家晚上没事拿出来随便翻翻,然后。。。就被吸引住了,大神果然出神入化,看得我好陶醉啊陶醉,虽然有的地方翻译得好难懂,但还是好好看啊!!!
  •     建议看 事件部分
  •     JavaScript is becoming the sexiest programming language in the world!
  •     好书,有挑战
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024