You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用JavaScript创建含lower、upper静态方法的Str类实现大小写转换?

修复Str类的大小写转换方法问题

嘿,我来帮你排查下代码里的问题,顺便给出正确的实现方案:

原代码的几个问题:

  • 你需要的是直接通过类名调用的静态方法(比如Str.lower()),但原代码把逻辑写在了构造函数里,这完全不符合需求的调用方式——构造函数是用来创建类实例的,不是直接通过类名调用的
  • 拼写错误:toLoweCase() 少了个字母r,正确写法是toLowerCase()
  • 构造函数的参数设计也不对,需求里不需要传入lower和upper这两个参数,而是要接收待转换的目标字符串

正确的实现代码:

class Str {
  // 静态lower方法:把传入的字符串转为小写
  static lower(str) {
    // 先做参数校验,避免非字符串参数导致报错
    if (typeof str !== 'string') {
      throw new Error('请传入字符串类型的参数哦');
    }
    return str.toLowerCase();
  }

  // 静态upper方法:把传入的字符串转为大写
  static upper(str) {
    if (typeof str !== 'string') {
      throw new Error('请传入字符串类型的参数哦');
    }
    return str.toUpperCase();
  }
}

// 测试调用
console.log(Str.lower('EAT')); // 返回 'eat'
console.log(Str.upper('today')); // 返回 'TODAY'
console.log(Str.lower('HALO')); // 返回 'halo'

代码说明:

  • 用static关键字定义静态方法,这样就能直接通过Str.方法名()调用,不需要先创建类的实例
  • 增加了参数类型校验,能提前提示错误,避免程序崩溃
  • 修正了字符串方法的拼写错误,确保转换逻辑正常执行

内容的提问来源于stack exchange,提问作者okky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:55:55