美文网首页
JavaScript综合笔记3<高程+阮一峰+饥人谷>

JavaScript综合笔记3<高程+阮一峰+饥人谷>

作者: joker731 | 来源:发表于2017-11-30 07:17 被阅读18次

本章节最终要的知识点是内存图

数据类型

  • 七种数据类型(请背诵): number string boolean symbol - - -undefined null object
  • 注意没有 array 类型也没有 function 类型。
  • number
    整数和小数:1 1.1 .1
    科学记数法:1.23e2
    二进制:0b11
    八进制:011(后来 ES5 添加了 0o11 语法)
    十六进制:0x11
  • string
    空字符串:''
    多行字符串: var s = '12345' +
    '67890'
  • symbol
    方应杭:JS 中的 Symbol 是什么?

(规范)如果一个变量没有被赋值,那么这个变量的值就是 undefiend

(习俗)如果你想表示一个还没赋值的对象,就用 null。如果你想表示一个还没赋值的字符串/数字/布尔/symbol,就用 undefined(但是实际上你直接 var xxx 一下就行了,不用写 var xxx = undefined)

object

object 就是上面几种基本类型(无序地)组合在一起
object 里面可以有 object
var person = {
name: 'Frank',
'child': {
name: 'Jack'
}, // 最后这个逗号可有可无
}
object 的 key 一律是字符串,不存在其他类型的 key
object[''] 是合法的
object['key'] 可以写作 object.key
注意 object.key 与 object[key] 不同
delete object['key']
'key' in object

类型转换

  • 其他类型转换成字符串类型,可以通过toString或者String()来实现.但是老程序员都是用+''(通过+运算符加上空字符串)
  • 其他类型转换成布尔类型,只有特定的6个(空字符串,null,undefined,0,false,NAN)转为false,其他都转为true
  • 其他类型转布尔类型,一般通过boolean(),但是老程序员使用!!双重取反的形式,例如!!0 结果为false

内存常识

  • 电脑是通过电流控制0和1,所以内存运行的时候需要一直充电.电脑的开机就是把硬盘里面的东西放在内存上去运行.
  • 操作系统占2G左右的内存,浏览器占1G左右内存,JavaScript引擎占100M左右
  • 简单类型值放在stack 复杂类型放在 heap
  • JavaScript没有指针,指针概念是C语言的,在JavaScript中是一种虚拟示意,可以说成引用.

垃圾回收核心理念:如果一个对象没有被引用他就是垃圾,将会被回收.什么时候回收是由浏览器决定

  • 内存泄漏指的是:原本应该被回收的垃圾没有回收.这样就使得部分内存被永久占用,日积月累,浏览器吃的内存越来越多.

深拷贝

  • 深拷贝就是A的改动,不影响B
  • 基本类型,简单的赋值就是深拷贝,侧重点在于复杂类型的深拷贝.

以下是一些关于理解内存图的案例

var a = {'name':fang}
var b = a; //对象赋值是复制地址
b=null; // 这里的null是把b的地址改为null不影响 指引的对象,所以结果为fang
求a.name ? 答案输出:fang

var a ={};
a.self = a;
求a的值,结果为undefined

课后作业笔记

var name = 'x'
var obj = {
name: 'frank'
}
obj['name'] obj.name这两个答案都是'frank'
obj[name] 答案是undefined

  • 我想知道变量 a 是否已经声明过(值为 undefined 不代表没有声明过),应该用代码 if ('a' in window) { ... }
  • for...in 循环用来遍历对象
  • for...in 循环会跳过不可遍历的 key
  • for…in 循环不仅遍历对象自身的属性,还遍历继承的属性
  • with语句的一个很大的弊病就是绑定对象不明确。建议尽量不要使用with语句.但是在某些特殊需求下,with 还是有用的.

相关文章

网友评论

      本文标题:JavaScript综合笔记3<高程+阮一峰+饥人谷>

      本文链接:https://www.haomeiwen.com/subject/vwpmbxtx.html