一份react 面试题

声明:题目是群里面看到的,并不完全。答案自己手撸

1、下面打印出b的值是?if(true){let b = 2}  alert(b).

let不存在变量提升,且作用域只在代码块,输出undefined

2、const name = 'jack'; const age = 20; const person = {[name] : true, [age] : true}.  person对象的两个key分别是什么

对象的key只能是字符串,'jack'和'20'

3、使用数组的reduce方法求和。

reduce函数对数组中的每一个值都会执行一次,接收四个参数,第一个是初始值,第二个遍历当前的值,第三个是当前值的索引,第四个是遍历的数组

4、reactJS中和子组件如何通信

一般是控制子组件的显示状态,可以用改变props,或者调用子组件的方法进行。子组件事件传递给父组件回调就好

5、reactJS兄弟组件之间如何通信

事件用DeviceEventEmitter、数据传递刷新等用Redux、数据库

6、传入setState函数的第二个参数作用是什么

set方法调用刷新完毕后回调

7、reactJS中如何去写组件

class Person extends Componment{}.   ...static propTypes ..... static defaultProps

8.下面的输出结果是?

一份react 面试题_第1张图片

箭头函数初始化时就绑定了作用域,为foo函数的代码块,所以输出为foo

9、使用es6的class封装一个Car对象,有name和color两个属性,以及一个print方法,实现以下结果:

let myCar = new Car('奇瑞','红色');

myCar.print(); // 打印出汽车名称:奇瑞 颜色:红色

一份react 面试题_第2张图片

10、略

11、完成isNumber函数,返回Promise对象给调用者。isNumber(num){coding....}

12、使用async、await以及Promise实现调用asyncPrint函数后可以指定多少毫秒后打印出传入的值,比如asyncPrint('hello',500),实现500ms后输出hello

一份react 面试题_第3张图片

13、reactJS在生命周期中哪一部调用AJAX请求?

ComponentDidMount

14、reactJS的props.children.map函数来遍历会收到异常提示,为什么?应该如何遍历?

this.props.children的值有三种可能:如果当前组件没有子节点,它就是undefined;如果有一个子节点,数据类型是object;如果有多个子节点,数据类型就是array。系统提供React.Children.map()方法安全的遍历子节点对象

15、字符串var str = 'abc345efgabcab2f',用实现如下人功能

15.1、去掉字符串中的a、b、c字符

15.2、将字符串中的数字用中括号扩起来,结果是'abc[345]efgabcab[2]f''

一份react 面试题_第4张图片

15.3、将字符串中的每个数字分别乘以2,得到'abc6810efgabcab4f'

16、请以优雅的方式将[1,2,[3,[4,[5]],6],7,8]转换为[1,2,3,4,5,6,7,8]

一份react 面试题_第5张图片

17、计算1-10000中出现的0 的次数

这里要注意的是reduce函数必需设置初始值0,而不能忽略。若忽略该参数,则默认sum的初始值为首次循环的那个item,即数组的第一个元素,导致结果出错。



作者:请叫我啊亮
链接:https://www.jianshu.com/p/ea291635093f
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

你可能感兴趣的