"JavaScript基础教程笔记"
在JavaScript中,基础知识是构建强大应用的基石。以下是一些关于JavaScript核心概念的详细讲解:
1. **null 和 undefined**
- `null` 是一个特殊的值,表示“无”或“空值”,它被认为是一种原始值。当你尝试对 `null` 进行数学运算时,它会保持不变,例如 `null + 1` 仍为 `null`。
- `undefined` 表示变量未定义或函数没有返回值。在数学运算中,`undefined` 与任何数值相加都会保持为 `undefined`。
2. **typeof 检查类型**
- `typeof` 操作符用于确定变量的数据类型。例如,当通过 `prompt` 获取用户输入并将其存储在变量 `age` 中时,`console.log(typeof(age))` 将显示 `string`,因为 `prompt` 返回的是字符串类型。
3. **数据类型转换**
- **转换为字符串类型**:可以使用 `.toString()` 方法,`String()` 函数,或者通过字符串拼接(`num + ""`)将值转换为字符串。
- **转换为数字类型**:`parseInt()` 用于整数转换,`parseFloat()` 用于浮点数转换。例如,`parseInt('120px')` 会忽略 'px' 并返回整数 120,而 `parseFloat('rem120')` 会返回 `NaN`,因为 'rem' 不是可解析的数字。此外,`Number()` 函数也可以用于强制转换,而隐式转换如 `'12' - 0` 或 `'123' - '120'` 会将字符串转换为数字进行计算。
- **转换为布尔类型**:使用 `Boolean()` 函数,需要注意的是,`null`,`undefined`,空字符串 `''`,0,`NaN` 被视为假性值,转换为 `false`,其他值(包括非零数字和非空字符串)被视为真性值,转换为 `true`。
4. **函数**
- **形参与实参**:函数调用时,如果实参数量多于形参,多余的实参会被忽略。如果少于形参,未被赋值的形参将为 `undefined`,如 `getSum(1)` 会导致 `n2` 为 `undefined`,进而 `1 + undefined` 返回 `NaN`。
- **函数返回值**:如果函数没有 `return` 语句,那么函数调用的结果将是 `undefined`。
- **Arguments 对象**:函数内部有一个名为 `Arguments` 的内置对象,它类似于数组,包含了所有传入函数的实际参数。`Arguments` 对象有 `length` 属性,可以通过索引来访问每个参数。但是,它不包含数组的方法,如 `push` 和 `pop`。例如,函数 `sum(1, 2, 3)` 中的 `arguments` 对象将是 `[1, 2, 3, callee, f]`,其中 `callee` 是指向当前函数的引用,`f` 可能是函数执行上下文中的其他变量。
理解这些基础概念是深入学习JavaScript的关键,它们构成了编写高效、健壮代码的基础。在实际开发中,熟练掌握这些知识将有助于避免许多常见错误,并提高代码质量。