substring, substr,slice 的區(qū)別

今天重新回顧了JS高級程序設(shè)計 操作字符串有個有點意思的東西 分享下

var a = 'hello world'

a.substring(3)? ? ? ? ? ? ? ? ? ? ? ? ? ? //? lo world

a.substr(3) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //? lo world

a.slice(3) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //? lo world

a.substring(-3)? ? ? ? ? ? ? ? ? ? ? ? ? //? hello world

a.substr(-3) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // ?rld

a.slice(-3) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//? rld

可能大家出的比較多的應(yīng)該是 substring , 這里需要注意的是 當(dāng)substring 為負(fù)數(shù)的時候,其實可以當(dāng)成0來算,也就是a.substring(0) 那當(dāng)然就是 hello world

這個實在so easy 那我們來2個參數(shù)

a.substring(3, 7)? ? ? ? ? ? ? ? ? ? ? ? ? ? //? lo w

a.substr(3, 7) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //? lo worl

a.slice(3, 7) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // ? lo w

a.substring(3, -4)? ? ? ? ? ? ? ? ? ? ? ? ? ? // ?hel

a.substr(3, -4) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// ?"" ?空字符串

a.slice(3, -4) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//? lo w

可能后面三個錯的比較多

第一個substring 第二個參數(shù)為負(fù)數(shù)所以當(dāng)成0 也就是 a.substring(3,0) substring 是干從小到大的順序來的 也就變成了 a.substring(0,3) 所以就為hel了

第二個substr, 第二個參數(shù)為負(fù)數(shù)所以要當(dāng)成0 ,那么substr(3,0) 就是說從第三個位置取0個 那當(dāng)然就是空字符串呢

第三個slice ,第二哥參數(shù)為負(fù)數(shù)所以要當(dāng)成總數(shù)-4 來看 就是 11-4 = 7 就為a.slice(3,7) 所以就為 low?

簡單吧~~~~ ??

^_^

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容