《JavaScript高级程序设计(第三版)》学习笔记

Before chapter 4

1. Null:空对象指针

2. Undefined派生自null。相等性测试返回true

3. true/false区分大小写。

4. 八进制字面量在严格模式下无效。

5. 永远不要测试某个特定的浮点数值。

6. Number.MIN_VALUE/Number.MAX_VALUE

7. Infinity/-Infinity 不能参与计算

8. isInfinite()

9. NaN:任何涉及NaN的操作都会返回NaNNaN与任何值都不相等,包括NaN本身。

10. isNaN()适用于对象。先调用对象的valueOf(),然后调用toString()

11. 把非数值转换为数值:Number()/parseInt(“string”)/parseFloat(‘string’)

12. parseInt(‘’)返回NaNparseInt(22.5)返回22

13. ES5 JavaScript引擎中,parseInt()不具有解析八进制值的能力。

14. var num = parseInt(‘oxAF’, 16);

15. 建议无论在什么情况下都明确指明基数。

16. parseFloat()始终忽略前导的0,只解析十进制值,十六进制格式的字符串始终转换成0.

17. parseFloat(‘22.34.5’)返回22.34parseFloat(‘3.123e7’)返回31230000

18. 转义序列:\n 换行;\t 制表;\b 空格;\r 回车

19. ES中的字符串不可变。

20. toString()

21. null/undefined没有toString()方法。

22. String()。能够将任何类型的值转换成字符串。转换规则:toString()->值是null,返回’null’->值是undefined,返回’undefiened’。

23. ES中的对象是一组数据和功能的集合。

24. Object的每个实例具有以下属性和方法:Constructor/hasOwnProperty(‘propertyName’)/isPrototpeOf(object)/propertyIsEnumerable(‘propertyName’)/toLocaleString()/toString()/valueOf()

25. Object是所有对象的基础。

26. == 先转换再比较;=== 仅比较不转换

27. ES中的参数在内部是用一个数组来表示的。命名的参数只提供便利,不是必须的。

28. arguments对象可以与命名参数一起使用。arguments的值永远与对应命名参数的值保持同步。内存空间独立。修改命名参数不会改变arguments中对应的值。arguments对象的长度由传入的参数个数决定。

29. ES中所有参数传递的都是值,不可能通过引用传递参数。

30. ES函数没有签名,所以没有重载。通过检查传入函数中参数的类型和数量做出不同的反应。

31. 未指定返回值的函数返回的是一个特殊的undefined值。

32. XHTML中可以写:<script />,但HTML中不识别,只能写成<script></script>


chapter 4 变量/作用域和内存问题

1. 基本类型/引用类型

2. 只能给引用类型值动态添加属性

3. 基本类型的复制:完全独立

4. 引用类型的复制:值的副本实际上是一个指针,指向存储在堆中的一个对象。两个变量引用同一个对象。

5. ES中所有函数的参数都是按值传递的。

6. typeof null返回object

7. result = variable instanceof constructor

8. 所有引用类型的值都是Object的实例。

9. 基本类型不是对象。

10. execution context/variable object

11. 每个函数都有自己的执行环境。

12. 环境栈

13. 每个环境都可以向上搜索作用域链。

14. 延长作用域链:try-catch语句的catch块;with语句。

15. js没有块级作用域。if/for

16. 使用var声明的变量会被自动添加到最接近的环境中。在with语句中,最接近的环境是函数环境。如果初始化变量时没有使用var声明,该变量会自动添加到全局环境window

17. 标识无用变量的策略:标识清除(mark-and-sweep);引用计数(reference counting),循环引用。

18. 使用COM(Component Object Model)对象导致循环引用。

19. IE9BOMDOM对象转换成了真正的JS对象。

20. IE的垃圾收集器是根据内存分配量运行的。

21. 局部变量会在离开执行环境时,自动解除引用。

 

小结:

1. 基本类型在内存中占据固定大小的空间,保存在栈内存中。

2. 引用类型的值时对象。保存在堆内存中。

3. 包含引用类型值的变量包含的是一个指向该对象的指针。

4. 变量的执行环境有助于确定内存释放时间。

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值