一份react-native面试题

作者: 请叫我啊亮 | 来源:发表于2017-08-11 09:58 被阅读1780次

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

    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.下面的输出结果是?

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

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

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

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

    10、略

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

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

    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''

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

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

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

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

    相关文章

      网友评论

      • uuuuuuw:这基本都是React的东西,RN的东西 最重要的跟原生的东西 一个都没有。

      本文标题:一份react-native面试题

      本文链接:https://www.haomeiwen.com/subject/caklrxtx.html