FrankKai
FrankKai
### es6的关键词static `static`定义了class的一个静态方法,该方法只能在class内部调用,不能在由class spawn出的实例调用。 java的static能不能用来指定方法仅能在class内调用暂时未知,但是可以肯定的是:java的static可以用来指定一个类常量,而js的static不能。 典型的代表是`Math`和`Reflect`,因为Math和Reflect这两个js全局内建对象的所有方法和属性都是static的,因为它们都不是constructor,都不能生成实例,只能在Math和Reflect这两个类的**内部**调用。 注意: **内部**指的并不是在Math类定义的内部,因为`Math.max()`其实也是Math类调用了自己作用域内的static max()方法。 而不是说生成的了一个全新的`const math = new Math()`实例,在这个Math实例的作用域内去调用。
### es6的BigInt类型 在学习Java的过程中,遇到了这个long类型hold不住大数的BigInt类型,没想到js也有。 - 在js中,大于2的53次方的数据用BigInt类型进行存储 - 不能用new操作符生成 - 可以在整数后加一个n表示BigInt类型,也可以直接调用BigInt函数 - **可以直接使用typeof 进行检测,类型就为'bigint'**
### export 与 export default的区别是什么? 1. export是具名导出,export default是默认导出 2. export可以导出多个具名内容,export default只能导出一个 3. export导出的内容,import时必须名称一致;export default导出的内容,import时可以自定义名称 4. 可以同时使用export和export default,导入时这样写`import { default as foo, bar, baz } from './module';`,但不建议 https://developer.mozilla.org/en-US/docs/web/javascript/reference/statements/export
### 一个async函数可以被await吗? 可以。 async函数的执行结果也是[object Promise],因此也可以被await。 ```js const foo = async () => { return true; } console.log(Object.prototype.toString.call(foo())); // [object Promise] await foo(); // true foo(); // Promise {: true} ```
### react中的FC是什么?`FC`是什么意思?主要用处及最简写法是怎样的? #### react中的FC是什么? ```ts type FC = FunctionComponent; ``` ```js interface FunctionComponent { (props: PropsWithChildren, context?: any): ReactElement | null; propTypes?: WeakValidationMap; contextTypes?: ValidationMap; defaultProps?: Partial; displayName?: string; }...
### `import { MouseEvent } from 'react'`是什么意思?SyntheticEvent是什么类型? #### `import { MouseEvent } from 'react'`是什么意思? 好文章:https://fettblog.eu/typescript-react/events/#1 - 用于事件类型约束 - 除了MouseEvent,还有AnimationEvent, ChangeEvent, ClipboardEvent, CompositionEvent, DragEvent, FocusEvent, FormEvent, KeyboardEvent, MouseEvent, PointerEvent, TouchEvent, TransitionEvent,...
### React.forwardRef是什么意思?useImperativeHandle是什么意思? **简而言之,refs转发就是为了获取到组件内部的DOM节点。** React.forwardRef意思是**Refs转发**,主要用于将ref自动通过组件传递到某一子组件,常见于可重用的组件库中。 在使用forwardRef时,可以让某些组件接收ref,并且将其向下传递给子组件,也可以说是”转发“给子组件。 没有使用refs转发的组件。 ```js function FancyButton(props) { return ( {props.children} ); } ``` 使用refs转发的组件。 ```js const FancyButton = React.forwardRef((props, ref)=>{ {props.children} }) ``` 如何使用? ```js // 创建一个ref变量...
### React中的HOC(高阶组件)是什么意思? - HOC主要用于复用组件逻辑 - HOC本身不是React中的一部分,是React组合性质的一种模式 - 具体来说,一个HOC组件接收一个组件,再返回一个新的组件出去 - 普通组件是将props转化为UI,而HOC组件是将组件转化为另一个组件 - redux中的connect就是一个HOC组件 ```js const EnhancedComponent = higherOrderComponent(WrappedComponent) ``` #### HOC能解决什么问题? - HOC可以解决**横切关注点问题**,是一种比mixins更好的方案。 - HOC可以抽象出一组逻辑,一次定义,多处复用和共享它。 - HOC依赖传入的props,组件替换容易。 #### HOC的特点 - 不会修改传入的组件,不会使用继承...
### React中的isValidElement和cloneElement是什么意思? #### React.isValidElement ```js React.isValidElement(object) // 验证对象是否是React element,返回true或者false ``` #### React.cloneElement ```js React.cloneElement(element, [props], [...children]) ``` 克隆并返回一个新的React元素element。新生成的元素具有原来元素的属性,并且会合并自己的props,新的children替换旧的children。
### React中的React.Children如何使用? React.Children是一个针对react的children节点的工具函数 - map 映射children,若为null/undefined,返回null/undefined - forEach 遍历children - count 统计child个数 - only 是否只有一个孩子并且返回它,若不是则抛出error - toArray,抹平children ```js React.Children.map(children, function[(thisArg)]) React.Children.forEach(children, function[(thisArg)]) React.Children.count(children) React.Children.only(children) React.Children.toArray(children) ```