介绍
JS:解释型程序语言,仅需要解释器,由浏览器进行解释执行
解释方式
-
<head>的<script>
中放源代码 -
<head>的<script>中用src属性
链入.js文件 <body>的最后放<script>
- 火狐浏览器中Firebug插件
- 浏览器开发者选项
词法结构
1.字符集
Unicode字符集
UTF-16编码, 一般每个字符由16位内码表示
区分大小写
2.注释
//注释内容
/*注释内容*/
-
<!-注释内容
(不推荐)
3.直接量
- 整数、浮点数、字符串、布尔值、正则表达式、数组、对象
- 字符串文本可用
''
或""
包围
4.标识符和保留字
标识符
- 区分大小写
- 内容:字母数字下划线$,无标点符号和空格,数字不打头
- 格式规范:下划线用于变量名 驼峰用于函数名
- 可使用非英语语言来书写标识符(Unicode)
保留字
- 不可当一般标识符使用
5.分号
- 分号是可以省略的
- 不是有换行JS就填补分号,而是JS无法正确解析代码时才填补分号
类型、值和变量
值有不同的类型,变量是值的符号表示。
1.数字
- 整型:多种进制表示
- 浮点型:指数表示、一般表示
2.文本
- 用字符串类型表示文本
- 用
''
或""
包围字符串直接量 -
\
:用于转义;用于多行拼写直接量(ECMAScript 5) -
+
:可用于拼接字符串 - 常用属性:length
- 常用方法:
3.布尔值
- 值:true 、false
4.null和undefined
表示值的空缺。
- 区别
区别 | null | undefined |
---|---|---|
数据类型 | object | undefined |
地位 | 关键字 | 预定义的全局变量 |
含义 | 变量没有初始化、属性或元素不存在 |
- 共同点:都没有属性和方法
5.全局对象
6.包装对象
为什么原始类型也有属性和方法,因为引用其属性和方法时,JS隐式创建了一个临时对象用于引用,引用结束时该对象便被销毁。这种对象被称为包装对象。
- 给属性赋值无效,因为是给会被摧毁的临时对象赋值
声明和赋值
- var声明变量
- JS是弱类型语言,声明变量时无需声明其类型
- 赋值前未声明变量则自动声明,但是声明变量更规范
3.数据类型
字符串
- 引号包围内容,
‘’ 和“”
都可以 -
\
用于转义,以防内容里含有引号时出现语法错误
数值型
布尔型
- 值为true 和false,不是字符串
数组
- 用
Array()
创建数组,括号内可加数组长度 - 下标0开始
- 赋值
类型 | 内容 |
---|---|
赋值 | 数组名[下标] = 元素内容 |
声明赋值 | var array_name = Array(element1, element2, ... ,element n); |
声明赋值 | var array_name = [element1, element2, ... ,element n]; |
- 元素内容可以为字符串、数值、布尔值、变量、数组元素、数组
- *不推荐的关联数组
对象
- 声明与赋值
- 用
Object()
创建对象,具有属性和方法,用new关键字创建实例 - 赋值
- 用
类型 | 内容 |
---|---|
赋值 | object_name.属性 = 属性值; |
声明赋值 | var object_name = {属性1:属性值,属性2:属性值,... ,属性n:属性值}; |
- 内建对象:JS预先定义好的对象
- Array
- Math
- Date
- 宿主对象:浏览器(运行环境)预先定义好的对象
- document
属性 | 含义 |
---|---|
cookie | 设置或返回与当前文档有关的所有 cookie。 |
domain | 返回当前文档的域名。 |
方法 | 作用 |
---|---|
getElementById() | 返回对拥有指定 id 的第一个对象的引用。 |
getElementsByName() | 返回带有指定名称的对象集合。 |
getElementsByTagName() | 返回带有指定标签名的对象集合。 |
write() | 向文档写 HTML 表达式 或 JavaScript 代码。 |
writeln() | 等同于 write() 方法,不同的是在每个表达式之后写一个换行符。 |
4. 操作
算数操作符
-
+
:作用字符时用于拼接,作用数值时用于求和,同时作用时用于拼接(总不能把字符转成数值)
比较操作符
操作符 | 作用 |
---|---|
== | 比较内容 false 和空字符串""相等 |
=== | 比较数据类型和内容 |
逻辑操作符
5.分支语句
类型 | 语句 |
---|---|
条件 | if、if else |
循环 | while、do...while、for |
6. 函数
- 关键字:function
- 函数里用var声明的变量为局部变量,直接用的为全局变量
参考书籍
《JavaScript DOM 编程艺术 第二版》