前端面试题 - js - es5
数据类型
基本数据类型检测
请补全JavaScript函数,要求以字符串的形式返回参数的类型。
注意:只需检测基本数据类型。
| function _typeof(value) { |
| |
| let str = Object.prototype.toString.call(value) |
| let substring = str.substring(8, str.length -1).toLowerCase() |
| |
| return substring |
| } |
检测复杂数据类型
请补全JavaScript函数,要求以Boolean的形式返回第一个参数是否属于第二个参数对象的实例。
| function _instanceof(left,right) { |
| |
| return Boolean(left instanceof right) |
| } |
数据类型转换
请补全JavaScript函数,要求以字符串的形式返回两个数字参数的拼接结果。
示例:
- _splice(223,233) -> "223233"
- _splice(-223,-233) -> "-223-233"
| function _splice(left,right) { |
| |
| return left+String(right) |
| return left+''+right; |
| } |
运算符
阶乘
请补全JavaScript函数,要求返回数字参数的阶乘。
注意:参数为大于等于0的整数。
| function _factorial(number) { |
| |
| if(number===1) |
| return 1; |
| return number*_factorial(number-1); |
| } |
绝对值
请补全JavaScript函数,要求返回数字参数的绝对值。
| function _abs(number) { |
| |
| return number>=0?number:-number |
| } |
幂
请补全JavaScript函数,要求返回底数为第一个参数,幂为第二个参数的数值。
| |
| |
| |
| |
| |
| |
| |
| function _pow(number,power) { |
| |
| |
| return Math.pow(number, power) |
| } |
**
x**n 相当于 Math.pow(x,n) 即x的n次方
平方根
请补全JavaScript函数,要求返回数字参数的平方根。
| function _sqrt(number) { |
| |
| |
| return Math.sqrt(number); |
| } |
余数
请补全JavaScript函数,要求返回数字参数除以2的余数。
| function _remainder(value) { |
| |
| return value % 2 |
| return value - (value>>1)*2 |
| } |
流程控制
请补全JavaScript函数,要求以字符串的形式返回数字参数所对应的星期。
示例:
- _getday(1) -> "星期一"
- _getday(7) -> "星期天"
| function _getday(value) { |
| |
| return "星期"+['一','二','三','四','五','六','天'][value%7-1] |
| } |
内置对象
从大到小排序
请补全JavaScript函数,要求将数组参数中的数字从大到小进行排序并返回。
| function _sort(array) { |
| |
| return array.sort( (a,b) => b - a) |
| } |
冒泡排序
| function _sort(array) { |
| |
| var temp; |
| for(let i=0;i<array.length;i++){ |
| for(let j=i+1;j<array.length;j++) |
| if(array[i]<array[j]){ |
| temp=array[i]; |
| array[i]=array[j]; |
| array[j]=temp; |
| } |
| |
| } |
| return array; |
| } |
大写字符串
| function _touppercase(string) { |
| return string.toUpperCase(); |
| } |
对象属性键名
请补全JavaScript函数,要求以数组的形式输出对象各个属性的键名。
示例:
- _keys({name:'nowcoder',age:7}) -> ['name','age']
注意:只需考虑对象属性均为原始数据类型的情况。
| function _keys(object) { |
| |
| return Object.keys(object) |
| return Reflect.ownKeys(object) |
| return Object.getOwnPropertyNames(object) |
| } |
| |
| function _keys(object) { |
| |
| let arr=[] |
| for (k in object) |
| arr.push(k); |
| return arr |
| } |
对象数字
请补全JavaScript函数,要求将数字参数转换为对象的形式返回。
示例:
- typeof number === 'number' -> typeof _numbertoobject(number) === 'object'
| function _numbertoobject(number) { |
| |
| if( typeof number === 'number') |
| return new Number(number); |
| } |
对象字符串
请补全JavaScript函数,要求将字符串参数转换为对象的形式返回。
示例:
- typeof string === 'string' -> typeof _stringtoobject(string) === 'object'
| function _numbertoobject(string) { |
| return new String(string); |
| return {string} |
| } |
去除字符串两端空格
| function _trim(string) { |
| |
| return string.replace(/^\s*|\s*$/g,'') |
| return string.trim() |
| } |
输出日期
请补全JavaScript函数,要求以字符串的形式输出时间戳参数所对应的"年-月-日"。
示例:
- _date(1631159776311) -> '2021-9-9'
| function _date(number) { |
| |
| let date = new Date(number) |
| return date.getFullYear()+'-'+(date.getMonth()+1)+'-'+date.getDate() |
| return new Date(number).toLocaleDateString().replace('/','-').replace('/','-') |
| } |
| |
数字取整
| function _int(value) { |
| |
| return value >> 0 |
| return parseInt(value) |
| return Number(String(value).split('.')[0]) |
| } |
数组反转
| function _reverse(array) { |
| |
| return array.reverse() |
| let newArray = [] |
| array.map((e, i) => newArray.push(array[array.length - 1 - i])) |
| return newArray |
| } |
数组转字符串
请补全JavaScript函数,要求将参数数组转换为字符串输出。
示例:
- _join([1,'2',3]) -> "123"
注意:只需考虑一维数组且数据类型为原始数据类型。
| function _join(array) { |
| |
| return array.join('') |
| return array.toString().replace(/,/g,''); |
| return array.reduce((per,cur,index,array)=>per+cur,''); |
| } |
数组最大值
| function _max(array) { |
| |
| return Math.max(...array); |
| return Math.max.apply(null, array) |
| return array.sort((a,b)=>b-a)[0] |
| return array.sort()[array.length-1] |
| } |
搜索数字
请补全JavaScript函数,要求以boolean的形式返回字符串参数中是否包含数字。
| function _search(string) { |
| |
| return /\d/g.test(string) |
| for(var i=0;i<10;i++){ |
| if(string.indexOf(i)!=-1){ |
| return true |
| } |
| } |
| return false |
| } |
头部插入元素
请补全JavaScript函数,要求将第二个参数插入第一个参数数组的头部,并且以数组的形式返回。
| |
| function _unshift(array,value) { |
| |
| return [value,...array] |
| return [value].cancat(array) |
| |
| } |
尾部插入元素
| function _push(array,value) { |
| |
| return [...array,value] |
| return array.cancat([value]) |
| array.push(value) |
| return array |
| |
| } |
js-位置查找
请补全JavaScript函数,要求以数字的形式返回第一个参数数组中第二个参数所在的首个索引值。
注意:如果数组中不存在目标值,则返回-1。
| function _indexof(array,value) { |
| |
| return array.indexOf(value) |
| return array.reduce((p,c,i) => p<0&&c===value? i:p, -1) |
| } |
向下取整
| function _floor(number) { |
| |
| return Math.floor(number) |
| } |
整数反转
请补全JavaScript函数,要求将整数参数反转之后输出。
示例:
- _reverse(0) -> 0
- _reverse(233) -> 332
- _reverse(-223) -> -322
| function _reverse(number) { |
| |
| var temp = (number+'').split('') |
| return number<0 ? -1*parseInt(temp.reverse().join('')) : parseInt(temp.reverse().join('')) |
| } |
字符串搜索
请补全JavaScript函数,要求以boolean的形式返回字符串首参中是否包含第二个参数。
| function _search(string,value) { |
| |
| return string.indexOf(value)==-1?false:true; |
| return string.indexOf(value)!=-1 |
| } |
函数
参数对象
请补全JavaScript函数,要求返回它的参数伪数组对象。
| function getArguments (a,b,c) { |
| |
| return arguments |
| } |
this指向
请补全JavaScript函数,使obj对象中fn函数返回该对象中a属性和b属性的和。
| var obj = { |
| a: 1, |
| b: 2, |
| fn: function(){ |
| |
| return this.a+this.b |
| } |
| } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步