FrankKai
FrankKai
### copy()函数 `copy(object)`,将指定对象的字符串表示形式复制到剪贴板。 我们一般不会在代码里写入copy这种开发工具的api,因此需要在当前session的context新建一个变量,然后再复制,所以可以像下面这样操作。 1. 右键将输出值存储为一个temp变量   2. 复制变量中的值 ```js copy(temp1); ``` 3. 在需要的地方`ctrl + v`
### 如何debug css的pseudo 做前端开发的同学应该都曾遇到过这样的烦恼:我想查看一个元素hover时是什么样的css属性,但是每当我移开时,我就找不到这个设置了,好苦恼,我该怎么办? 很简单,打开chrome的devtool,它可以强制更改伪元素状态,让你开开心心的debug pseudo元素。 具体步骤如下: 1. 选中需要进行debug的元素 2. 点击:hov调出伪元素列表,强制更新状态即可 
### 如何debug 元素的class列表 比如一个标签上面有很多class同时作用,看列表往往令人捉急,一个inherit另一个,移除了自定义的属性,还有框架定义的属性;移除了框架定义的属性,还有浏览器自带的属性。 但其实我们一般只关心那些class就好了,怎样才能快一点在一个元素上toggle一个class呢?右键edit attribute可以,但是不够快。  class列表会列举出来,可以快速的debug元素的class列表。
### 如何快速提取一个网站的文字信息 女票最近需要查港澳台地区的食品法规资料。 我们知道,正常情况下文本节点都是被``等等标签包裹的。 那么该如何快速获得网站的纯文本内容呢? 爬虫解析HTML??? 作为一名前端开发,费这劲干嘛。 看我的骚操作就完事了。 - 找到最上层DOM节点并且store as a global variable,例如temp1 - 之后调用`temp1.innerText `或 `temp1.textContent`即可获得 比如提取这个tw食品网站的文本信息:https://www.fda.gov.tw/TC/newsContent.aspx?cid=3&id=25047 
#### ts类型中的?意思是什么? ```js // https://github.com/vuejs/vue/blob/dev/src/core/observer/watcher.js before: ?Function; options?: ?Object, ``` 这是ts的interface中的一个概念。ts的interface就是"duck typing"或者"structural subtyping",类型检查主要关注the shape that values have。因此我们先来熟悉一下interface,再引出?的解释。 ##### TypeScript普通方式定义函数: ```js function print(obj: {label: string}) { console.log(obj.label); } let foo =...
#### 什么是duck typing? duck test。如果"走路像鸭子,叫声像鸭子,那么这就是鸭子"。 在computer programming,用于'判断对象是否可以按照预期的目的使用'。 通常的typing中,适用性取决于对象的type。duck typing不一样,对象的适用性取决于**指定method或property的存在与否**,而不是取决于对象自身的类型。 >*前端工程师基本都是duck typing,因为JavaScript没有type。* --这话是我说的 ##### Python3 example ```python class Duck: def fly(self): print("Duck flying") class Airplane: def fly(self): print("Airplane flying") class Whale:...
### constructor之前的变量定义是什么? 例如vnode的定义: ```js export default class VNode { tag: string | void; data: VNodeData | void; children: ?Array; text: string | void; elm: Node | void; ns: string |...
### declare是什么? **声明这是一个definition。** - declare是ts中用于**写定义文件**的关键字。 - declare可以定义全局变量,全局函数,全局命名空间,class等等。 - declare可以按照下面这样去使用: ```ts declare var foo:number; declare function greet(greeting: string): void; declare namespace myLib { function makeGreeting(s: string): string; let numberOfGreeting: number; }...
### ts中any,unknown, void, null和undefined,never区别是什么? null,undefined就是js中的意思。 any: 任意类型,谨慎使用,避免使typescript变成anyscript unknown: 与any类似,但是比any更加安全 void: 通常用于返回值的函数 never:never occur 从来不会发生的类型,例如永远不会有结果的,抛出异常或者死循环。
### ts中的泛型约束是什么? #### 基于string(boolean, Function)类型 ```ts function loggingIdentity(arg: T): T { console.log(arg.length); return arg; } loggingIdentity("hello"); // 5 loggingIdentity(2); // Argument of type 'number' is not assignable to parameter of...