当前位置: IT培训 > HTML5培训 > 前端开发 > HTML5面试题 > 华为2017新web前端面试题汇总
华为2017新web前端面试题汇总 时间:2017-12-11     来源:2017华为web前端面试题推荐

华为是全球的信息与通信技术(ICT)解决方案供应商,专注于ICT领域,坚持稳健经营、持续创新、开放合作,在电信运营商、企业、终端和云计算等领域构筑了端到端的解决方案优势,为运营商客户、企业客户和消费者提供有竞争力的ICT解决方案、产品和服务,并致力于使能未来信息社会、构建更美好的全联接世界。相信能去华为供职是很多人梦寐以求的事前,今天小编应多方所求,为大家准备了一套今年华为新的web前端面试题,快来测试一下,看你能做对几道吧。

华为web前端面试题

1. 数字处理

题目描述:给出一个不多于5位的整数,进行反序处理,要求

(1)求出它是几位数

(2)分别输出每一个数字(空格隔开)

(3)按逆序输出各位数字(仅数字间以空格间隔,负号与数字之间不需要间隔)

输入描述:位数不大于5的整数

输出描述:1.整数位数 2.空格间隔输出结果 3.逆序整数

思路:直接进行正负数判断,分别进行处理

//输入一个不大于五位数的整数

function Numberprocess(line){

var arr = [];

if(line[0] !== '-'){

arr[0] = line.length;

var subArr1 = line.split('');

arr[1] = subArr1.join(' ');

var subArr2 = subArr1.reverse();

arr[2] = subArr2.join('');

}else{

arr[0] = line.length-1;

var subArr3 = line.slice(1).split('');

arr[1] = '-' + subArr3.join(' ');

var subArr4 = subArr3.reverse();

arr[2] = '-' + subArr4.join('');

}

for(var i=0; i

console.log(arr[i]);

}

}

Numberprocess('-12345');

// 5

// -1 2 3 4 5

// -54321

2. IP地址交集判断

题目描述:输入四个IP端,前两个为第一个IP段的起始和终止地址,后两个是第二个IP段的起始和终止地址,判断这两个IP段是否存在交集

输入描述:输入4个IP

输出描述:如果存在交集,输出 Overlap IP ; 如果不存在交集,输出 No Overlap IP

思路:开始看题目感觉不是很理解,看到IP地址觉得很复杂。其实真正了解了题意之后发现原来是想多了。将IP地址化成区间,判断两个区间是否存在交集就行了,高中数学。

//输入四个IP地址,存在一个数组中

function isMixed(lines){

var arr = lines.map(function(item){

return parseInt(item.split('.').join(''));

});

if(arr[0]<=arr[1] && arr[2]<=arr[3]){

if(arr[3]arr[1]){

console.log('No Overlap IP');

}else{

console.log('Overlap IP');

}

}

}

isMixed(['1.1.1.1','255.255.255.255','2.2.2.2','3.3.3.3']);

//Overlap IP

3. 数字排序

题目描述: 给定字符串内有很多正整数,要求对这些正整数进行排序,然后返回排序后指定位置的正整数,排序要求:按照每一个正整数的后三位数字组成的整数进行从小到大排序(1)如果不足三位,则按照实际位数组成的整数进行比较(2)如果相等,则按照输入字符中的原始顺序排序

说明:(1)字符串以‘\0’结尾,仅包含数字、空格(2)字符串内正整数之间以单个空格分隔,字符串首尾没有空格(3)正整数格式为十进制,大小1~1000000,正整数的数字非零开始

输入描述:第一行为一个整数字符串,里面包含若干个整数,以空格分割,第二行为一个整数,即指定的位置

输出描述:输出指定位置的整数

思路:将每个数字按数字的后三位数的大小比较进行排序,不足三位的保持原数字比较。然后输出。

//输入多个数字组成的字符串,和指定位置的整数

function sort(str, n){

var arr = str.split(' ');

function compare(v1, v2){

var len1 = v1.length,

len2 = v2.length;

if(len1 > 3){

var a1 = v1.slice(len1-3, len1);

}else{

var a1 = v1;

}

if(len2 > 3){

var a2 = v2.slice(len2-3, len2);

}else{

var a2 = v2;

}

return a1 - a2;

}

arr.sort(compare);

console.log(arr[n-1]);

}

sort('1223 22 3232 2016', '3'); //1223

总结:
其实笔试中很多题目不难,大多是只是简单的字符串处理。关键点是要理解题意,很多题目抛出一大段描述,说的一绕一绕的,真正理解以后发现也就那么回事。所以,答题的时候应该多花点时间读题,而不是一上来就编。毕竟在线判题系统和本地IDE的调试不一样,在线判题只会判断结果是否通过测试用例,不会告诉你错在哪,也不可能让你一步一步去调试。还有就是,很多人认为js刷编程题会比c++方便,很多操作方法都封装好了,直接调用。但是编程题主要还是看思路,思路没有,方法库的东西那么多。