liuqinh2s' blog

Do something cool!

顺序执行?

代码示例 1:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var foo = function () {

console.log('foo1');

}

foo(); // foo1

var foo = function () {

console.log('foo2');

}

foo(); // foo2

代码示例 2:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function foo() {

console.log('foo1');

}

foo(); // foo2

function foo() {

console.log('foo2');

}

foo(); // foo2

第一个例子中用到了变量提升,第二个例子中用到了函数提升。JavaScript 引擎并非一行一行地分析和执行程序,而是一段一段地分析执行。当执行一段代码的时候,会进行一个“准备工作”。到底 JavaScript 引擎遇到一段怎样的代码时才会做“准备工作”呢?

阅读全文 »

有两种作用域:

  • 动态作用域
  • 静态作用域(也叫:词法作用域,lexical scoping)

JavaScript 采用的是词法作用域

阅读全文 »

原型链是干什么用的

JavaScript 采用了原型和原型链来实现类和继承(就是查找属性用的)。

当 JavaScript 查找一个对象上的属性的时候,在该对象上找不到就会去它的原型链上查找(通过__proto__一层一层往上找)。比如:

1
2
3
4
function Foo() {}
var foo = new Foo();
Foo.prototype.a = 1;
console.log(foo.a); // 1

原型和原型链主要由三个指针实现:

  • prototype: 构造函数的prototype属性指向原型对象(这个原型对象一般就用构造函数.prototype表示)
  • __proto__: 实例对象的__proto__属性指向原型对象
  • constructor: 原型对象的constructor属性指向构造函数
  • 所有对象都基于Object,是因为所有原型对象的__proto__最终都指向Object.prototype,而Object.prototype__proto__为 null
阅读全文 »

相同点

都可以描述一个对象或者函数

interface

1
2
3
4
5
6
7
8
interface User {
name: string;
age: number;
}

interface setUser {
(name: string, age: number): void;
}

type

1
2
3
4
5
6
type User = {
name: string;
age: number;
};

type setUser = (name: string, age: number) => void;

语法上 type 用等于号,interface 直接跟 class 一样使用。

阅读全文 »

好久没回顾这个知识点了,我现在只记得 TCP 是有链接的,UDP 是无连接的;TCP 是可靠的,UDP 是不可靠的。技术细节已经全然忘光了,今天就来回顾一下。

先说几个几点结论,然后再说说细节:

  • TCP 是有链接的,UDP 是无连接的
  • TCP 可靠(无差错,不丢失不重复,按序到达),UDP 不可靠
  • TCP 面向字节流,UDP 面向报文
  • TCP 是一对一全双工,UDP 是 n 对 n
  • TCP 的首部较大为 20 字节,UDP 首部只有 8 字节
阅读全文 »
0%