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>
2016-09-06
substr是從指定的起始位置截取指定長度,這個是從左往右截取的,只用考慮初始位置,-8的位置是o,然后考慮截取長度,往右截取6個字符,就是o Worl,不會因為你人為計數從最后一個數往左倒數而截取方向變成從右往左,所以不是Hello。
2016-09-12
我現在已不糾結那個問題了
2016-09-12
沒有一個人能解釋你的問題 我也很想知道是為什么 關注~
2016-09-06
substr(<字符表達式>、<數值表達式1>)?-8是從!往前面開始截取,6是取幾位數
第七章還沒有學不知道這樣說對不對啊 ,如果說錯了就是擾亂你的思路了
2016-09-06
document.write(mystr.substr(-8,6) ? ? ? ? ?+ "<br />");從后面倒數8位 ?(!drlow o)就是到o哪里,然后就是o Worl;
-8只是說從后面數起來定位,但是截取的時候還是往前截取的,不是往后