字符串
就是由一組雙引號或單引號組成字符,就是字符串
字符串的創(chuàng)建方式
字符串的字面量表達式
var str = '大家好,我是周杰倫';
console.log(typeof (str)); //string
var str = new String();
console.log(str);
console.log(typeof (str));// object
var str = String("你好");
// console.log(str);
值類型到引用類型 (裝箱)
var str = "abc";
var str2 = new String(str); //裝箱
console.log(str2);
引用類型到值類型 (拆箱)
var str = new String("大家好");
console.log(str.toString());
字符串有一個特性 (恒定性,不會被修改);
字符串的 length屬性
var str = 'abc123';
console.log(str.length);//6
遍歷字符串
var str = 'abc123';
for (var i = 0; i < str.length; i++) {
console.log(str[i]);
}
for (var key in str) {
console.log(str[key]);
}
charAt(index)等價于 [index],通過下標取字符
var str = "abc123";
var s = str.charAt(2); // [index]
charCodeAt(),把字符轉(zhuǎn)成ASCII值
var str = "abc123";
console.log(str.charCodeAt(2)); // 99
console.log(str.charCodeAt(4)); // 50
String.fromCharCode() 把 ascii碼轉(zhuǎn)成字符串,靜態(tài)方法 工具方法
var str = String.fromCharCode(65, 66, 67);
console.log(str); //ABC
截取
substring()
第1個參數(shù):開始位置
第2個參數(shù):結(jié)束位置(多數(shù)一位)
會自動調(diào)整參數(shù)的順序,始終從小到大
var str = "abc123"; //c1
var a = str.substring(4, 2);
slice()
var str = "abc123";
var a = str.slice(2, 4);
substr()
第1個參數(shù):表示開始位置
第2個參數(shù):表示個數(shù)
var str = "abc123";
console.log(str.substr(2, 2));
切割 split 返回數(shù)組 ,它也是支持正則
var str = "今天-天氣-還不錯"; //轉(zhuǎn)換數(shù)組
var arr = str.split("")
console.log(arr);
替換 replace()
var str = "你好";
var str1 = str.replace("你", "他"); //支持正則
console.log(str1); //他好
查找,indexOf 找到了返回下標,找不到 -1
var str = "劉德華";
console.log(str.indexOf("德"));
search 它支持正則(同上)
var str = "劉德華";
console.log(str.search("李"));
match 找到了返回數(shù)組,找不到返回null,也是支持正則
var str = "劉德華李德華";
console.log(str.match("你"));
concat 合并
lastIndexOf 同indexOf,從后面開始尋找
合并 concat
var str1 = "abc";
var str2 = "123";
var str3 = str1.concat(str2, "!");
轉(zhuǎn)大寫,toUpperCase()
var str = "abc";
console.log(str.toUpperCase());
轉(zhuǎn)小寫
toLowerCase()
var str = "AFDDGSGDGS";
console.log(str.toLowerCase());
去掉前后空白 trim
var str = " abc 123 ";
console.log(str.trim());
https://www.baidu.com/s?name=avery&age=20&sex=male , 取出name, age和sex的值 (split)
var str = "https://www.baidu.com/s?name=avery&age=20&sex=male"
var str1 = str.split("?")[1] // name=avery&age=20&sex=male
var arr = str1.split("&");// [name=avery,age=20,sex=male]
arr.forEach(function (item, index) {
var val = item.split("=")[1];
console.log(val);
})
任意一段字符串,找出出現(xiàn)次數(shù)最多的字符? 擴展題 數(shù)組是特殊的對象
var str = "@#$%^&*(retyuifefwrfwefweweewfrwerwwwwwwwwwFGHJK";
var arr = [];
for (var i = 0; i < str.length; i++) {
var key = str[i];//字符
if (arr[key] == undefined) {//說明以前沒有出現(xiàn)過指定字符
arr[key] = 1;
} else {
arr[key] += 1
}
}
//假設(shè)第一個出現(xiàn)是最多的
var maxChar = "";
var maxCount = 0;
for (var key in arr) {
//arr[key] 字符的次數(shù)
// key 字符
if (arr[key] > maxCount) {
maxChar = key;
maxCount = arr[key]
}
}
console.log(maxChar, maxCount);