手撕JavaScript面试题

在这里插入图片描述

html页面的骨架,相当于人的骨头,只有骨头是不是看着有点瘆人,只有HTML也是如此。

css,相当于把骨架修饰起来,相当于人的皮肉。

js(javascripts),动起来,相当于人的血液,大脑等一切能使人动起来的器官或者其他的。

在刷题之前先介绍一下牛客。Leetcode有的刷题牛客都有,除此之外牛客里面还有招聘(社招和校招)、一些上岸大厂的大佬的面试经验。 牛客是可以伴随一生的编程软件(完全免费),从学校到社会工作,时时刻刻你都可以用到感兴趣的可以去注册试试可以伴随一生的刷题app

刷题页面,功能完善,短时间坚持可看效果。
在这里插入图片描述

查看出现此处,筛选定制,查询指定大厂出现频率
在这里插入图片描述

首页功能强悍,完全免费
在这里插入图片描述

🍓🍓阶乘

问题 1:
请补全JavaScript函数,要求返回数字参数的阶乘。
注意:参数为大于等于0的整数。

function _factorial(number) {
    // 补全代码
    if(number==1){
        return 1;
    }
    else{
        return number*_factorial(number-1);
    }
}

在这里插入图片描述

总结:
🥭🥭1、当传递进来的number为1的时候直接return 1【返回为1】,因为1的阶乘为1。
🥭🥭2、当传递进来的参数number不为 1 ,也就是else里面情况,每次迭代 函数(number-1),number会慢慢减少,等到number直接返回1【return 1】



🍓🍓绝对值

问题 2:
请补全JavaScript函数,要求返回数字参数的绝对值。

function _abs(number) {
    // 补全代码
    return Math.abs(number);
}

