整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

JavaScript 经典「红宝书」,几代前端人的入门选择

的一生中总要读几本经典书,在这个“经典”泛滥的年代,什么才是权威的代表,我想大概是一本的书的口碑,能积累下上佳口碑的书,往往也是能经得住时间推敲的。比如这本:

相信许多前端开发者的案头都有这样一本书。这本书最早的版本第 2 版可以追溯到 2010 年,有时候虽然觉得 2010 年离我们很近,但是却已经有十年之久了。

这本书前前后后帮助几代前端人从入门到进阶,给大家留下不可磨灭的记忆,它除了是工具书中的翘楚,也是前端发展史的见证者。所以,很多程序员亲切地称它为JavaScript “红宝书”。

当然也有一些初学者,听到“高级”二字就被吓退了,觉得这很难并不适合新手。但是其实这本书适用面很广,不管你是新手还是高手,始终能从书中得到启发和收获,也能让你做到常读常新。

一本书能长销 10 多年,离不开优秀的作者团队提供了优质的内容,更重要的是每一版都在不断优化知识框架的设置,力求让更多学习前端的人有更好的学习体验。

目前,这本书第 1 版的作者已经去世。第 2 版,还有我们熟知的第 3 版的作者 Nicholas C.Zakas 如今也因身体原因退出了第 4 版的写作,就像作者在 Twitter 上说的一样:“《JavaScript高级程序设计》这本书这好像是一场每日秀,如今它迎来了第 3 任主持人。”

而新版作者 Matt Frisbie 将带着更好的内容出发!

第3版作者Twitter截图

先来介绍下,第 4 版的作者马特·弗里斯比(Matt Frisbie),目前担任 Gosellout 公司的 CTO,曾担任谷歌公司软件工程师,精通前端技术,拥有十余年 Web 开发经验,除本书外另著有 AngularJS 等前端主题图书。毕业于伊利诺伊大学厄巴纳-尚佩恩分校,是一位经验十足的前端。

以下是第 4 版的封面,学了这么多年,书封上拿望远镜的小孩终于站起来了,这是不是也预示着我们距离精通 JavaScript 又更近一步。

JavaScript高级程序设计第3版JS入门到精通书籍JavaScript权威指南配套
¥69.8
购买
<script src="//mp.toutiao.com/mp/agw/mass_profit/pc_product_promotions_js?item_id=6871029429724774926"></script>

很多人更关注新版会带来哪些更新?

这一版仍旧延续上一版的框架和格局,删减了已经过时的内容,在此基础上又翔实地增补了 ES2015 到 ES2019 的全新内容,作者详尽讨论了 JavaScript 的各个方面,从 JavaScript 的起源开始,逐步讲解到新出现的技术,其中重点介绍 ECMAScript 和 DOM 标准。

新版涵盖了 ECMAScript 2019 ,全面、深入地介绍了 JavaScript 开发者必须掌握的前端开发技术,涉及 JavaScript 的基础特性和高级特性。还同时介绍了近几年来涌现的重要新规范,包括 Fetch API、模块、工作者线程、服务线程以及大量新 API。

相信新版本一定会不负众望,值得等待。

当然也有不少人有这样的困惑,自己有了“犀牛书”,还要不要读这本?

其实这个取决于你的学习阶段,如果你是新手入门,那么推荐你读这本《JavaScript高级程序设计》,如果你已经有一定基础了,进阶的时候可以用《JavaScript权威指南》。

犀牛书综合读者评论认为书较厚,像一本权威字典,有一点手册化。可能不适合完全新手入门。优点在于它列举了很多很多细小微妙的坑,概念都很仔细地讲解到位,例子浅显易懂。

红宝书内容比较实在,书中的例子易于理解,翻译也要更流畅。可谓是各有各的特色。读书嘛,找到适合自己的才最重要。如果时间充足大可两本一起买来对照读一下,好书不在多,多看多受益。

另外,这是来自第 3 版的读者评价,我们也从读者的角度给你的选购提供一些参考。

@恐龙:再次预言这本书能认真看十遍者,都能进BAT。
@阿琛:详尽地解读了JS这门语言的各个组成部分,透彻地剖析了JS所涉及的编程思想,深入浅出地演示了丰富的JS应用实例…读完这本书你不一定就能成为前端大牛,但如果你真的能把这本书读懂,吃透,那么你离JS高手肯定不远啦!

