饿了吗android面试题,前端面试题宝典8—饿了么面试题 – 去当CTO

1.什么是类数组对象,如何将类数组对象转为真正的数组

拥有length属性和若干索引属性的对象, 类数组只有索引值和长度,没有数组的各种方法,所以如果要类数组调用数组的方法,就需要使用 Array.prototype.method.call 来实现。

var arrayLike = {0: ‘name’, 1: ‘age’, 2: ‘sex’, length: 3 }

// 1. slice

Array.prototype.slice.call(arrayLike); // [“name”, “age”, “sex”]

// 2. splice

Array.prototype.splice.call(arrayLike, 0); // [“name”, “age”, “sex”]

// 3. ES6 Array.from

Array.from(arrayLike); // [“name”, “age”, “sex”]

// 4. apply

Array.prototype.concat.apply([], arrayLike)

2.跨域

3.伪元素和伪类

伪类用于当已有元素处于的某个状态时,为其添加对应的样式,这个状态是根据用户行为而动态变化的。

a:link

:first-child

:nth-child

:focus

:visited

伪元素代表了某个元素的子元素,这个子元素虽然在逻辑上存在,但却并不实际存在于文档树中。

4.bind返回什么

bind() 方法会返回一个新函数, 又叫绑定函数, 当调用这个绑定函数时, 绑定函数会以创建它时传入 bind() 方法的第一个参数作为当前的上下文, 即this, 传入 bind() 方法的第二个及之后的参数加上绑定函数运行时自身的参数按照顺序作为原函数的参数来调用原函数.

var x = 8;

var o = {

x: 10,

getX: function(){

console.log(this.x);

}

};

var f = o.getX;

f();//8, 由于没有绑定执行时的上下文, this默认指向window, 打印了全局变量x的值

var g = f.bind(o);

g();//10, 绑定this后, 成功的打印了o对象的x属性的值.

5.git rebase和git merge的区别

merge操作会生成一个新的节点,之前的提交分开显示。而rebase操作不会生成新的节点,是将两个分支融合成一个线性的提交。

6.箭头函数 箭头函数没有它自己的this值,箭头函数内的this值继承自外围作用域

箭头函数不能用作构造器,不能和new一起使用 箭头函数没有原型属性 yield关键字不能在箭头函数使用 在以下场景中不要使用箭头函数去定义:

定义对象方法、定义原型方法、定义构造函数、定义事件回调函数。

7.== 和===的区别

相等运算符在比较相同类型的数据时,与严格相等运算符完全一样。

在比较不同类型的数据时,相等运算符会先将数据进行类型转换,然后再用严格相等运算符比较。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值