进行字符串拼接 遇 报错
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);