-
4.在一个Web页面中有很多的链接和图片,例如:
-
5.已知用户输入手机号的时候可能是通过粘贴输入,此时就会带上不需要的信息,例如:
1. 请生成一个16位的随机数字;
可以 String(Math.random()).split(‘.’)[1].slice(0, 16); 当然,还有很多其他一些方法。使用new Date().getTime()或类似方法的不得分。
2.所有题目公用一个上下文,已知数组:
let arr = [1,2,3];
-
arr的长度是多少?
-
去除arr中的空数组项;
-
arr2 = arr.map(parseInt),请写下arr2的内容;
-
arr和arr2合并成数组arr3。
-
去除数组arr3中重复内容
答案:
第一题,空数组项也会作为length的一部分;空数组项和空字符串项是有区别的。结果是4。
第2题 本题只是过滤空数组项,不包括null, undefined这类,去除空数组项两个比较好的回答:
数组中的 empty 元素不会参与数组项遍历,故只需返回 true 即可过滤掉 empty 元素(而不会牵连 0、NaN、null、undefined、‘’ 这些)
arr.filter(it => true)
注意走for循环,还是会遍历empty数组项。或者filter方法参数直接就是一个function即可。例如:arr.filter(Number), arr.filter(String)
上面并不会最好的方法。数组有个API,天然去除空数组项,arr.flat()。flat()可以让数组扁平化的方法。
第3题标准答案应该是[1, NaN, NaN]
,map里面Function支持参数(value, index, arr)。
第4题就是concat,可以数组合并,arr3 = arr.concat(arr2)
。如果不考虑兼容,可以[...arr, ...arr2]
。其他参考方法:Array.prototype.push.apply(arr3, arr2)
,也可以[].push.apply(arr3, arr2)
,此时arr3是合并后的数组。
第五题,数组去重。使用Array.from(new Set(arr3))
,或者[...new Set(arr3)]
。
3.关于字符串处理:
-
写一个名为toCamelCase的方法,实现把类似’abc-def-ghi’的字符转换成’abcDefGhi’。
-
写一个名为toDashJoin的方法,实现把驼峰形式字符串’abcDefGhi’转换成’abc-def-ghi’。
-
写一个名为toCapitalize的方法,实现首字母大写功能(原来字母就是大写的不处理),如’i like css’转换成’I Like Css’。
-
写一个名为toBetterUrl的方法,实现把类似’CSS value type’转换成’css-value-type’(只需考虑空格和大小写处理)。
「参考答案:」
function toCamelCase(str){
return str.replace(/-(.)/g,function($0,$1){
console.log($0,$1)
return $1.toUpperCase()
})
}
console.log(toCamelCase(“abc-def-ghi”));
function toDashJoin(str){
return str.replace(/[A-Z]/g,function($0){
return ‘-’+$0.toLowerCase()
})
}
console.log(toDashJoin(“abcDefGhi”));
function toCapitalize(str){
return str.replace(/(\s+|^)(\w)/g,function($0,$1,$2){
return $1+$2.toUpperCase()
})
}
console.log(toCapitalize(‘i like css’));
function toBetterUrl(str){
return str.replace(/[A-Z]/g,function($0){
return $0.toLowerCase()
}).replace(/\s+/g,‘-’)
}
console.log(toBetterUrl(‘CSS value type’));
4.在一个Web页面中有很多的链接和图片,例如:
文末
如果30岁以前,可以还不知道自己想去做什么的话,那30岁之后,真的觉得时间非常的宝贵,不能再浪费时间在一些碎片化的事情上,比如说看综艺,电视剧。一个人的黄金时间也就二,三十年,不能过得浑浑噩噩。所以花了基本上休息的时间,去不断的完善自己的知识体系,希望可以成为一个领域内的TOP。
同样是干到30岁,普通人写业务代码划水,榜样们深度学习拓宽视野晋升管理。
这也是为什么大家都说30岁是程序员的门槛,很多人迈不过去,其实各行各业都是这样都会有个坎,公司永远都缺的高级人才,只用这样才能在大风大浪过后,依然闪耀不被公司淘汰不被社会淘汰。
269页《前端大厂面试宝典》
包含了腾讯、字节跳动、小米、阿里、滴滴、美团、58、拼多多、360、新浪、搜狐等一线互联网公司面试被问到的题目,涵盖了初中级前端技术点。
前端面试题汇总
JavaScript