Javascript面试题:20道含答案和代码示例的练习题

  1. 请写出一个将字符串转换为数字的函数,例如将字符串“123”转换为数字123。
function stringToNumber(str) {
    
    
  return Number(str);
}

  1. 请写出一个将数字转换为字符串的函数,例如将数字123转换为字符串“123”。
function numberToString(num) {
    
    
  return num.toString();
}

  1. 请写出一个判断一个字符串是否为回文字符串的函数,例如字符串“racecar”是回文字符串。
function isPalindrome(str) {
    
    
  return str === str.split('').reverse().join('');
}

  1. 请写出一个查找数组中最大值的函数。
function findMax(arr) {
    
    
  return Math.max(...arr);
}

  1. 请写出一个查找数组中最小值的函数。
function findMin(arr) {
    
    
  return Math.min(...arr);
}

  1. 请写出一个将数组元素顺序颠倒的函数。
function reverseArray(arr) {
    
    
  return arr.reverse();
}

  1. 请写出一个计算数组中所有元素之和的函数。
function sumArray(arr) {
    
    
  return arr.reduce((a, b) => a + b, 0);
}

  1. 请写出一个将数组去重的函数。
function uniqueArray(arr) {
    
    
  return Array.from(new Set(arr));
}

  1. 请写出一个将字符串中的每个单词首字母变为大写的函数,例如将字符串“hello world”转换为“Hello World”。
function capitalizeWords(str) {
    
    
  return str.replace(/\\b\\w/g, l => l.toUpperCase());
}

  1. 请写出一个检查字符串中是否包含指定子字符串的函数。
function containsString(str, subStr) {
    
    
  return str.includes(subStr);
}

  1. 请写出一个将字符串中出现的所有大写字母转换为小写字母的函数。
function toLowerCase(str) {
    
    
  return str.replace(/[A-Z]/g, l => l.toLowerCase());
}

  1. 请写出一个将字符串中出现的所有小写字母转换为大写字母的函数。
function toUpperCase(str) {
    
    
  return str.replace(/[a-z]/g, l => l.toUpperCase());
}

  1. 请写出一个将字符串中每个单词的首字母变为大写字母,其他字母变为小写字母的函数,例如将字符串“HELLO WORLD”转换为“Hello World”。
function capitalizeFirstLetter(str) {
    
    
  return str.toLowerCase().replace(/\\b[a-z]/g, l => l.toUpperCase());
}

  1. 请写出一个将字符串中每个单词倒序排列的函数,例如将字符串“hello world”转换为“olleh dlrow”。
function reverseWords(str) {
    
    
  return str.split(' ').map(word => word.split('').reverse().join('')).join(' ');
}

  1. 请写出一个生成指定长度的随机字母数字字符串的函数。
function generateRandomString(length) {
    
    
  let result = '';
  const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
  for (let i = 0; i < length; i++) {
    
    
    result += characters.charAt(Math.floor(Math.random() * characters.length));
  }
  return result;
}

  1. 请写出一个按照指定格式输出当前日期和时间的函数,例如输出“2021年12月31日 23:59:59”。
function getCurrentDateTime() {
    
    
  const date = new Date();
  const year = date.getFullYear();
  const month = String(date.getMonth() + 1).padStart(2, '0');
  const day = String(date.getDate()).padStart(2, '0');
  const hours = String(date.getHours()).padStart(2, '0');
  const minutes = String(date.getMinutes()).padStart(2, '0');
  const seconds = String(date.getSeconds()).padStart(2, '0');
  return `${
      
      year}-${
      
      month}-${
      
      day} ${
      
      hours}:${
      
      minutes}:${
      
      seconds}`;
}

  1. 请写出一个计算给定两个日期之间相差的天数的函数。
function getDaysBetweenDates(date1, date2) {
    
    
  const oneDay = 24 * 60 * 60 * 1000;
  const diffDays = Math.round(Math.abs((date2 - date1) / oneDay));
  return diffDays;
}

  1. 请写出一个判断一个数是否为质数的函数。
function isPrime(num) {
    
    
  if (num <= 1) {
    
    
    return false;
  }
  for (let i = 2; i <= Math.sqrt(num); i++) {
    
    
    if (num % i === 0) {
    
    
      return false;
    }
  }
  return true;
}

  1. 请写出一个将给定数字转换为罗马数字的函数,例如将数字4转换为罗马数字“IV”。
function intToRoman(num) {
    
    
  const romanMap = {
    
    
    M: 1000,
    CM: 900,
    D: 500,
    CD: 400,
    C: 100,
    XC: 90,
    L: 50,
    XL: 40,
    X: 10,
    IX: 9,
    V: 5,
    IV: 4,
    I: 1,
  };
  let result = '';
  for (let key in romanMap) {
    
    
    while (num >= romanMap[key]) {
    
    
      result += key;
      num -= romanMap[key];
    }
  }
  return result;
}

  1. 请写出一个计算给定两个整数的最大公约数的函数。
function getGreatestCommonDivisor(num1, num2) {
    
    
  if (num2 === 0) {
    
    
    return num1;
  }
  return getGreatestCommonDivisor(num2, num1 % num2);
}
}

猜你喜欢

转载自blog.csdn.net/qq_27244301/article/details/130578226