### HTML+CSS+JavaScript 基础使用
#### JavaScript 的定义和特点
##### 特点概述
JavaScript 是一种直译式的脚本语言,其特点包括动态类型、弱类型及基于原型的语言特性。JavaScript 支持多种内置数据类型,并且可以在不需要预编译的情况下直接在浏览器中运行。
1. **动态类型**:JavaScript 变量可以在运行时改变其类型。
2. **弱类型**:变量的数据类型会在赋值或运算时自动确定。
3. **基于原型**:JavaScript 中的对象可以通过其他对象来创建,这些对象充当原型,可以继承属性和方法。
##### 作用
- 实现表单数据校验
- 实现页面元素的动态切换(例如 TAB 菜单)
- 切换背景
- 开发简单的网页游戏
##### 优缺点
**优点**:
- **脚本语言**:易于编写,无需编译即可执行。
- **基于对象**:虽然不完全支持面向对象的特性(如继承),但可以使用对象。
- **事件驱动**:能够响应用户操作。
- **易学性**:使用弱类型,变量声明灵活。
- **安全性**:限制了对本地文件系统的访问。
- **跨平台性**:依赖于浏览器而非操作系统。
**缺点**:
- 不同浏览器对 JavaScript 的支持程度不同,可能会影响兼容性和显示效果。
#### JavaScript 的声明和引入
##### 引入方式
1. **内联**:直接在 HTML 元素中使用 `on` 大事属性。
2. **内部脚本**:在 `<script>` 标签内嵌入 JavaScript 代码。
3. **外部脚本**:通过 `<script src="path/to/file.js" type="text/javascript"></script>` 引入外部文件。
##### 综合书写问题
不同类型的 JavaScript 代码不能混合在同一 `<script>` 标签中,否则会导致语法错误。
##### `type` 和 `charset` 属性
- **type="text/javascript"**:指定 `<script>` 内容的 MIME 类型,默认为 `text/javascript`,现代浏览器已默认识别。
- **charset="UTF-8"**:指定 JavaScript 文件的字符编码,确保代码正确解析。
#### JavaScript 中的变量
1. **变量名区分大小写**:例如 `vara` 和 `VarA` 是不同的变量。
2. **分号**:虽然不是必须的,但推荐使用分号来明确表示语句的结束。
3. **变量命名规范**:
- 遵循 JavaScript 的标识符规则。
- 变量名可以重复,但后声明的变量会覆盖之前的声明。
- 最好在每一行结束时添加分号。
#### 数据类型
- **基本数据类型**:`Number`、`String`、`Boolean`。
- **对象类型**:`Object`。
- **特殊数据类型**:`Undefined`、`NaN`、`Null`。
1. **NaN (Not a Number)**:表示不是一个数字,常在将非数字字符串转换为数字失败时出现。
2. **Undefined**:表示未定义的值,即声明了变量但未赋予初始值。
3. **Null**:表示空对象指针,用于表示一个空值。
#### 运算符
- **等值运算符 (==)**:只比较值,类型不同会尝试转换为相同类型再比较。
- **严格等值运算符 (===)**:比较值和类型,类型不同则直接返回 false。
示例:
```javascript
var f1 = false;
var f2 = "false";
var f3 = 0;
var f4 = "0";
console.log(f1 == f2); // false, 类型不同
console.log(f1 == f3); // true, 类型转换后比较
console.log(f1 == f4); // true, 类型转换后比较
console.log(f2 == f3); // false, 类型不同
console.log(f2 == f4); // false, 类型不同
console.log(f3 == f4); // true, 数值相同
console.log(f1 === f2); // false, 类型不同
console.log(f1 === f3); // false, 类型不同
```
通过上述内容,我们对 HTML、CSS 以及 JavaScript 的基础知识有了较为全面的理解,这对于入门 Web 开发是非常重要的第一步。接下来的学习过程中,建议进一步深入学习每一种技术的具体应用和高级特性,以便更好地掌握 Web 开发的核心技能。