我是页眉
正则匹配链接[]()语法上有局限性 , 如有疑虑可查看本文原文
参考内容
- JavaScript MDN 教程
- TypeScript 教程
- 这个 也是不错的 : https://zh.javascript.info
https://developer.mozilla.org/zh-CN/docs/Learn/Getting_started_with_the_web/JavaScript_basics
-
在 JavaScript 的历史上只有 var 这一个创建变量的方式 .
-
由于 var 存在已知的缺点 let 被引入了 .
-
对于 var 来说 JavaScript 变量可以先定义后声明 :
myName = "Chris";
function logName() {
console.log(myName);
}
logName();
var myName;
这种现象叫做 提升 , 如果上述代码中的 var 换成 let 代码将不再生效 .
这是一件好事——因为初始化后再声明一个变量会使代码变得混乱和难以理解。
-
对于 var 来说 , 同名变量可以多次声明
var myName = "Chris";
var myName = "Bob";
对于 let 上述不成立 , 你必须这样做 :
let myName = "Chris";
myName = "Bob";
同样,这是一个明智的语言决定。没有理由重新声明变量——这只会让事情变得更加混乱。
1.1 const
const : 常量是块级范围的,非常类似用 let 语句定义的变量。但常量的值是无法(通过重新赋值)改变的,也不能被重新声明。
0x02. 变量类型
0x03. 异步操作
Promise 理解 :
// Promise 对象表示异步操作最终的完成(或失败)以及其结果值。
// Promise 的几种状态
// Promise 只是整合了事件的触发流程 , 执行代码所在的线程和 调用者处于相同线程 , 耗时任务还是应该配合 Worker 共同完成
┌─────────────┐
│ │
┌────────► pending │ 待定(pending):初始状态,既没有被兑现,也没有被拒绝。
│ │ │
│ └─────────────┘
┌──────┴────┐
│ │
│ Promise │ ┌───────────┐
│ │ ┌────────────────►│ fulfilled │已兑现(fulfilled):意味着操作成功完成。
└──────┬────┘ │ └───────────┘
│ ┌──────┴──────┐
│ │ │ 已敲定(settled)& 已解决(resolved) 含义相同
└────────►│ settled │ 已经被兑现或拒绝,即不再处于待定状态,那么则称之为已敲定(settled)。
│ │ 已解决(resolved)这个术语来描述 Promise——这意味着该 Promise 已经敲定
└──────┬──────┘
│ ┌──────────┐
└────────────────►│ rejected │已拒绝(rejected):意味着操作失败。
└──────────┘
await 理解 :
WebWorker
- https://zh.javascript.info/event-loop
- https://developer.mozilla.org/zh-CN/docs/Web/API/Web_Workers_API
- Web Worker 使得在一个独立于 Web 应用程序主执行线程的后台线程中运行脚本操作成为可能。
这样做的好处是可以在独立线程中执行费时的处理任务,使主线程(通常是 UI 线程)的运行不会被阻塞/放慢。
0x04. 事件冒泡
45
15
80
30
20
1.5
动态类型语言 VS 静态类型语言
我是页脚
我是页眉
参考内容
https://developer.mozilla.org/zh-CN/docs/Learn/Getting_started_with_the_web/JavaScript_basics
0x01. 创建变量 var / let 理解
在 JavaScript 的历史上只有
var这一个创建变量的方式 .由于
var存在已知的缺点let被引入了 .对于
var来说 JavaScript 变量可以先定义后声明 :这种现象叫做
提升, 如果上述代码中的 var 换成 let 代码将不再生效 .这是一件好事——因为初始化后再声明一个变量会使代码变得混乱和难以理解。
对于
var来说 , 同名变量可以多次声明对于
let上述不成立 , 你必须这样做 :同样,这是一个明智的语言决定。没有理由重新声明变量——这只会让事情变得更加混乱。
1.1 const
const : 常量是块级范围的,非常类似用 let 语句定义的变量。但常量的值是无法(通过重新赋值)改变的,也不能被重新声明。
0x02. 变量类型
与其他语言不通 , JavaScript 中你不需要声明变量的类型 .
JavaScript 具有以下几种类型的变量
123/123.123true/false"string value one"/'string value two'[1,2,3]/ ["one","two","three"]{ name: "Spot", breed: "Dalmatian" }我们常用的 json0x03. 异步操作
Promise 理解 :
await 理解 :
但是如果 promise 被 reject,它将 throw 这个 error,就像在这一行有一个 throw 语句那样。
WebWorker
这样做的好处是可以在独立线程中执行费时的处理任务,使主线程(通常是 UI 线程)的运行不会被阻塞/放慢。
0x04. 事件冒泡
45
15
80
30
20
1.5
动态类型语言 VS 静态类型语言
我是页脚