Javascript js多字符串

Javascript js多字符串,javascript,Javascript,我试图理解以下代码: var text = "Hi, my name is Tyler. How are you?"; var myName = "Tyler"; var hits = []; for (i = 0; i<= text.length; i++) { if (text[i] === "T") { for (j = i; j = (i + myName.length); j++) { hits.push(i); } } } 文本[i]实际上

我试图理解以下代码:

var text = "Hi, my name is Tyler. How are you?";
var myName = "Tyler";
var hits = [];
for (i = 0; i<= text.length; i++) {
  if (text[i] === "T") {
    for (j = i; j = (i + myName.length); j++) {
      hits.push(i);
    }
  }
}
文本[i]实际上是什么意思?对我来说,它似乎是在文本数组中查找i元素。我不明白这有两个原因。第一个是i元素没有被定义为任何东西。是不是说搜索文本数组中的每个元素,直到它匹配我名字的第一个字母T?第二,为什么它只是一个字符串,却将文本表示为一个数组?文本后面的[]括号不意味着它将文本作为数组引用吗

如果这个问题没有真正意义,我很抱歉,但我只是被这一切弄糊涂了!提前感谢任何能为我回答这个问题的人

文本[i]实际上是什么意思

从文本中获取属性i

在文本数组中查找i元素

文本是字符串,而不是数组

第一个是i元素没有被定义为任何东西

i在前一行中定义:


JavaScript字符串和数组有一个共同点:它们都是可编辑的,这意味着我们可以一次检查一个元素。我们使用下标[index]引用该元素,其中index是一个范围为0到长度-1的数字

var myArray = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ];
console.log(myArray.length); // 10
console.log(myArray[myArray.length]); // undefined
console.log(myArray[myArray.length-1]); // 9

var myString = "0123456789";
console.log(myString.length); // 10
console.log(myString[myString.length]); // undefined
console.log(myString[myString.length -1]); // 9
我们发现两者都有一个共同的索引特征:

它们都是零索引的。 它们都使用索引下标。 它们都是可移植的,我们可以通过元素循环。 为了显示差异,我们需要尝试分配任务

myArray[myArray.length] = 10;
console.log(myArray[myArray.length-1]); // 10
myString[myString.length] = "A";
console.log(myString[myString.length-1]); // undefined
进一步说明,

myArray[5] = 55;
console.log(myArray[5]); // 55
myString[5] = "f";
console.log(myString[5]); // 5
这表明,虽然我们可以通过引用数组元素的索引将值或对象分配给数组元素,但我们不能使用字符串。描述这一点的术语是可变性。数组是可变的,我们可以更改它的元素。字符串是不可变的,我们不能更改它的字符


所以我们现在知道了文本[i]是什么。索引i处字符串文本中的一个字符,其中i从零开始,该索引表示字符串的开头。

JavaScript字符串和数组有一个共同点: 他们俩都很难相处

范例

排列

var myString = "0123456789";
console.log(myString.length); // 10
console.log(myString[myString.length]); // undefined
console.log(myString[myString.length -1]); // 9
myArray[5] = 55;
console.log(myArray[5]); // 55
myString[5] = "f";
console.log(myString[5]); // 5
var myArray = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ];
console.log(myArray.length); // 10
console.log(myArray[myArray.length]); // undefined
console.log(myArray[myArray.length-1]); // 9
var myString = "0123456789";
console.log(myString.length); // 10
console.log(myString[myString.length]); // undefined
console.log(myString[myString.length -1]); // 9