nmsn
nmsn
``` 尾递归,比线性递归多一个参数,这个参数是上一次调用函数得到的结果; 所以,关键点在于,尾递归每次调用都在收集结果,避免了线性递归不收集结果只能依次展开消耗内存的坏处。 ``` https://www.zhihu.com/question/20761771
https://github.com/shfshanyue/Daily-Question/issues/640 globalThis.isNaN 会对参数进行强制转换后判断是不是 NaN,而 Number.isNaN 不会对输入的参数进行强制转换
省流:File 属于 Blob 里面的一个小类,继承Blob的方法和属性,拥有自己特有的属性,通常表示 `` 里的 fileList 对象
区别 1. `type` 可以给基本类型取别名,`interface` 不可以(暂时不知道有什么意义) 2. `type` 和 `interface` 实现拓展的方式不一样 1. `type` 使用 `&` 运算符进行拓展 `type C = A & B`(且 `interface D extends C` 是正确的, 但 `A | B`...
> 来源:https://react-typescript-cheatsheet.netlify.app/docs/basic/getting-started/basic_type_example#types-or-interfaces Aspect | Type | Interface -- | -- | -- Can describe functions | ✅ | ✅ Can describe constructors | ✅ | ✅ Can describe tuples |...
这两种方式在合并类型上看起来很相似,但实际上还是有很大的不同。最原则性的不同就是在于冲突怎么处理,这也是你决定选择那种方式的主要原因。 ```ts interface Colorful { color: string; } interface ColorfulSub extends Colorful { color: number } // Interface 'ColorfulSub' incorrectly extends interface 'Colorful'. // Types of property 'color' are incompatible....
基本上所有用interface表达的类型都有其等价的type表达。但我在实践的过程中,也发现了一种类型只能用interface表达,无法用type表达,那就是往函数上挂载属性。 ```js interface FuncWithAttachment { (param: string): boolean; someProperty: number; } const testFunc: FuncWithAttachment = ...; const result = testFunc('mike'); // 有类型提醒 testFunc.someProperty = 3; // 有类型提醒 ``` 来源:https://juejin.cn/post/6844903904140853255#heading-8
### CSS ```css @supports { /* 特殊样式规则 */ } ``` eg: ```css @supports (display:flex) { section { display: flex } ... } ``` 意思就是如果支持 `display: flex` 的话,就在 section 中应用 ###...
在互联网中,常见的请求类型有以下几种: **GET**:用于获取资源的请求。GET 请求是幂等的,即多次请求相同的资源应该返回相同的结果,不会对服务器产生影响。GET 请求的参数通常放在 URL 的查询字符串中。 **POST**:用于提交数据到服务器的请求。POST 请求**不是幂等**的,即多次提交相同的数据可能会对服务器产生不同的影响。POST 请求的参数通常包含在请求体中。 **PUT**:用于创建或更新指定资源的请求。PUT 请求是**幂等**的,即多次请求相同的资源,结果应该是一致的。PUT 请求需要在请求中提供完整的资源数据。 **DELETE**:用于删除指定资源的请求。DELETE 请求是幂等的,即多次请求相同的资源,结果应该是一致的。 **PATCH**:用于对指定资源进行部分更新的请求。PATCH 请求是**幂等**的,即多次请求相同的资源,结果应该是一致的。PATCH 请求只需要在请求中提供需要更新的部分数据。 **OPTIONS**:用于获取服务器支持的请求方法、响应头信息等的请求。 除了上述常见的请求类型,还有一些其他的请求类型,如 HEAD、TRACE、CONNECT 等,它们在特定的场景下有特殊的用途。每种请求类型都有其特定的语义,开发者在设计和使用 API 时需要根据需求选择合适的请求类型
**因为递归是不能被中止的,需要一直占用线程,而 JS 又是属于单线程, 所以 当我们需要执行操作时,是不能被中断的,一旦执行,则需要全部操作执行完成后,才可释放线程** 在这种情况下,我们在第一次渲染的时候,程序需要将 生成 Dom 和 包含事件 全部准备齐全后,才会添加 元素到 页面,并展示到浏览器,而用户看到的是,一直在等待中,才可看到画面,会导致用户体验极差