Uncaught TypeError: Cannot read properties of undefined (reading ‘slice‘)

进行字符串拼接 遇 报错

  var str2 = "get-element-by-class-name";
    //最终输出 getElementByClassName

  var ia = str2.split("-");
  var nStr = '';
  for (var i = 0; i <= ia.length; i++) {

    var a = ia[i].slice(0, 1);
    var b = ia[i].slice(1);
    var c = a.toUpperCase() + b;
    nStr += c;

  }
  console.log(nStr);

原因是 i <= ia.length,会取到空值; ia[i] 可能为 undefined,下方代码出现同样的错误

  var a = undefined;
  var b = a.slice(0, 1);
  console.log(b);

对 ia[i] 判断就可以了

// 方法1
var a = ia[i] === undefined ? '' : ia[i].slice(0, 1);
var b = ia[i] === undefined ? '' : ia[i].slice(1);

//方法2
var a = (ia[i] || '').slice(0, 1);
var b = (ia[i] || '').slice(1);

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值