getting-started-with-javascript
getting-started-with-javascript copied to clipboard
推荐JavaScript的书籍
学习javascript书很重要,整个课程我只推荐一本书:JavaScript权威指南--淘宝前端团队 翻译。
如何利用这本书:
第一部分:
- 第1章 - 第7章是JS的基础。(JS课程的内容)
- 第8章 - 第9章是JS的重点重点重点。(JS课程的内容)
- 第10、第11可以暂时忽略。(JS课程不涉及到,以后同学们要进阶时阅读)
第二部分:
第二部分通篇都是和前端开发有关的内容。 (部分内容JS课程会涉及到)
第三部分和第四部分:
全都是内置服务的api。当字典来查。
老师,单纯利用w3school或网上的资源也行吗?会不会有的知识会学的不全?
@zhangdarui w3cshool也可以,适合初学者。但是上面对知识不够深入。
《JavaScript权威指南》第37页,从上往下第四行:
Number.MAX_VALUE + 1
书中说计算结果应该是Infinitity
,但是在Chrome 60开发者工具的Console中,输入这个命令得到的结果却是1.7976931348623157e+308
。甚至我输入Number.MAX_VALUE + 1
,其值也是1.7976931348623157e+308
。为什么会是这个结果呢?是因为ES6的规则有所变化?还是别的什么原因?
上面的问题,在StackOverflow上的一个回答中看到了更多的示例: https://stackoverflow.com/questions/25532240/isfinitenumber-max-value-1-returns-true 我再找找解释原理的文章~~~
已找到解答:由原来的关键字JavaScript number.max_value plus 1
改为用关键字JavaScript number.max_value infinity
搜索,在第一页的结果中,看到一个知乎上的回答:为什么在js中Number.MAX_VALUE + 1不是Infinity?,将原理解释得很清楚。
又一个疑问:4.7.3 左值这一小节的正文里,提到左值的定义是:表达式只能出现在赋值运算符的左侧
。这个定义要如何结合表4-1:JavaScript 运算符来理解呢?没有看明白。
@xugy0926
@Dream4ever
左值的理解非常简单,即:等号左边就叫左值。
var name = 'xiaoming';
name = 'zhangxiaoming'; // 变量i是左值。
var colors = ['red', 'white', 'black'];
colors[1] = 'blue'; // colors[1]是左值
var personInfo = {
name: 'xiaoming',
age: 18
}
personInfo.name = 'zhangxiaoming'; // personInfo.name是左值。
甚至你还可以重新复制personInfo变量
personInfo = {
name: 'xiaohua',
age: 16
}
// personInfo是左值
在表4-1中,明确了i++这样的操作,i是左值,你可以等价下面的例子
var i = 1;
i++; // i是左值
等价于
i = i + 1 // i显然是左值!!
又比如
i *= 2;
等价于
i = i * 2;