处理字符串原型中的空类型
2021-08-31
410
我有一个函数
String.prototype.capitalize = function() {
return this.charAt(0).toUpperCase() + this.slice(1);
}
我需要调整它以返回“”(空字符串)
"".capitalize must return ""
undefined.capitalize must return ""
null.capitalize must return ""
我尝试过
String.prototype.capitalize = function() {
return this.charAt(0).toUpperCase() + this.slice(1) || "";
}
但对于未定义,我收到错误:
Uncaught TypeError: Cannot read property 'capitalize' of undefined at <anonymous>:1:6
3个回答
null 和 undefined 不是字符串类型,因此您总是会得到类型错误。您的方法行不通。但您可以创建一个函数来执行此操作
function capitalize(str){
if(str === null || str === undefined ){return ""}
else {return str = str[0].toUpperCase() + str.slice(1)}
}
let str1 = null
let str2 = undefined
let str3 = "abc"
console.log(capitalize(str1))
console.log(capitalize(str2))
console.log(capitalize(str3))
J_K
2021-08-31
我发现这是一个有用的答案。
function capitalize(l){return null==l?"":null==l?"":l.charAt(0).toUpperCase()+l.slice(1)}
Code Guy
2021-09-01
如果
this.length
大于 0,则返回
""
。
String.prototype.capitalize = function() {
return (this.length > 0) ? this.charAt(0).toUpperCase() + this.slice(1) : "";
}
console.log(typeof "test string".capitalize(), ":", "test string".capitalize());
console.log(typeof "".capitalize(), ":", "".capitalize());
chrwahl
2021-08-31