【SHEIN】校招前端岗位笔试题

刚结束SHEIN的线上前端岗位笔试,笔试题还热乎着~
SHEIN的线上笔试是在牛客网进行的,分为两Part:选择题和问答题

SHEIN简介
SHEIN是一家成立于2008年的快时尚出口跨境电商互联网公司,集商品设计、仓储供应链、互联网研发以及线上运营于一体。 经历十年高速发展,目前在南京、广州、深圳、佛山、义乌、美国、比利时、迪拜、马尼拉等地设有分支机构,国内员工规模已超过5000人。

一、选择题*10

选择题涉及太多选项了,就不一一附上(我也记不下那么多)
主要考查的知识点:
1、promise:then / catch
2、cookie和localStorage
3、求数组的最大值
4、浏览器中使用js跨域获取数据的方法
5、原型链
6、删除数组中的第i个元素,最优化的实现方案
7、js用于阻止默认事件的默认操作
8、hasOwnProperty

二、问答题*5

1、GET和POST的区别
2、null和undefined的区别
3、js对象的深拷贝实现代码
4、实现一个fibonacci函数
5、如何理解css的盒模型

部分解答知识点

1.浏览器中使用js跨域获取数据的方法
a、JSONP
HTML的script标签可以加载并执行其他域的js,可以通过标签script的src来动态加载其他域的资源,即通过属性src指向一个地址,加载成功之后就可以调用里面的文件。
JSONP原理传送门

b、window.name
window.name原理传送门

c、document.domain
document.domain原理传送门
d、window.postMessage
window.postMessage原理传送门

2.求数组最大值的快速方法

var value = [1,2,3,6,8,4];
var max = Math.max.apply(Math,value);

补充:apply和call的区别
Math.max()函数 + apply与call区别知识点

3.null和undefined的区别
null和undefined的区别传送门

4.如何理解CSS盒模型
基本概念:标准模型+IE模型
CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:内边距(padding),边框(border),margin(外边距),和内容(content)。
标准盒模型:一个块的总宽度=width+margin(左右)+padding(左右)+border(左右)
怪异(IE)盒模型:一个块的总宽度=width+margin(左右)(既width已经包含了padding和border值)
设置盒模型:box-sizing:border-box

5.hasOwnProperty
这个方法会查找一个对象是否有某个属性,但是不会去查找它的原型链。

var obj = {
    a: 1,
    fn: function(){
 
    },
    c:{
        d: 5
    }
};
console.log(obj.hasOwnProperty('a'));  // true
console.log(obj.hasOwnProperty('fn'));  // true
console.log(obj.hasOwnProperty('c'));  // true
console.log(obj.c.hasOwnProperty('d'));  // true
console.log(obj.hasOwnProperty('d'));  // false, obj对象没有d属性
 
var str = new String();
// split方法是String这个对象的方法,str对象本身是没有这个split这个属性的
console.log(str.hasOwnProperty('split'));  // false
console.log(String.prototype.hasOwnProperty('split'));  // true

6.原型链
简述:原型链是实现继承的主要方法,其基本思想是让一个引用类型继承另一个引用类型的属性和方法。

//实现原型链有一种基本模式,其代码大致如下。
function SuperType(){
	this.property = true;
}
SuperType.prototype.getSuperValue = function(){
	return this.property;
};

function SubType(){
this.subproperty = false;
}
//继承了 SuperType
SubType.prototype = new SuperType();

SubType.prototype.getSubValue = function (){
	return this.subproperty;
};
var instance = new SubType();
alert(instance.getSuperValue()); //true

原型链

以上代码定义了两个类型: SuperType 和 SubType 。每个类型分别有一个属性和一个方法。它们的主要区别是 SubType 继承了 SuperType ,而继承是通过创建 SuperType 的实例,并将该实例赋给SubType.prototype 实现的。 实现的本质是重写原型对象,代之以一个新类型的实例。换句话说,原来存在于 SuperType 的实例中的所有属性和方法,现在也存在于 SubType.prototype 中了。在确立了继承关系之后,我们SubType.prototype 添加了一个方法,这样就在继承了 SuperType 的属性和方法的基础上又添加了一个新方法。

7.js阻止默认事件
简述:e.preventDefault()方法
e.preventDefault() 阻止默认操作

//后续继续补充

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值