diff --git "a/20251110-JS\345\237\272\347\241\200\350\257\255\346\263\225\344\270\216\347\254\254\344\272\214\347\253\240\344\275\234\344\270\232..md" "b/20251110-JS\345\237\272\347\241\200\350\257\255\346\263\225\344\270\216\347\254\254\344\272\214\347\253\240\344\275\234\344\270\232..md" new file mode 100644 index 0000000000000000000000000000000000000000..ec19ac74d2d9302ae3af6ae6a59608aad2aa1b74 --- /dev/null +++ "b/20251110-JS\345\237\272\347\241\200\350\257\255\346\263\225\344\270\216\347\254\254\344\272\214\347\253\240\344\275\234\344\270\232..md" @@ -0,0 +1,41 @@ +## JS基础语法 + +1. 变量声明(ES5 vs ES6) +变量是存储数据的容器,JS 有三种声明方式,推荐优先使用 let 和 const(ES6+),避免 var 的缺陷。 + +- 声明方式 | 作用域 | 重复声明 | 变量提升 | 初始值要求 +- var | 函数 / 全局作用域 | 允许 | 有(值为 undefined) | 可选 +- let | 块级作用域({} 内) | 不允许 | 无(暂时性死区) | 可选 +- const | 块级作用域 | 不允许 | 无(暂时性死区) | 必须赋值 + +2. 数据类型 + - JS 是弱类型语言(变量类型可动态变化),分为两大类: +- (1) 基本数据类型(7 种,值存储在栈中) + - string:字符串(如 'abc'、"123") + - number:数字(整数 / 浮点数,如 10、3.14,特殊值 NaN、Infinity) + - boolean:布尔值(true/false) + - null:空值(表示 “无”,主动赋值) + - undefined:未定义(变量声明未赋值时的默认值) + - symbol:唯一标识(ES6+,如 Symbol('key')) + - bigint:大整数(ES10+,处理超大数据,如 10n) +- (2)引用数据类型(值存储在堆中,变量存地址) + - object:对象(如 {name: '张三'}) + - array:数组(如 [1,2,3]) + - function:函数(如 function() {}) + - 其他内置对象(Date、RegExp 等) + +3. 注释(代码说明,不执行) + - 单行注释:// 注释内容(常用) + - 多行注释:/* 注释内容 */(块级注释) + +4. 语句结构(控制代码流程) +- (1)条件语句 + - if-else:适合 2-3 个分支 + - switch:适合多分支(匹配全等 ===) +- (2)循环语句 + - for:适合已知循环次数 + - while:适合未知循环次数(先判断后执行) + - do-while:先执行后判断(至少执行 1 次) +- (3)循环控制 + - break:跳出当前循环 /switch + - continue:跳过当前循环的剩余部分,进入下一次循环 \ No newline at end of file diff --git "a/20251112-\350\277\220\347\256\227\347\254\246.md" "b/20251112-\350\277\220\347\256\227\347\254\246.md" new file mode 100644 index 0000000000000000000000000000000000000000..32cce678fbae74f283ac7a981cd7e71d20164e7b --- /dev/null +++ "b/20251112-\350\277\220\347\256\227\347\254\246.md" @@ -0,0 +1,47 @@ +## 运算符 + +1. 算术运算符(处理数字运算) +运算符 功能 示例 结果 ++ 加法 / 字符串拼接 10 + 20 / 'a' + 'b' 30 / "ab" +- 减法 20 - 5 15 +* 乘法 3 * 4 12 +/ 除法(浮点数) 10 / 3 3.333... +% 取模(余数) 10 % 3 1 +++ 自增(前置 / 后置) let a=1; ++a / let b=1; b++ 2 / 1(后置先使用后自增) +-- 自减(前置 / 后置) let c=3; --c / let d=3; d-- 2 / 3(后置先使用后自减) + +重点注意: ++ 运算符:只要有一个操作数是字符串,就会触发字符串拼接(隐式类型转换) +NaN:非数字(Not a Number),与任何值运算结果都是 NaN,且 NaN !== NaN + +2. 赋值运算符(给变量赋值) +运算符 等价写法 示例 结果 += - let a = 5 a=5 ++= a = a + b a += 3(a=5) a=8 +-= a = a - b a -= 2(a=8) a=6 +*= a = a * b a *= 4(a=6) a=24 +/= a = a / b a /= 3(a=24) a=8 +%= a = a % b a %= 5(a=8) a=3 + +3. 比较运算符(返回布尔值 true/false) +运算符 功能 示例 结果 +== 相等(隐式类型转换) 10 == '10' / 0 == '' true / true +=== 严格相等(值 + 类型) 10 === '10' / 0 === '' false / false +!= 不相等(隐式转换) 10 != '20' true +!== 严格不相等(值 + 类型) 10 !== 10 false +> 大于 20 > 15 true +< 小于 20 < 15 false +>= 大于等于 15 >= 15 true +<= 小于等于 15 <= 10 false + +核心原则:优先使用 ===/!==,避免 == 的隐式转换坑! + +4. 逻辑运算符(处理布尔值,短路求值) +- 运算符 功能 短路规则(核心) 示例 结果 +- && 逻辑与(都真才真) 左边为 false 时,直接返回左边(不执行右边) true && 10 / false && 10 10 / false +- ` ` 逻辑或(一真就真) 左边为 true 时,直接返回左边(不执行右边) `false 20/true 20` 20 / true +- ! 逻辑非(取反) 先转布尔值再取反 !true / !0 / !!'' false / true / false + +5. 三元运算符(条件运算符,简化 if-else) +语法:条件 ? 表达式1(条件为真时执行) : 表达式2(条件为假时执行) +适合简单的二选一场景,可嵌套(不推荐多层嵌套,影响可读性) \ No newline at end of file diff --git "a/20251113-\350\277\220\347\256\227\347\254\246\344\270\216\347\254\254\344\270\211\347\253\240\347\273\203\344\271\240.md" "b/20251113-\350\277\220\347\256\227\347\254\246\344\270\216\347\254\254\344\270\211\347\253\240\347\273\203\344\271\240.md" new file mode 100644 index 0000000000000000000000000000000000000000..38d2b6ee43269143dedeb2ff28f4558797cd5731 --- /dev/null +++ "b/20251113-\350\277\220\347\256\227\347\254\246\344\270\216\347\254\254\344\270\211\347\253\240\347\273\203\344\271\240.md" @@ -0,0 +1,113 @@ + + + + + Document + + + + + \ No newline at end of file diff --git "a/20251114-\345\276\252\347\216\257\347\273\203\344\271\240.md" "b/20251114-\345\276\252\347\216\257\347\273\203\344\271\240.md" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391