将属性添加到字符串

时间:2019-02-13 10:31:09

标签: javascript string

谁可以帮助我理解以下代码

var  str = 'test1'
str.len = 4
var strlen1 = str.len
console.log('strlen1 = ', strlen1) // strlen1 =  undefined
var strlen2 = str.len = 4
console.log('strlen2 = ', strlen2) // strlen2 = 4

为什么得到此输出?谢谢

5 个答案:

答案 0 :(得分:1)

如果要向Sting对象添加属性,可以执行以下操作:

String.prototype.len = null;
var  str = new String('test1');
str.len = 4
var strlen1 = str.len
console.log('strlen1 = ', strlen1) // strlen1 =  4

写的时候

var str = "test1";
var strlen2 = str.len = 4
console.log('strlen2 = ', strlen2) // strlen2 = 4
console.log('str.len = ', str.len) // strlen2 = undefined

str.len仍未定义

答案 1 :(得分:0)

str.len = 4 str 是一个字符串,因此您无法为其设置属性。

var strlen2 = str.len = 4 strlen2 是一个等于4的普通变量。此处str.len仍为undefined

您将能够按照以下代码进行操作

var x = 'this is string';

var data = {}

data.len = x.length;

console.log(data.len)

答案 2 :(得分:0)

由于str是字符串文字,因此str.len = 4基本上呈现为

var temp = new String(str);
temp.len = 4;
temp = null

您可以看到所应用的任何更新都是临时的,在该行之后不可用。因此,由于str.len未定义,因此使用var strlen1 = str.lenundefined分配给strlen1

var strlen2 = str.len = 4基本上呈现为

var strlen2 = 4;
str.len = 4;

因此您可以看到,有2种不同的分配方式,而不是将4种分配给str.len,然后将str.len分配给strlen2

如果要使第一个条件起作用,请使str为String对象。尝试关注

var  str = new String('test1')
str.len = 4
var strlen1 = str.len
console.log('strlen1 = ', strlen1) // will paint 4

答案 3 :(得分:0)

通过测试可以看到:

var  str = 'test1'
str.len = 4
console.log(str.len) // Undefined

话虽如此,您意识到您无法将属性添加到字符串中。您可能想使用一个对象。

顺便说一句,您真的需要在其中添加“ .len”吗?你不能使用string.length吗?

答案 4 :(得分:0)

var z=undefined=4
console.log(z) //4

您的表达式str.len将给出undefined,您不能将属性设置为字符串