读书笔记《JavaScript DOM编程艺术》
2.1 程序设计语言
-
编译型
-
需要一个编译器
-
一种程序
-
能够把高级语言编写出来的源代码翻译为直接在计算机上执行的文件
-
e.g. Java源文件翻译为字节码 .class文件
-
-
e.g. java、C++ 等
-
-
解释型
- 不需要编译器,但需要解释器
- e.g. JavaScript
- Web浏览器负责完成有关的解释和执行工作
- 浏览器中的 JavaScript 解释器将直接 读入源代码 并 执行
-
区别
- 编译型语言编写的代码有误,在代码编译阶段就能被发现
- 解释型语言代码中的错误,只能等到解释器执行到有关代码时才能被发现
- 与解释型语言相比,编译型语言速度更快,可移植性更好,但它们的学习曲线往往相当陡峭(比较难)
2.2 语句
-
JavaScript脚本 放置位置
1、内置/内嵌 <script> JavaScript codes </script> 2、外部引用 <script src="file.js" type="text/javascript"></script> <1> 头部<head></head>标签里 <2> 文档尾部</body>标签前
<script> 标签里的type=“text/javascript” 为默认,可省略
-
注释
- 单行
//我是注释
- 多行
/*我是注释 我还是注释*/
-
一些概念
- 语法:语言结构方面的各项规则
- 语句:一系列指令
- 变量:会变化的东西
- 赋值:把值存入变量的操作
- 声明:在变量使用前必须对它做出“介绍”
- 作用域:局部变量、全局变量、二义性隐患
- 标量:如果某个变量是标量,其任意时刻只能有一个值,且该值自从定义后不可修改
命名规范
- 允许包含字母、数字、美元符号和下划线
- 第一个字符不允许是数字
- 变量名 —— 下划线命名
- 函数名、方法名和对象属性名 —— 驼峰式命名
数据类型
-
基本数据类型
- 字符串 String
- 包含在 单引号 或 双引号 里
- 同时出现单引号和双引号
- 单引号、双引号相互包含:
var mood = "don't ask"
- 采用转义:
var mood = 'don\'t ask'
- 单引号、双引号相互包含:
- 数值 Number
- 整数
- 浮点数
- 布尔值 Boolean
- 取值:true、false
- 所有的电子电路只能识别和使用布尔值
- 空 Null
- 未定义 Undefined
- Symbol
- 字符串 String
-
基本数据类型
-
数组 Array
- 用一个变量存储一组数,表示一个值的集合
- 声明
- 关键字 Array:
var beatles = Array();
- 简略方式 —— 方括号:
var beatles = [1,'apple',3];
- 可指定长度(不指定也可):
var beatles = Array(2);
- 关键字 Array:
- 关联数组【P17~18】
- 类 Java 和 C 的多维数组
- 数组的元素也是数组,多层嵌套
- 下标查找
-
对象 Object
-
也是用一个名字存放一组数
-
存放数据的首选方式:将数据保存为数组
-
创建
-
关键字 Object
var lennon = Object(); lennon.name = 'MR'; lennon.age = 19;
-
简略方式 —— 花括号:
var lennon = {name: 'MR',age: 19}
-
-
点式查找
-
-
函数 Function
-
一组允许在代码中随时调用的语句【先定义再调用】
-
创建
//1、用function语句定义函数 function funName(arguments){ statements; return xxx; } //2、使用Function()构造方法定义函数(不常用) var funName = new Function('arguments',...,'statements'); e.g. var fun = new Function("x","y","z = x+y; return z"); //3、函数表达式 /*JavaScript函数可以通过一个表达式定义,函数表达式可以存储在变量中*/ var funName = function(arguments){ statements }; funName(arguments); //调用
-
-
功能
1. 接收数据:传参 2. 返回数据 - 作为一种数据类型使用 - 将函数的调用结果赋给一个变量
-
操作
-
概念:进行数据的计算和处理
-
算术操作(以下为一些操作符)
- 加 +
- 数值相加
- 字符串拼接 => 数值和字符串相加拼接成字符串
- 减 -
- 乘 *
- 除 /
- 求余 %
- 赋值 =
- 先加后赋值 +=(同理有:-=、*=、/=)
- 加 +
-
比较操作
-
>
-
>=
-
<
-
<=
-
== 相等
-
=== 恒等
== 和 === 的区别
-
== 仅仅比较值
-
=== 比较值和变量的数据类型
-
特别的
JavaScript中的 == 认为空字符串和false的含义相同
var a = false; var b = ""; if(a == b){ alert("a equals b"); } /*在 == 的情况下会有alert弹出*/
-
-
-
逻辑操作
- 逻辑与 &&
- 逻辑或 ||
- 逻辑非 !
语句
- 条件语句
- if…else
- 循环语句
- while
- do…while 至少执行一次
- for 最常见的用途:对元素进行遍历处理
- foreach
对象
-
定义:是自包含的数据集合
- 包含在对象里的数据的两种访问形式
- 属性:隶属于某个特定对象的变量
- 方法:只有某个特定对象才能调用的函数
- 是由一些属性和方法组合在一起而构成的一个数据实体
- 包含在对象里的数据的两种访问形式
-
对象的实例
- new关键字
-
-
用户自定义对象:由程序员自行定义的对象
-
内建对象:
-
由JavaScript语言提供的对象(内建在JavaScript语言里的对象)
e.g. Array、Math、Date等
//创建一个Array对象的新实例 var beatles = new Array();
-
-
宿主对象
- 由运行环境提供的对象
- 环境:浏览器
- 由浏览器提供的预定义对象
- Form、Image、Element、document等
- 由运行环境提供的对象
-