携程笔试总体上还算简单,但是自己对于一些问题理解还不够深入,所以导致在做题的时候还是有点蒙蔽,下面贴出自己记得住的题目。试题分为两部分,第一大题是选择器20道40分,第二大题是编程题三道60分
题型: JS基础,前端基础, java基础, 数据库基础
一、选择题
1.下列不能归为一类的是
A.SVG,WebGl,MPEG
B.tr, i, p
C.TypeScript, postcss, jade
2.关于promise,输出结果( A )
new Promise( ()=>{ console.log(1) }).then( ()=>{ console.log(2) })
console.log(3)
A.1 3
B.1 2
C.1 3 2
D.1 2 3
3下列关于修饰符混用的说法,错误的是(D)
A.abstract不能与final并列修饰同一个类
B.abstract类中不可以有private的成员
C.abstract方法必须在abstract类中
D.static方法中能处理非static的属性
4.java String A = 'abc'
int B[] = [1, 2,3]
获取长度正确的是( A )
a.A.length()
b.A.length
c.B.length()
d.B.length
5.下列关于聚合函数正确的是( C )
A.SUM( * )
B.MAX( * )
C.COUNT( * )
D.AVG( * )
6.下列关于TRUNCATE TABLE说法正确的是( A)
A.可以有选择性的截断表中的数据
B.可以无条件的删除form
C.作用等于DROP FORM
7.状态码错误的是( D )
A.100 continue
B 200 ok
C 500 Internet server error
D 302 Moved persistent(永久重定向)
分析:301表示永久重定向(Moved persistent)
302表示临时重定向(Moved temporary)
8.javascript的typeof不会返回以下类型( B )
A.undefined
B.array
C.function
D.object
分析:typeof返回的类型有七种: null、undedined、boolean、string、object、symbol、function
9.下列关于fetch一定不正确的是()
fetch.get({
url:'www.baidu.com',
methods:' get'
cache: true,
header-request: '...'
}).then( (res)=>{ console.log(res) })
A.methods支持get,post,delete,options
B.当服务器返回500,代码会报错
C.在浏览器控制台运行会报错
D.兼容性问题
10.结果输出(A)
var foo = 1
funtion foo(){
console.log(foo)
}
foo()
A.error
B.1
C.undefined
分析:变量声明和函数声明同时存在提升,所以代码等同于
var foo
function foo( ){
console.log(foo)
}
foo = 1
foo()
最后运行报错foo is not a function
11.js代码输出( C )
var x = 1
function foo(){
x++
this.x == x
return function(){
console.log(x)
}
}
var a = 2
var obj = new foo()
obj(a)
A.error
B.1
C.2
D.undefined
12.给出代码,判断设计模式:单例模式,工厂构造模式,适配器模式
二、编程题
1.正则表达式
输入 携程C2t0r1i8p2020校招
输出 2018Ctrip
使用正则表达式截取数字和字符串,并且字符串位于数字后面
var str = readline()
var nums = str.match(/\d+/g)
var chars = str.match(/[A-Za-z]/g)
nums = Array.from(new Set(nums))
print(nums.slice(0, nums.length-1).concat(chars).join(''))
2数组升维
3.现类似迭代方法中的map()方法
输入
[1, 2, 3, 4]
{a: 1, b: 'test'}
输出
[{"key":0,"value":1},{"key":1,"value":2},{"key":2,"value":3},{"key":3,"value":4}]
{"a":{"key":"a","value":1},"b":{"key":"b","value":"test"}}
要求:当输入[]、{}、字符串等返回null
/******************************开始写代码******************************/
function map(data, fn) {
//判断data类型是数组还是对象
if(Object.prototype.toString.call(data) === '[object Array]'){
var res = []
data.map(function(index, val, array){
res.push(fn(index, val))
})
return res
}else if(Object.prototype.toString.call(data) === '[object Obejct]'){
var res = {}
for(let key in data){
res[key] = fn(key,val)
}
return res
}
// {} '' nuber等
return null
}
/******************************结束写代码******************************/
var input = readline();
var data = JSON.parse(input);
var result = map(data, function(value, key) {
return {
key: key,
value: value,
}
});
print(JSON.stringify(result));