摘要:總結(jié)整理與字符串相關(guān)的知識點。第二個參數(shù),表示開始搜索的位置返回布爾值,表示參數(shù)字符串是否在原字符串的頭部。能識別位字符。
總結(jié):整理與字符串相關(guān)的知識點。
主要有
1.對字符串的查找,如是否有某些字符,字符在哪個位置,根據(jù)位置去查找字符
2.對字符串的刪除,截取我們想要的字符,也可能是刪除我們不想要的字符
3.對字符串的增加 固定格式的補全 自動補全 重復補全 拼接
4.對字符串的替換,對某些字符的全部替換 或者說僅對第一個出現(xiàn)的字符替換
5.轉(zhuǎn)換 大小寫的轉(zhuǎn)換 轉(zhuǎn)為碼點 碼點轉(zhuǎn)字符
6.不同類型的轉(zhuǎn)換;數(shù)字與字符串的轉(zhuǎn)換 數(shù)組與字符串的轉(zhuǎn)換
7.比較 比較大小 比較某些字符出現(xiàn)的位置順序
含義 | 方法 | 返回值 | 改變原字符串 |
---|---|---|---|
查找 | indexOf() | 位置 | no |
查找 | search() | 位置 | yes |
查找 | includes() | boolean | no |
查找 | startswith()頭部有? | boolean | yes |
查找 | endsWith() 尾部有? | boolean | yes |
截取 | substr(start,length) | 新字符串 | no |
截取 | substring(start,stop) | 新字符串 | no |
截取 | slice(start,stop) | 新字符串 | no |
去空格 | trim() | ** | no |
重復次數(shù) | repeat(n) | 新字符串 | no |
補全 | padStart(length,value) 頭部補全 | 新字符串 | no |
補全 | padEnd(length,value)尾部補全 | 新字符串 | no |
匹配 | match() | 查找項+位置 | no |
正則的全匹配 | matchAll() | 正則 | yes |
替換 | replace() | 新字符串 | no |
轉(zhuǎn)小寫 | toUpperCase() | 新字符串 | yes |
轉(zhuǎn)小寫 | toLowerCase() | 新字符串 | yes |
轉(zhuǎn)碼點 | charCodeAt() | 新字符 | no |
轉(zhuǎn)碼點 | codePointAt() | 位置 | no |
轉(zhuǎn)字符 | charAt() | 新字符 | no |
轉(zhuǎn)字符 | at() 還未實現(xiàn) | 位置 | no |
碼點->字符 | String.fromCodePoint() | 新字符 | / |
比較位置順序 | localeCompare(a,b) | 1/-1/0 | no |
** | normalize() | ** | no |
如是否有某些字符,某個字符的位置是哪里? 第n 位的字符是什么
1.1 根據(jù)位置查找charAt(n) -----返回字符;只接收位置參數(shù),位置參數(shù)過大時,返回空。參數(shù)非數(shù)字時,返回第一個字符
可通過str[n]的方式 -----返回字符---位置參數(shù)過大時,返回undefined
charCodeAt(n) -----返回碼點,es5
codePointAt(n)-----返回碼點,es6 ,優(yōu)勢,能識別大于oxFFFF的編碼
var s = "kljlk;juoi" s.charAt(2) // j s.charAt("j") // k s.charAt("15") // "" s[15] // undefined s[3] // l s.charCodeAt(2) // 106 s.codePointAt(2) // 1061.2 是否有某些字符,根據(jù)字符查找
- indexOf()-------返回位置,沒有就返回-1 - lastIndexOf();---返回位置,從后開始查找 - includes():返回布爾值,表示是否找到了參數(shù)字符串。第二個參數(shù),表示開始搜索的位置 - startsWith():返回布爾值,表示參數(shù)字符串是否在原字符串的頭部。第二個參數(shù),表示開始搜索的位置 - endsWith():返回布爾值,表示參數(shù)字符串是否在原字符串的尾部第二個參數(shù),表示開始搜索的位置 - match()---返回相關(guān)的信息--只接受一個參數(shù),要么正則表達式 要么RegExp對象 - search()----返回位置,沒有就返回-1---只接受一個參數(shù),要么正則表達式 要么RegExp對象
let s = "Hello world!"; s.startsWith("world", 6) // true s.endsWith("Hello", 5) // true s.includes("Hello", 6) // false var s1 = "fdkfdkjldrm " s1.indexOf("kjl") // 5 s1.lastIndexOf("kjl") // 5 s1.indexOf("fd") // 0 s1.lastIndexOf("fd") // 3 s1.search("fdlp") // -1 s1.search("fd") // 0 s1.search("kjl") // 5 s1.match("fd") // ["fd", index: 0, input: "fdkfdkjldrm ", groups: undefined] s1.match("f5") // null2.字符串的增刪改
以下4種方法不會修改字符串本身;
2.1 刪除
2.1.2截取
slice(start,stop)
substring(start,stop)
substr(start,length)
**共同點:** 基于字符串創(chuàng)建新字符串,不改變原有字符串 第二個參數(shù)是可選的 無第二個參數(shù),即字符結(jié)尾為結(jié)束位置 **不同點** 對負數(shù)的處理: slice()---將負數(shù)和字符串長度相加 substring()----將負數(shù)轉(zhuǎn)為0 substr()---將第一個負數(shù)和字符串長度相加。第二個負數(shù)轉(zhuǎn)為0,即不截取
2.1.2 刪除空格
trim() 刪除字符串中 前置和后置的空格2.2 增加 2.2.1 復制n遍字符串
repeat(n) --返回一個新字符串,表示將原字符串重復n次。
參數(shù)如果是小數(shù),會被取整。
"x".repeat(3) // "xxx" "hello".repeat(2) // "hellohello" "na".repeat(0) // "" "na".repeat(2.9) // "nana" "na".repeat(Infinity) // RangeError "na".repeat(-1) // RangeError 參數(shù)NaN等同于 02.2.2.補全長度
padStart(minlength,string)用于頭部補全,
padEnd(minlength,string)用于尾部補全
用途:
提示字符串格式;
為數(shù)值補全指定位數(shù)
"x".padStart(5, "ab") // "ababx" "x".padStart(4, "ab") // "abax" "x".padEnd(5, "ab") // "xabab" "x".padEnd(4, "ab") // "xaba" "xxx".padStart(2, "ab") // "xxx" "xxx".padEnd(2, "ab") // "xxx" "x".padStart(4) // " x" "x".padEnd(4) // "x " "12".padStart(10, "YYYY-MM-DD") // "YYYY-MM-12" "09-12".padStart(10, "YYYY-MM-DD") // "YYYY-09-12"2.3 - 拼接 concat(); 2.4 修改
replace();
3.字符串的轉(zhuǎn)換 3.1 大小寫的轉(zhuǎn)換- toLowerCase();-----小寫 - toUpperCase();----變大寫 - toLocaleLowerCase(); - toLocaleUpperCase();3.2 碼點 --> 字符
根據(jù)碼點返回對應的字符
es5:String.fromCharCode(0x20BB7); 定義在String對象上
es6:String.fromCodePoint();定義在字符串的實例對象上。--能識別32位字符。即能識別Unicode編號大于oxFFFF;
String.fromCharCode(100) "d" String.fromCodePoint(0x20BB7) // "?" String.fromCodePoint(100,100,100) // ffffd4.不同類型的轉(zhuǎn)換 4.1 string 與 array
array.join(",") ------將數(shù)組轉(zhuǎn)字符串
string.split(",") ---------字符串轉(zhuǎn)數(shù)組
number --->string(4種)
1.Number() 2.parseInt() 3.parseFloat() 4.+string-----
var s = "23" var k = +s typeof k // number
number---> string(4種)
String(number)--強制轉(zhuǎn)換 toString(8進制) toFixed(n)---//數(shù)字轉(zhuǎn)換為字符串,并且顯示小數(shù)點后的指定的位數(shù) number + ""
var s = 123.68 var k= s.tiString(8) var k0 = s.toFixed(1) var k1 = String(s) k // "173.43656" k0 // "123.7" k1 // "123.68"4.3 string 與 object
JSON.parse() ------ json 字符串 轉(zhuǎn) json 對象
JSON.stringify() -----json 對象轉(zhuǎn) json 字符串
localeCompare()---比較2個字符串,參數(shù)應該在比較的字符串前面,則返回1;后面,則 -1; 等于,則 0;
var s= "dfhk" s.localeCompare("fgfg") // -1 s.localeCompare("afgfg") // 1 s.localeCompare("dfhk") // 0 s.localeCompare("df") // 16.其他常用的方法 6.1字符串的遍歷器接口
字符串可以被for...of循環(huán)遍歷。
與es5的比較
for循環(huán)雖可以遍歷字符串,但不能識別大于oxFFFF的編碼;
valueOf()
toLocaleString()
7.{{BANNED}}考題1.
function showCase(value) { switch(value) { case "A": console.log("Case A"); break; case "B": console.log("Case B"); break; case undefined: console.log("undefined"); break; default: console.log("Do not know!"); } } showCase(new String("A")); 結(jié)果是 ‘"Do not know!’
2.
function showCase2(value) { switch(value) { case "A": console.log("Case A"); break; case "B": console.log("Case B"); break; case undefined: console.log("undefined"); break; default: console.log("Do not know!"); } } showCase2(String("A")); 結(jié)果是‘Case A’
3.
"5" + 3
"5" - 3
// 53 2; because:Strings know about + and will use it, but they are ignorant of - so in that case the strings get converted to numbers.
4.
3.toString() 3..toString() 3...toString() // error "3" error;because:1.1, 1., .1 都是合法的數(shù)字. 那么在解析 3.toString 的時候這個 . 到底是屬于這個數(shù)字還是函數(shù)調(diào)用呢? 只能是數(shù)字, 因為3.合法啊!
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/107193.html
摘要:將元素作為對象的鍵,默認鍵對應的值為如果對象中沒有這個鍵,則將這個元素放入結(jié)果數(shù)組中去。 前言 數(shù)組去重在日常開發(fā)中的使用頻率還是較高的,也是網(wǎng)上隨便一抓一大把的話題,所以,我寫這篇文章目的在于歸納和總結(jié),既然很多人都在提的數(shù)組去重,自己到底了解多少呢。又或者是如果自己在開發(fā)中遇到了去重的需求,自己能想到更好的解決方案嗎。 這次我們來理一理怎么做數(shù)組去重才能做得最合適,既要考慮兼容性,...
摘要:根據(jù)需求的特點,數(shù)組展開需要進行迭代和遞歸?;卮鹞恼麻_頭的問題將多重數(shù)組轉(zhuǎn)化成單層數(shù)組的過程就是數(shù)組展開,也叫作數(shù)組扁平化一循環(huán)加遞歸最簡單的思路循環(huán)中判斷,如果子元素是數(shù)組則遞歸。 前言 首先什么是數(shù)組展開? 假如現(xiàn)在有這樣一個需求:將后臺的一個多重 List 數(shù)據(jù),展開成一個 List 后,并去重后排序; [a, b, [c, d], [[d],e], f] => [a, b, ...
摘要:獨立構(gòu)建和運行時構(gòu)建的區(qū)別標簽空格分隔未分類在使用時,有獨立構(gòu)建和運行時構(gòu)建兩種版本可供選擇。運行時構(gòu)建不包括模板編譯,不支持選項。這就形成了獨立構(gòu)建編譯器運行時和運行時構(gòu)建僅運行時。 Vue.js 2.0 獨立構(gòu)建和運行時構(gòu)建的區(qū)別 標簽(空格分隔): 未分類 在使用 Vue.js 2.0 時,有獨立構(gòu)建(standalone)和運行時構(gòu)建(runtime-only)兩種版本可供選...
摘要:獨立構(gòu)建和運行時構(gòu)建的區(qū)別標簽空格分隔未分類在使用時,有獨立構(gòu)建和運行時構(gòu)建兩種版本可供選擇。運行時構(gòu)建不包括模板編譯,不支持選項。這就形成了獨立構(gòu)建編譯器運行時和運行時構(gòu)建僅運行時。 Vue.js 2.0 獨立構(gòu)建和運行時構(gòu)建的區(qū)別 標簽(空格分隔): 未分類 在使用 Vue.js 2.0 時,有獨立構(gòu)建(standalone)和運行時構(gòu)建(runtime-only)兩種版本可供選...
閱讀 1030·2021-09-22 15:26
閱讀 2607·2021-09-09 11:52
閱讀 1890·2021-09-02 09:52
閱讀 2241·2021-08-12 13:28
閱讀 1180·2019-08-30 15:53
閱讀 506·2019-08-29 13:47
閱讀 3380·2019-08-29 11:00
閱讀 3095·2019-08-29 10:58