第 4 版差不多有 900 页,为了保证这本书能准时上市,这中间离不开译者和编辑老师的通力配合。几乎每周,大家都会坐下来沟通一下这本书的进度。

在本书正式印刷之前,译者李松峰老师更是邀请了众多前端大佬,帮忙审校,确保内容万无一失。

大家都知道,工作一天利用下班时间来翻译这本巨著,是需要超凡的耐力的。平时,我们看一本 900 页的书都未必能坚持住,更何况是翻译。但是李松峰老师做到了,这样一件极其枯燥乏味的事情,李松峰老师却把它做到了极致,这也不得不让我们佩服。

. 函数提升 变量提升 函数提升优于变量提升

2. 当函数名和变量名相同时,如果变量没有被赋值,则函数生效,否则变量生效

3. var s=function g(){}

g 是只读的, g只能在函数内部访问

4. this 谁调用指向谁,没人调用指向window

5. this 当函数创建时,this指向当前函数实例

6. es6简写的函数不能new,箭头函数也不能new

7. 简单的函数声明不能new

8. 对象和闭包不能在一起,必须有分号

9. TDZ 暂时性死区

/逗比小憨憨

/*第一章

*HTML引用js方法:

*1,外部引用:HTML外部引用js:<script src="js/day1.js"></script>

*2,内部引用:<script> alert("逗比小憨憨");</script>

*3,元素事件引用:<input type="button" value="button" onclick="alert('welcome')" />

*/

/*第二章

* 变量定义:

* 1,变量由数字,字母,下划线,$组成,且不能以数字开头

* 2,变量不能使用系统关键词

* 3变量定义语法:var 变量1=变量值,变量2=变量值,...;

*/

//举例:

var a = 10;

document.write(a);//在页面输出一个内容

/*

* 数据类型:

* 1,基本数据类型:数字,字符串,布尔值,未定义值(undefined),空值(null)

* 2,引用数据类型:数组,对象

* 其中:数字不区分整型和浮点型

*/

/*

* 运算符:

* 1,算术运算符:+ - * / % ++ --

* 加法运算规则:数字+数字=数字; 数字+字符串=字符串; 字符串+字符串=字符串

* 2,

*/

//举例:

var a = 10;

var str = "逗比小憨憨";

document.write(str + a, typeof(str + a));

/*

* 赋值运算符:= += -= *= /=

* 比较运算符:> < >= <= == !=

* 逻辑运算符:&& || !

* 条件运算符:var b=条件?表达式1:表达式2;//相当于C语言中三目运算符

*/

/*

* 表达式语句:一个分号对应一条语句

* 类型转换:

* 1,隐式类型转换(js自动完成的)

* 2,显式类型转换

* (1)字符串转数字:Number(),parseInt(),parseFloat()(字符串必须是数字字符串)

* (2)数字转字符串:toString

* (3)转义字符:\' \" \n等

* 3,注释: 单行注释 和 多行注释 用法:与C语言注释一样

*/

//举例:

document.write("Number(\"123\"):" +Number("123") + "<br/>");

document.write(parseInt("+123.456px"));//第一个字符为+或-也进行转换,从左往右取整数

document.write(parseFloat("123.456px"));

var num = 123;

document.write(num.toString());


/*第三章

* 流程控制:

* 1,顺序结构:程序代码从上到下,从左到右依次执行

* 2,选择结构:

* (1)if语句:(单重if)

* <1>:if(条件){语句块}

* <2>:if(条件){语句块} else{语句块}

* <3>:if(条件){语句块} else if(条件){语句块} else{语句块}

* (2)switch语句:

* switch(判断值){ case 取值1:语句块1;break;

* case 取值2:语句块2;break;

* ...

* default:语句块n;break;}

* 3,循环结构:

* (1)while循环:

* while(条件){语句块}

* (2)do...while循环:

* do{语句块}while(条件);

* (3)for循环:

* for(初始化表达式;条件表达式;循环后操作表达式){语句块}

*/

//举例:计算1+2+3+...+100

var n = 1, sum = 0;

while(n <= 100)

{

sum += n;

n++;

}