第一章 JavaScript简介
bom(浏览器对象模型)
Browser object model:支持访问和操作浏览器窗口
的浏览器对象模型
第二章 在HTML中使用JavaScript
Script标签的解析顺序
- 只要不包含defer和async属性,script标签都是按需解析。只要当第一个script标签解析完毕后,才会解析第二个srcipt
第三章 基本概念
null
在逻辑上表示一个空对象指针,因此typeof null
的值为object
- ES并不能保存所有的整数,从
MIN_VALUE
到MAX_VALUE
。一旦超出就会变成Infinity
,Infinity
不能参与数字运算 - isNaN方法可以用于对象,会调用valueOf方法,如果调用失败,会调用toString方法
- js函数的参数都是使用数组来表示的,因此任何一个函数都可以传入任何多个参数
1 | function sayHi() { |
第四章 变量,作用域和内存问题
除了undefined,null,boolean,number,string,其他所有类型都是引用类型。引用类型的值都是按引用访问的。(也就是Python里的可变对象)
1
2
3var person = new Object()
person.name = "myl"
alert(person.name)在表现上,和python一样,js的函数参数基本类型是值传递,引用类型是引用传递。
但是实际上,JS的函数参数永远都是值传递。只是创建一个obj的时候,obj也会按引用来访问同一个对象
1
2
3
4
5
6
7
8
9class Person:
pass
def changeName(p):
p.name = "heyingliang"
p = Person()
changeName(p)
print(p.name) # heyingliang1
2
3
4
5
6
7
8// 新创建一个obj,但是这个obj引用person
function setName(obj){
obj.name = "hyl"
}
var person = new Object();
setName(person)
alert(person.name) // hyl一般使用typeof判断基本数据类型,使用instanceof判断引用类型
1
2
3
4
5
6s = "hyl"
typeof s
person instanceof Object
colord instanceof Array
pettern instanceof RegExp