饿了么(25问)
- ⼩程序⾥⾯开⻚⾯最多多少
小程序只能打开一个页面
- React⼦⽗组件之间如何传值
父子传值:props 子父传值:函数回调,调度中心
- Emit事件怎么发,需要引⼊什么
Bus.emit([type], [msg]), 引入eventBus
- 介绍下React⾼阶组件,和普通组件有什么区别
一个高阶组件只是一个包装了另外一个 React 组件的 React 组件。
高阶组件的作用:
- 代码复用,逻辑抽象,抽离底层准备(bootstrap)代码
- 渲染劫持
- State 抽象和更改
- Props 更改
- ⼀个对象数组,每个⼦对象包含⼀个id和name,React如何渲染出全部的 name
用map函数遍历
- 在哪个⽣命周期⾥写
componentDiMount
- 其中有⼏个name不存在,通过异步接⼝获取,如何做
将数组放在state中,在componentDiMount发送异步请求,用返回结果修改state中的数组。
- 渲染的时候key给什么值,可以使⽤index吗,⽤id好还是index好
key应该使用表示唯一属性的ID,不可以用index
a. webpack如何配sass,需要配哪些loader
css-loader style-loader sass-loader
b. 配css需要哪些loader
css-loader style-loader
- 如何配置把js、css、html单独打包成⼀个⽂件
使用## extract-text-webpack-plugin 可以把CSS单独打包处理,js和html本来就是分开的。
- div垂直⽔平居中(flex、绝对定位)
flex、display:table、inline-block、margin: auto、负margin
- 两个元素块,⼀左⼀右,中间相距10像素
?? flex布局??
- 上下固定,中间滚动布局如何实现
可以用fixed固定上下。
- [1, 2, 3, 4, 5]变成[1, 2, 3, a, b, 5]
splice(3, 0, a, b)
- 取数组的最⼤值(ES5、ES6)
数组reduce的方式
- apply和call的区别
参数不一样
- ES5和ES6有什么区别
-
加入let, const变量定义类型。
-
对象字面量的属性赋值简写(property value shorthand)
-
赋值解构
-
函数参数 - 默认值、参数打包、 数组展开(Default 、Rest 、Spread)
-
箭头函数 Arrow functions
-
字符串模板 Template strings
-
Iterators(迭代器)+ for..of
-
生成器 (Generators)
-
class
-
Module
-
Math + Number + String + Array + Object APIs 更新
-
Proxy
-
Symbols
-
Promises
- some、every、find、filter、map、forEach有什么区别
some, every 返回bool值,find返回第一个找到的值,也是返回数组,而且是map函数修改过的结果。forEach只做循环,不返回结果
- 上述数组随机取数,每次返回的值都不⼀样
先定义一个数组target,如:
再定义一个空数组result,作为返回结果。
var target = [1, 2, 3, 4, 5];
var result =[];
while(target.length) {
// 生成随机数的下标
var rIndex = parseInt(Math.random() * target.length);
result.push(target[rIndex]);
target.splice(rIndex, 1);
}
console.log(result);
- 如何找0-5的随机数,95-99呢
Math.random() * 6
95 + Math.random() * 5
- ⻚⾯上有1万个button如何绑定事件
使用事件代理
- 如何判断是button
通过tag属性
- ⻚⾯上⽣成⼀万个button,并且绑定事件,如何做(JS原⽣操作DOM)
使用事件代理
- 循环绑定时的index是多少,为什么,怎么解决
index总是最后一个,使用闭包,给节点添加属性
- ⻚⾯上有⼀个input,还有⼀个p标签,改变input后p标签就跟着变化, 如何处理
监听input的input事件,修改p标签
- 监听input的哪个事件,在什么时候触发
???