亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

startPos為負數且絕對值大于字符串長度,為什么結果卻是這樣?(360瀏覽器的測試結果)

startPos為負數且絕對值大于字符串長度,為什么結果不是

startPos為負數且絕對值大于字符串長度,startPos為0。
結果卻是:”o Worl“,為什么不是“Hello?”。


<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>無標題文檔</title>

<script type="text/javascript">

var mystr="Hello World!";

document.write(mystr.substr(6) ? ? ? ? ?+ "<br />");

document.write(mystr.substr(2,6) ? ? ? ? ?+ "<br />");

document.write( mystr.substr(0,6) ?+ "<br />" ? ? ? ? ? ? ? ? ? ? );

document.write(mystr.substr(-2,6) ? ? ? ? ?+ "<br />");

document.write(mystr.substr(-8,6) ? ? ? ? ?+ "<br />");


</script>

</head>

<body>

</body>

</html>


正在回答

5 回答

substr是從指定的起始位置截取指定長度,這個是從左往右截取的,只用考慮初始位置,-8的位置是o,然后考慮截取長度,往右截取6個字符,就是o Worl,不會因為你人為計數從最后一個數往左倒數而截取方向變成從右往左,所以不是Hello。

1 回復 有任何疑惑可以回復我~
#1

野楓

補充一點,截取時如果指定截取長度到達最后一個字符后則停止,比如截取位置是-1,截取長度是6,只會截取最后一個字符,不會繼續“跑”到開始位置截取。
2016-09-06 回復 有任何疑惑可以回復我~
#2

有禮彬 提問者 回復 野楓

當,startPos為負數且絕對值大于字符串長度,startPos為0。怎么解釋?
2016-09-06 回復 有任何疑惑可以回復我~
#3

慕村1994845 回復 有禮彬 提問者

樓上其實已經說了,比方數組長度為7,startPos為-8;那么我這樣理解,從尾部開始往頭部數,-1,-2,-3...當數到頭部第一位時,動作會停止,然后取值首位,而首位的檢索號就是0,那么此時startPos為0
2016-09-20 回復 有任何疑惑可以回復我~
#4

有禮彬 提問者

非常感謝!
2016-09-21 回復 有任何疑惑可以回復我~
查看1條回復

我現在已不糾結那個問題了


0 回復 有任何疑惑可以回復我~

沒有一個人能解釋你的問題 我也很想知道是為什么 關注~

0 回復 有任何疑惑可以回復我~

substr(<字符表達式>、<數值表達式1>)?-8是從!往前面開始截取,6是取幾位數

document.write(mystr.substr(-16,5)?+?"<br?/>");??//結果就是?hello

第七章還沒有學不知道這樣說對不對啊 ,如果說錯了就是擾亂你的思路了

0 回復 有任何疑惑可以回復我~
#1

有禮彬 提問者

當,startPos為負數且絕對值大于字符串長度,startPos為0。怎么解釋?
2016-09-06 回復 有任何疑惑可以回復我~

document.write(mystr.substr(-8,6) ? ? ? ? ?+ "<br />");從后面倒數8位 ?(!drlow o)就是到o哪里,然后就是o Worl;

-8只是說從后面數起來定位,但是截取的時候還是往前截取的,不是往后

0 回復 有任何疑惑可以回復我~
#1

有禮彬 提問者

當,startPos為負數且絕對值大于字符串長度,startPos為0。怎么解釋?
2016-09-06 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

startPos為負數且絕對值大于字符串長度,為什么結果卻是這樣?(360瀏覽器的測試結果)

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號