Qual è la differenza tra slice () e substr () in JavaScript?

Posso chiedere quale sia la differenza tra lo strato di object string slice() e il substr() in JavaScript?

Hanno firme diverse, .slice() è:

 string.slice(beginIndex, endIndex) 

Considerando che .substr() è:

 string.substr(beginIndex, length); 

Per esempio, se abbiamo "1234" e volevamo "23" , sarebbe:

 "1234".slice(1,3) //or... "1234".substr(1,2) 

Hanno anche comportmenti diversi per gli indici negativi più usati raramente, guardare la documentazione MDC per .slice() e .substr() per le descrizioni complete.

  1. String.slice(begin, end)

    Questo metodo taglierà il text begin alla end carattere, ad esempio:

     alert("Hello World!".slice(1, 8)); // ello Wo 
  2. String.substr(begin, length)

    Questo metodo taglierà il text da begin e begin + carattere di length , es .:

     alert("Hello World!".substr(1, 8)); // ello Wor 
 var str="Hello world!"; document.write(str.substring(3,7)+"<br />"); document.write(str.slice(3,7)+"<br />"); document.write(str.substr(3,7)); 

risultato:

 lo w lo w lo worl 

Substring ()

1.If inizio equals stop, restituisce una string vuota. 2.If arresto viene omesso, estrae i caratteri alla fine della string. 3.If inizio> arresto, la sottostringerà i 2 argomenti. 4.If argomento è maggiore della lunghezza della string, entrambi gli argomenti utilizzeranno la lunghezza della string. 5.If argomento è inferiore a 0 o è NaN, viene trattato come se fosse 0.

fetta()

1.If start equals stop, restituisce una string vuota, esattamente come substring (). 2.If arresto viene omesso, gli estremi delle fette tagliano alla fine della string, esattamente come substring (). 3.If inizio> stop, la fetta () non sostituirà i 2 argomenti. 4. Se l'argomento è maggiore della lunghezza della string, entrambi gli argomenti utilizzeranno la lunghezza della string, esattamente come substring ().

Penso che la differenza tra str.slice() e str.substr() sia il secondo parametro:

.slice() prende EndIndex mentre .substr() prende la lunghezza come in:

.slice(StartIndex,EndIndex) e .substr(StartIndex,length).

fetta (inizio: numero, fine: numero) Estrae una porzione di una string tra le posizioni di partenza e di fine specificate.

substr (start: number, length: number) Estrae una porzione di una string dalla posizione di partenza alla lunghezza data.