在这里插入图片描述](https://img-blog.csdnimg.cn/97c82d01222141c7aacc854dc3774334.png)

总结:

🥭🥭一、abs是absolute的缩写,是Math里面的一个方法,除了abs还有其他方法,例如。
1.Math.abs() Math.abs()函数,返回一个数的绝对值 Math.abs(-10) // 10
2.Math.ceil() Math.ceil()函数,返回大于或等于一个给定数的最小整数。 Math.ceil(5.4) // 6
3.Math.cos() Math.cos()函数,返回一个值的余弦值。 Math.sin(90 * Math.PI / 180) // 1
4.Math.floor() Math.floor()方法,返回小于或等于一个给定数字的最大整数 Math.floor(5.7) // 5 Math.floor(8.6) // 8



🍓🍓幂

问题 3:
请补全JavaScript函数,要求返回底数为第一个参数,幂为第二个参数的数值。

解答:

function _pow(number,power) {
    // 补全代码
    if (power === 0) {
        return 1
    }
    let res = number
    for (let i = 1; i < power; i++) {
        res *= number
    }
    return res
}

在这里插入图片描述

总结:
🥭🥭1、2^3= 2 * 2 * 2=8,for循环当,有多少循环多少次。方法很多,经供参考。例如:

function _pow(number,power) {
    // 补全代码
    return power = 0? 1 : number *=number
}

🍓💖🍓💖 可能有些小伙伴power = 0? 1 : number *=number不太明白,这是一个三元运算符。
power=0为真则为1,否则则执行number *=number

条件表达式?True:False



🍓🍓平方根

问题 4:
请补全JavaScript函数,要求返回数字参数的平方根。

注意:只需检测基本数据类型。

解答:

function _sqrt(number) {
    // 补全代码
    return Math.pow(number,0.5);
}

在这里插入图片描述

总结:
🥭🥭1、Math.pow(number,0.5);
🥭🥭 2、0.5改为2 就是平方跟,改为3就是立方跟。

当然也有复杂的解法:

function _sqrt(number) {
    // 补全代码
    let sum = number
    while(true) {
      number--
      if(number > 0) {
        if (sum%number === 0){
            return number
        }
      } else {
          return false
      }
    }
}


🍓🍓余数

问题 5:
请补全JavaScript函数,要求返回数字参数除以2的余数。

解答:

function _remainder(value) {
    // 补全代码
    return value-(value>>2);
}

在这里插入图片描述

总结
🥭🥭1、除了上面之外还有很多种方法。例如

    return value - @ * parseInt(value / 2)
    return value % 2    //对2取余数


🍓🍓数据类型转换

问题 6:
请补全JavaScript函数,要求以字符串的形式返回数字参数所对应的星期。
示例:
1、_getday(1) -> “星期一”
2、 _getday(7) -> “星期天”

解答:

function _getday(value) {
    // 补全代码
    var map = {
        1:'一',
        2:'二',
        3:'三',
        4:'四',
        5:'五',
        6:'六',
        7:'天'
    }
    return '星期'+map[value];
}

在这里插入图片描述

总结:
🥭🥭方法很多,你还可以这样

function _getday(value) {
    // 补全代码
    return `星期${[,'一','二','三','四','五','六','天'][value]}`
}
function _getday(value) {
    // 补全代码
    let dayData = ['一','二','三','四','五','六','天'];
    return '星期' + dayData[value - 1]
}

等等......



🍓🍓从大到小排序

问题 7:
请补全JavaScript函数,要求将数组参数中的数字从大到小进行排序并返回。

function _sort(array) {
    return array.sort((a,b) => b - a);
}

在这里插入图片描述

总结:
🥭🥭排序有很多种方法,但是最主要的只有两种,上面一种是自带的sort排序。下面来看选择排序和冒泡排序吧
选择排序

// 法一:选择排序
function _sort(array) { 
    for(let i = 0; i < array.length; i++) {
        for(let j = i + 1; j < array.length; j++) {
            if(array[i] < array[j]) {
                let temp = array[i];
                array[i] = array[j];
                array[j] = temp;
            }
        }
    }
    return array;
}


冒泡排序

function _sort(array) {
    for(let i = 0; i < array.length; i++) {
        for(var j = 0; j < array.length - i - 1; j++) {
            if(array[j] < array[j + 1]) {
                let temp = array[j];
                array[j] = array[j + 1];
                array[j + 1] = temp;
            }
        } 
    }
    return array;
}



🍓🍓大写字符串

问题 6:
请补全JavaScript函数,要求将字符串参数转换为大写字符串并返回。

function _touppercase(string) {
  const arr = []
	for(let i = 0; i < string.length; ++ i) {
		 const codePoint = string.codePointAt(i)
		 if(codePoint >= 97 && codePoint <= 122) {
			 const charactor = String.fromCodePoint(codePoint - 32)
			arr[i] = charactor
		 } else {
				arr[i] = string.charAt(i)
		 }
	}
	return arr.join('')
}

在这里插入图片描述

总结:
难道这么繁琐,当然不是,在Javascripts中早已经封装好了toUpperCase()方法,只需要拿来用就可以了。

function _touppercase(string) {
    // 补全代码
    return string.toUpperCase();
    
}

Math部分常用方法总结
🥭🥭一、abs是absolute的缩写,是Math里面的一个方法,除了abs还有其他方法,例如。
1.Math.abs() Math.abs()函数,返回一个数的绝对值 Math.abs(-10) // 10
2.Math.ceil() Math.ceil()函数,返回大于或等于一个给定数的最小整数。 Math.ceil(5.4) // 6
3.Math.cos() Math.cos()函数,返回一个值的余弦值。 Math.sin(90 * Math.PI / 180) // 1
4.Math.floor() Math.floor()方法,返回小于或等于一个给定数字的最大整数 Math.floor(5.7) // 5 Math.floor(8.6) // 8



看着是不是感觉手有点痒痒的了。那就来注册下自己试试吧,试试才知道好不好,试试才知道适不适合自己。就算最后没用这款软件那也尝试过,不后悔。
可以伴随一生的编程软件(完全免费),从学校到社会工作,时时刻刻你都可以用到感兴趣的可以去注册试试可以伴随程序员一生的app







觉得有用的可以给个三连,关注一波!!!带你玩转前端

  • 38
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 42
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 42
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不良使

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值