2026.07.06
This commit is contained in:
@@ -1,3 +1,18 @@
|
||||
## name 变量名与 window.name
|
||||
|
||||
```js
|
||||
// 假设你想声明一个数字类型的 name
|
||||
var name = 123;
|
||||
|
||||
// 你以为它是数字,但它其实变成了字符串
|
||||
console.log(typeof name); // 输出: "string" ❌
|
||||
console.log(name + 1); // 输出: "1231" (字符串拼接,而不是数学加法) ❌
|
||||
```
|
||||
|
||||
在浏览器中,`var name = 123;` 实际上等同于 `window.name = 123;`。而 `window.name` 是一个内置属性,浏览器在底层会强制调用 `String(123)`,将其变为 `"123"`。
|
||||
|
||||
参考:[Window: name property - Web APIs | MDN](https://developer.mozilla.org/en-US/docs/Web/API/Window/name)
|
||||
|
||||
## 交互:alert、prompt 和 confirm
|
||||
|
||||
```js
|
||||
@@ -226,7 +241,9 @@ alert( undefined == 0 ); // false
|
||||
|
||||
JavaScript 中有四个逻辑运算符:`||`(或),`&&`(与),`!`(非),`??`(空值合并运算符)。
|
||||
|
||||
### 或运算寻找第一个真值
|
||||
### 或运算
|
||||
|
||||
或运算:寻找**第一个真值**或**最后一个假值**。
|
||||
|
||||
一个或运算 `||` 的链,将返回第一个真值,如果不存在真值,就返回该链的最后一个值。
|
||||
|
||||
@@ -252,7 +269,9 @@ true || alert("not printed");
|
||||
false || alert("printed");
|
||||
```
|
||||
|
||||
### 与运算寻找第一个假值
|
||||
### 与运算
|
||||
|
||||
与运算:寻找第一个假值或最后一个真值
|
||||
|
||||
```js
|
||||
// 如果第一个操作数是真值,
|
||||
@@ -410,3 +429,63 @@ alert( doNothing() === undefined ); // true
|
||||
```
|
||||
|
||||
## 函数表达式
|
||||
|
||||
在 JavaScript 中,函数不是“神奇的语言结构”,而是一种特殊的值。
|
||||
|
||||
函数声明语法:
|
||||
|
||||
```js
|
||||
function sayHi() {
|
||||
alert( "Hello" );
|
||||
}
|
||||
|
||||
alert(sayHi); // 显示函数代码
|
||||
```
|
||||
|
||||
函数表达式语法:
|
||||
|
||||
```js
|
||||
let sayHi = function() {
|
||||
alert( "Hello" );
|
||||
};
|
||||
|
||||
alert(sayHi); // 显示函数代码
|
||||
```
|
||||
|
||||
### 回调函数
|
||||
|
||||
```js
|
||||
function ask(question, yes, no) {
|
||||
if (confirm(question)) yes()
|
||||
else no();
|
||||
}
|
||||
|
||||
function showOk() {
|
||||
alert( "You agreed." );
|
||||
}
|
||||
|
||||
function showCancel() {
|
||||
alert( "You canceled the execution." );
|
||||
}
|
||||
|
||||
// 用法:函数 showOk 和 showCancel 被作为参数传入到 ask
|
||||
ask("Do you agree?", showOk, showCancel);
|
||||
```
|
||||
|
||||
### 与函数声明区别
|
||||
|
||||
函数表达式是在代码执行到达时被创建,并且仅从那一刻起可用。
|
||||
|
||||
函数声明则不同,在函数声明被定义之前,它就可以被调用。这是内部算法的缘故。当 JavaScript 准备 运行脚本时,首先会在脚本中寻找全局函数声明,并创建这些函数。
|
||||
|
||||
## 箭头函数
|
||||
|
||||
```js
|
||||
let func = (arg1, arg2, ..., argN) => expression;
|
||||
|
||||
|
||||
let func = function(arg1, arg2, ..., argN) {
|
||||
return expression;
|
||||
};
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user