File tree Expand file tree Collapse file tree 5 files changed +274
-52
lines changed
Expand file tree Collapse file tree 5 files changed +274
-52
lines changed Original file line number Diff line number Diff line change 1- ## 在 HTML 中使用 JavaScript
1+ # 在 HTML 中使用 JavaScript
22
3- ### 1、` <script> ` 标签的位置
3+ ## 1、` <script> ` 标签的位置
44
55按照惯例` <script> ` 标签应该放在页面的` <head> ` 元素中,例如:
66
4141</html >
4242```
4343
44- ### 2、script 标签属性
44+ ## 2、script 标签属性
4545
4646` <script> ` 标签在HTML4.01中定义了6个属性:
4747
48- #### 必须属性:
48+ ### 必须属性:
4949- type: 指示脚本的 MIME 类型
5050
51- #### 可选属性:
51+ ### 可选属性:
5252- defer: 规定是否对脚本执行进行延迟,直到页面加载为止
5353- async: 规定异步执行脚本(仅适用于外部脚本)。
5454- charset: 规定在外部脚本文件中使用的字符编码。
5555- language: 已废弃,请使用 type 属性代替它。
5656- ** src: 规定外部脚本文件的 URL(跨域运用了这个属性可访问其他域的特性)**
5757
58- #### 结论
58+ ### 结论
5959最稳妥的办法还是把` <script> ` 写在` <body> ` 底部,** 没有兼容性问题,没有白屏问题,没有执行顺序问题** ,高枕无忧,慎用defer和async,这要是为什么这两个属性不流行的原因。
Original file line number Diff line number Diff line change 1- ## JavaScript 基本概念-基础数据类型
1+ # JavaScript 基本概念-基础数据类型
22
3- ### 1、基本数据类型
3+ ## 1、基本数据类型
44
55ECMAScript 有 5 种原始类型(primitive type),即 Undefined、Null、Boolean、Number 和 String。
66
7- #### typeof 运算符
7+ ### typeof 运算符
88
99** 对变量或值调用 typeof 运算符将返回下列值之一:**
1010
@@ -16,9 +16,9 @@ ECMAScript 有 5 种原始类型(primitive type),即 Undefined、Null、Bo
1616
1717注释:您也许会问,为什么 typeof 运算符对于 null 值会返回 "Object"。这实际上是 JavaScript 最初实现中的一个错误,然后被 ECMAScript 沿用了。现在,null 被认为是对象的占位符,从而解释了这一矛盾,但从技术上来说,它仍然是原始值。
1818
19- #### Number 类型
19+ ### Number 类型
2020
21- ##### 特殊的 Number 值
21+ #### 特殊的 Number 值
2222> 几个特殊值也被定义为 Number 类型。前两个是 Number.MAX_VALUE 和 Number.MIN_VALUE,它们定义了 Number 值集合的外边界。所有 ECMAScript 数都必须在这两个值之间。
2323>
2424> 事实上,有专门的值表示无穷大,(如你猜到的)即 Infinity。Number.POSITIVE_INFINITY 的值为 Infinity。Number.NEGATIVE_INFINITY 的值为 -Infinity。
@@ -27,7 +27,7 @@ ECMAScript 有 5 种原始类型(primitive type),即 Undefined、Null、Bo
2727
2828** NaN 也不能用于算术计算。NaN 的另一个奇特之处在于,它与自身不相等**
2929
30- #### Object 类型
30+ ### Object 类型
3131
3232ECMAScript 中的对象其实就是一组数据和功能的集合。对象可以通过执行new操作符后跟要创建的对象类型的名称来创建。而创建Object类型的实例并为其添加属性和(或)方法,就可以创建自定义对象,如下所示:
3333
@@ -41,7 +41,7 @@ var o = new Object; // 有效,但不推荐
4141** 这里有一个重要的思想:**
4242在ECMAScript中,Object类型是所有他的实例的基础。换句话说,Object类型所具有的任何属性和方法也同样存在于更具体的对象中。
4343
44- ##### Object的每个实例都有下列属性和方法。
44+ #### Object的每个实例都有下列属性和方法。
4545
4646- Constructor:构造函数;保存着用于创建当前对象的函数。
4747- hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中(而不是在实例的原型中)是否存在。其中,作为参数的属性名(propertyName)必须以字符串形式指定(例如:o.hasOwnProperty(* name* ))。
Original file line number Diff line number Diff line change 1- ## JavaScript 基本概念-函数
1+ # JavaScript 基本概念-函数
22
3- ### 1、理解参数
3+ ## 1、理解参数
44
55ECMAScript 函数的一个重要特点: 命名的参数只提供便利,但不是必须的。另外在命名参数方面,其他语言可能需要事先创建一个函数签名(即形参),而将来的调用必须与该签名一致。但在ECMAScript中,没有这些条条框框,解析器不会验证命名参数。运用这一特性,可实现函数的“重载”。
66
@@ -30,17 +30,17 @@ doAdd(10)
3030
3131```
3232
33- #### 注意:
33+ ### 注意:
3434** ECMAScript 中的所有参数传递的都是值,不可能通过引用传递参数。**
3535
3636
3737
38- ### 2、没有重载
38+ ## 2、没有重载
3939
4040ECMAScript 函数不能像传统意义上那样实现重载。而在其他语言中,可以为一个函数编写两个定义,只要这两个定义的签名(接受的参数的类型和数量)不同即可。ECMAScript函数没有签名,因为其参数是由包含零或多个值的数组来表示的。而没有函数签名,真正的重载是不可能做到的。
4141
4242
43- ### 小结:
43+ ## 小结:
4444ECMAScript 中的函数与其他语言中的函数有诸多不同之处。
4545- 无须指定函数的返回值,因为任何 ECMAScript 函数都可以在任何时候返回任何值。
4646- 实际上,未指定返回值的函数返回的是一个特殊的undefined值。
Original file line number Diff line number Diff line change 1- ---
2- title : JavaScript 变量、作用域、内存问题
3- ---
1+ # JavaScript 变量、作用域、内存问题
42
5- ## JavaScript 变量、作用域、内存问题
63
7- ### 一、变量:基础类型和引用类型的值
84
9- #### 1、动态的属性
5+ ## 一、变量:基础类型和引用类型的值
6+
7+
8+
9+ ### 1、动态的属性
1010定义基本类型的值和引用类型值的方式时类似的:创建一个变量并为该变量赋值。
1111- 引用类型:我们可以为添加/修改/删除属性和方法。
1212
@@ -24,14 +24,18 @@ name.age = 27;
2424alert(name.age); // undefined
2525```
2626
27- #### 2、复制变量值
27+
28+
29+ ### 2、复制变量值
2830
2931这里就出现了我们熟悉的知识点:对象引用的概念。
3032基本类型:复制是值复制(复制的是值的副本);
3133引用类型:复制是引用复制(复制的是引用指针的副本,实际的值还是同一个);
3234
3335
34- #### 3、传递参数
36+
37+
38+ ### 3、传递参数
3539
3640** ECMAScript中所有的函数的参数都是按值传递的。**
3741把函数外部的值复制给函数内部的参数,就和把值从一个变量复制到另一个变量一样。基本类型值的传递如同基本类型变量的复制一样,引用类型的传递,则如同引用类型变量的复制一样。
@@ -64,14 +68,19 @@ alert(person.name); // "Wjh"
6468> 可以把 ECMAScript 函数的参数想象成局部变量。
6569
6670
67- #### 4、检测类型
71+
72+
73+ ### 4、检测类型
6874
6975在检测基本数据类型时 typeof 是非常得力的助手,但在检测引用类型的时候,这个操作符就用处不大了。这就用到了下一个操作符:instanceof。
7076
7177``` javascript
7278result = variable instanceof constructor
7379```
74- ### 二、垃圾收集
80+
81+
82+
83+ ## 二、垃圾收集
7584
7685JavaScript 是一门具有自动垃圾收集机制的编程语言,开发人员不必关心内存分配和回收问题。可以对JavaScript的垃圾收集例程做如下总结。
7786
You can’t perform that action at this time.
0 commit comments