对象的类型

在 typescript 中,我们定义对象的方式要用关键字 interface(接口),我的理解是使用 interface 来定义一种约束,让数据的结构满足约束的格式。定义方式如下:

1
2
3
4
5
6
7
8
9
10
//这样写是会报错的 因为我们在person定义了a,b但是对象里面缺少b属性
//使用接口约束的时候不能多一个属性也不能少一个属性
//必须与接口保持一致
interface Person {
b: string;
a: string;
}
const person: Person = {
a: "213",
};
阅读全文 »

所谓的跨域是一种浏览器的安全机制导致的,也就是同源策略,如果出现非同源(协议、域名、端口号都相同,只要有一个不相同,那么都是非同源),浏览器就会形成跨域,比如说我们常见的一个端口去访问另一个端口的资源时,就会发出跨域请求,注意的是跨域是浏览器同源策略导致的,服务器与服务器之间没有跨域这个说法。

解决跨域的方法有很多,比如前端的代理服务器访问

阅读全文 »

浏览器中从输入网址到跳转显示页面经历了哪些事

首先,第一步肯定是 DNS 解析

DNS 解析:将域名解析成 IP 地址

  • 读取浏览器 DNS 缓存:有缓存的话就会进行读取,没有的话就从系统也就是计算机的缓存去读取;
  • 读取系统 DNS 缓存:有的话就读取,没有就会去路由去缓存中读取(前提是有路由器缓存,如果还没有就会去读取网络运行商的缓存)
  • 读取路由器 DNS 缓存:
  • 网络运营商的 DNS 缓存
    如果上述都没有找到的话,他会去做递归搜索,如果还没有就是找不到对应的 Ip 地址,就会出错
    阅读全文 »

防抖与节流函数

防抖和节流的作用都是在高频事件中防止函数被多次调用,是一种性能优化的方案。

区别在于,防抖函数只会在高频事件结束后 n 毫秒调用一次函数,节流函数会在高频事件触发过程当中每隔 n 毫秒调用一次函数。

阅读全文 »

不同数据类型的Object.prototype.toString方法返回值如下:

  • 数值:返回[object Number]
  • 字符串:返回[object String]
  • 布尔值:返回[object Boolean]
  • undefined:返回[object Undefined]
  • null:返回[object Null]
  • 数组:返回[object Array]。
  • arguments 对象:返回[object Arguments]
  • 函数:返回[object Function]
  • Error 对象:返回[object Error]
  • Date 对象:返回[object Date]
  • RegExp 对象:返回[object RegExp]
  • 其他对象:返回[object Object]
    阅读全文 »