【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指向一个地址,加载成功之后就可以调用里面的文件。
b、window.name
c、document.domain d、window.postMessage
2.求数组最大值的快速方法
var value = [1,2,3,6,8,4]; var max = Math.max.apply(Math,value);
补充:apply和call的区别
3.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()方法
//后续继续补充