a=new String("Hello");
a[0]==="H" //true
a[0]="J"
a[0]==="J" //false
a[0]==="H" //true
这是否意味着我只能在.split("")
then之前将字符串用作 char 数组.join("")
?
答案:是的,在Javascript strings are readonly
(又名不可变)这个问题在这里得到回答:
a=new String("Hello");
a[0]==="H" //true
a[0]="J"
a[0]==="J" //false
a[0]==="H" //true
这是否意味着我只能在.split("")
then之前将字符串用作 char 数组.join("")
?
答案:是的,在Javascript strings are readonly
(又名不可变)这个问题在这里得到回答:
如果有必要能够对字符串执行操作,就好像它是一个数组或字符一样,您可能会创建一些原型:
String.prototype.splice = function(start,length,insert) {
var a = this.slice(0, start);
var b = this.slice(start+length, this.length);
if (!insert) {insert = "";};
return new String(a + insert + b);
};
String.prototype.push = function(insert) {
var a = this
return new String(a + insert);
};
String.prototype.pop = function() {
return new String(this.slice(0,this.length-1));
};
String.prototype.concat = function() {
if (arguments.length > 0) {
var string = "";
for (var i=0; i < arguments.length; i++) {
string += arguments[i];
};
return new String(this + string);
};
};
String.prototype.sort = function(funct) {
var arr = [];
var string = "";
for (var i=0; i < this.length; i++) {
arr.push(this[i]);
};
arr.sort(funct);
for (var i=0; i < arr.length; i++) {
string += arr[i];
};
return new String(string);
};
var a = new String("hello");
var b = a.splice(1,1,"b");
var c = a.pop();
var d = a.concat(b,c);
var e = a.sort();
返回你好,hbllo,地狱,hellohbllohell,ehllo
Strings 原型的 .valueOf() 方法不会返回其原始值吗?像,
基本上,javascript中的字符串由两种类型区分,一种是原始的,另一种是对象的。字符串对象是字符序列。
您可以使用原始类型的 string 。
var x = "hello";
console.log(x);
output : "hello"
x = "j"+x.substring(1);
console.log(x);
output : "jello";
或使用
var x = new String("hello");
console.log(x.toString());
x = "j"+x.substring(1);