2026.07.06

This commit is contained in:
2026-07-06 21:56:17 +08:00
parent 00163f484e
commit c9d0dfc779

View File

@@ -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 ## 交互alert、prompt 和 confirm
```js ```js
@@ -226,7 +241,9 @@ alert( undefined == 0 ); // false
JavaScript 中有四个逻辑运算符:`||`(或),`&&`(与),`!`(非),`??`(空值合并运算符)。 JavaScript 中有四个逻辑运算符:`||`(或),`&&`(与),`!`(非),`??`(空值合并运算符)。
### 或运算寻找第一个真值 ### 或运算
或运算:寻找**第一个真值**或**最后一个假值**。
一个或运算 `||` 的链,将返回第一个真值,如果不存在真值,就返回该链的最后一个值。 一个或运算 `||` 的链,将返回第一个真值,如果不存在真值,就返回该链的最后一个值。
@@ -252,7 +269,9 @@ true || alert("not printed");
false || alert("printed"); false || alert("printed");
``` ```
### 与运算寻找第一个假值 ### 与运算
与运算:寻找第一个假值或最后一个真值
```js ```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;
};
```