谁可以帮助我理解以下代码
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
为什么得到此输出?谢谢
答案 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.len
将undefined
分配给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,您不能将属性设置为字符串