# JavaScript 编程基础
# 1. 基础知识
JavaScript 是一种可以用来给网页增加交互性的编程语言。
JavaScript 脚本也是一种程序,它们包含在
- HTML 页面内部(原先编写脚本的方式),或者
- 驻留在外部文件中(现在的首选方法)。
<script type="text/javascript" src="js/hello.js"></script>
<script type="text/javascript">
xxx;
xxx;
xxx;
</script>
在 HTML 页面上,因为脚本文本包围在 <script>
标签中,所以它不会显示在用户的屏幕上,而 Web 浏览器知道应该运行 JavaScript 程序。
<script> 标签常常放在 HTML 页面的 <head> 部分中。但是如果愿意,也可以将脚本放在 <body> 部分中。
# 2. 值和变量
值类型:
类 型 | 描 述 |
---|---|
数字 | 任何数字值 |
字符串 | 引号中的字符 |
布尔值(Boolean) | true 或 false |
空值(null) | 空且无含义 |
对象 | 与对象相关联的任何值 |
函数 | 函数返回的值 |
typeof 操作符是用来检测变量的数据类型。对于值或变量使用 typeof 操作符会返回如下字符串:
类型字符串 | 说明 |
---|---|
'undefined' | 未定义。表示该变量从未被赋过值。 |
'boolean' | 布尔值 |
'string' | 字符串 |
'number' | 数值 |
'object' | 表示对象,或 null。注意,如果变量的值为 null,此处也是返回 object,表示空对象。 |
'function' | 函数。函数是对象的一种,但又是极特殊的一种。 |
# 3. 定义变量
要在 JavaScript 中定义变量,需要使用 var 关键字,然后为变量指定一个名字。
var str1;
var str2 = "hello world";
JavaScript 是区分大小写的。这意味着 HELLO
、hello
、Hello
并不相同。
作为动态语言,JavaScript 中变量的类型随着其所存储的数据的类型而变化。
JS 中的 基本数据类型 只有三种:数字、字符串 和 布尔值 。
var tmp1 = 10;
var tmp2 = "hello world";
var tmp3 = true;
注意
- JS 不区分 整数 和 浮点数 。
- JS 中也没有 字符 类型。
JavaScript 中数组变量的声明不需要 []
符号,语法仍然是 var 变量名;
的形式,不过初始化还是 = [xxx, xxx, xxx]
的形式。
JavaScript 中多出一个 undefined 关键字,如果对一个变量从未赋过值,那么该变量的类型就是 undefined 类型。
JS 中多出一个判断运算符 ***===***,它被称为『严格判等运算符』。还是因为变量类型的原因,JS 中允许出现两个变量 “类型不一样,但值一样” 的情况(这一点是 Java 中所没有的)。而严格判等运算符要求两个变量类型和值都必须一样。
注意
undefined 是派生自 null 的,因此 JavaScript 中对它们的相等性测试(==)会返回 true。常用的比较“套路”是结合 typeof 比较:alert(typeof xx == typeof yy)
# 4. 运算符
略
# 5. 条件查询与布尔测试
条件执行是指程序在只有某些条件为真时,才执行一条语句。在 JavaScript 语言中,使用 if 语句进行条件执行。
注意
块语句(虽然看起来一大坨)也是一条语句!
if 语句的常规形式如下,其中 else 条件是可选的:
if (布尔表达式)
一条语句
else
一条语句
- 如果布尔表达式的值是真(true),那么第一条语句会被执行。如果布尔表达式的值是假(false),那么执行的就是第二条语句。
另外,if 语句(无论是否有 else 部分)整体也算一条语句!
# 5. 分支与循环
略
# 6. 数组
本质上,JavaScript 没有所谓的『数组』,JavaScript 中的数组实际上就是一个对象。
每个数组都有一个 length 属性。和其他语言不一样,JavaScript 数组的 length 是没有上界的。
如果使用大于或等于 length 的数组作为下标,那么 length 将增大来容纳新元素。
你可以直接设置 length 的值。设置为更大的值时,系统无须给数组分配更多的空间。设置为更小的值时,所有下标大于或等于 length 的属性都被删除。
length 属性的值是数组最大下标加 1 。它不一定等于数组里元素的个数。
数组更多的内置方法参见官方 API 文档。
# 7. 函数
函数的定义包括:function 关键字、描述函数用途的名字、包含在 () 中的 0 个和多个参数的列表,以及由一条或多条代码语句组成的块。
JavaScript 中函数和方法的声明不需要声明函数/方法返回值类型,形参中的 var 关键字也可以省略。
JavaScript 中函数/方法是“一等公民”可以对变量赋值,自然也可以作为参数和返回值。
没有名字的函数被称为匿名函数,常用于对变量的赋值。
function myFunction() {
console.info("hello world");
}
# 8. 变量的作用域
略