JavaScript 中的 this
this
不能在执行期间被赋值,并且在每次函数被调用时 this
的值也有可能不同。在绝大多数情况下,函数的调用方式决定了 this
的值。
在非严格模式下,this
值总是指向一个对象;在严格模式下,this
可以是任意值。
ES5 引入了 bind 方法来设置 this
值,而不用考虑函数是如何被调用的。
ES2015 引入了 箭头函数,而箭头函数则不提供自身的 this 绑定。
1 | // Expressions - this |
this
不能在执行期间被赋值,并且在每次函数被调用时 this
的值也有可能不同。在绝大多数情况下,函数的调用方式决定了 this
的值。
在非严格模式下,this
值总是指向一个对象;在严格模式下,this
可以是任意值。
ES5 引入了 bind 方法来设置 this
值,而不用考虑函数是如何被调用的。
ES2015 引入了 箭头函数,而箭头函数则不提供自身的 this 绑定。
1 | // Expressions - this |
有时,我们需要根据图片的地址将图片转化为 base64 形式的字符串,然后将转换后的 base64 提交到后台。下面代码演示了如何根据图片的 url 来将其转换成 base64。
本方法适用于 Apache 服务器。一般情况下,该方法不需要修改 Apache 服务器的配置文件,只需要在 MediaWiki 安装目录下配置 .htaccess 文件即可。
有时候我们经常需要使用 Google 搜索资料,毕竟百度的搜索结果中有太多不相关的结果。但是 Google 搜索在大陆地区被墙了,找了好多梯子用都不太理想,最后发现了这个 Shadowsocks,效果很不错,推荐给大家。
价格也非常不错,一年才一百来块钱,每个月有 100G 的流量根本用不完,有兴趣的大家自行去看看 -> Shadowsocks。
本文介绍了使用 Docker 镜像搭建 MediaWiki 的步骤和方法。借助 Docker 能非常方便的搭建个人维基站点,在数据的备份等维护操作上同样也很便利。使用 Docker 镜像搭建的维基站点,不会在宿主机上安装 LNMP 或 LAMP 环境,能始终保持宿主机的干净清爽。
本文转载自知乎大聪明:罗翔老师谈人为什么害怕独处
人为什么害怕独处呢?
因为人在独处的时候,总是会听到心灵深处的声音,这个心灵深处的声音,会不断地逼问你:你这一生到底想干嘛?你怎样活着才是有意义的?当这个声音不断地逼问你的时候,你就会觉得烦躁,你就会觉得焦虑。因为你耳边始终有这种声音,所以你会堵住耳朵,你说别说了。
当这个声音沉静的时候,你会感到空虚,会感到迷茫。所以当你独处的时候,你始终是在焦虑、迷茫空虚中周而复始。那大部分的人呢,就会选择拒绝倾听你心灵深处的追问,于是,就会选择用忙碌来对抗这种声音——娱乐、工作、放纵,不断地忙碌来对抗自己心灵深处的追问,那只有当你真正地能够回答你心灵深处的那种追问,你才能够享受这种独处,你才能够享受这种宁静。
本篇介绍 TypeScript 实用类型中的 NonNullable<Type>
类型。NonNullable
会从传入的类型中将 null
和 undefined
排除,之后把剩下的成员构造成一个新类型。
下面是一个简单的例子:
1 | type U1 = string | number | undefined; |
本篇介绍 TypeScript 实用类型中的 Extract
类型。看字面意思,Extract
是指取出、挑出的意思,Extract
会挑选出传入的两个联合类型中相同的成员,将这些相同的成员构造成一个新类型,构造的新类型有可能是联合类型,也有可能是其他任何类型。
下面是一个简单的例子:
1 | type U1 = "a" | "b" | "c"; |
本篇介绍 TypeScript 实用类型中的 Omit
类型。Omit<Type, Keys>
从类型中选取所有属性,然后通过删除指定键来构造类型。以下面的 User
类型为例:
1 | type User = { |
Exclude<Type, ExcludeUnion>
通过排除联合类型中的指定成员来构造新类型。
1 | type Letter = 'a' | 'b' | 'c'; |
上例代码中的类型 T0
等价于下面的写法: