Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript中涉及if语句的slice方法引起的混淆_Javascript_Methods - Fatal编程技术网

JavaScript中涉及if语句的slice方法引起的混淆

JavaScript中涉及if语句的slice方法引起的混淆,javascript,methods,Javascript,Methods,我正在读一本JavaScript书,这个例子显示了 var text=“发现了二战遗迹”; 对于(变量i=0;i

我正在读一本JavaScript书,这个例子显示了

var text=“发现了二战遗迹”;
对于(变量i=0;iconsole.log(文本)切片方法类似于SQL和其他编程语言中的substr方法。
第一个参数是字符串的开头,第二个参数是字符串的长度加上单词的长度

例如,如果一句话说:“德国发动了第二次世界大战” 那么我就15岁了,我+12就27岁了

如果省略第二个参数,则它将假定为数组的长度。

  • “二战”的长度是12,包括空格
  • 给定的文本不仅是
    “二战”
    ,也可能是
    “二战中的某物。”
  • text.slice(i,i+12)
    表示给定文本中的“二战”
  • string.slice(,)
    提取字符串的一部分。
    • 'abcdefg'.切片(0,3)
      =
      'abc'
    • 'abcdefg'。切片(2,3)
      =
      'c'
    • 'abcdefg'。切片(3)
      =
      'defg'
    • 'abcdefg'.切片(0,3)+'XYZ'+'abcdefg'.切片(3)
      =
      'abcXYZdefg'
  • 函数替换WW2(文本){
    对于(变量i=0;i首先,提取字符串的一部分并将其作为新字符串返回,而不修改原始字符串

    参数

  • BeginIndex:它是提取开始的起始索引。这是一个从零开始的索引
  • endIndex:它是字符串提取之前的结束索引。它也是一个从零开始的索引。如果endIndex被
    省略
    大于字符串长度
    ,则字符串提取一直到字符串末尾
  • 您的代码片段所做的是首先将字符串提取为一个新字符串(其中开始索引为
    i
    ,结束索引为
    i+12
    ),即
    text.slice(i,i+12)
    ,然后将此提取的字符串与
    “二战”
    进行比较

    text=text.slice(0,i)+“第二次世界大战”+text.slice(i+12)

    因此,上面的代码片段将“二战”替换为“第二次世界大战”。它包含以下两个部分:

    • text.slice(0,i)
      :它将
      文本从开始索引到当前迭代(直到
      i
      )进行切片
    • text.slice(i+12)
      :它将
      文本从当前迭代(从
      i+12
      )到
      text
      (到
      text.length
      )的末尾进行切片

    什么是
    文本
    ?我将您的代码转换为可运行的代码段。我建议您在循环中取消注释
    控制台.log
    ,并尝试运行它以查看结果,希望这能帮助您理解它的工作原理。@Nick谢谢,我不确定我是否应该编写(文本)的值,因此我感谢您修复它。当我的问题的代码发生变化时,我也(很有趣)感到困惑,但很快意识到这是可以在堆栈溢出中完成的。@DeC有人为我更改了它并给了它一个值,如果你愿意的话。@samabbas 12是因为
    “二战”
    的长度,它是12。你想用
    “第二次世界大战”
    string.slice(,)
    这是错误的。第二个参数不是
    count
    ,即多少。它是endIndex。
    'abcdef'。切片(2,3)
    不等于
    “cde”
    。它等于检查理解正确与理解容易,两者是不同的。如果一件容易的事情不正确,我们就无法理解它。那更好