字元串 字元串 字元串也是一個數據結構,將同樣的內容串在一塊。因為在對應的js裡面字元串屬於一個值類型(值類型是常量 常量是不能變)。字元串是不能改變的。結合數據結構裡面串也是一個存儲結構,作為存儲結構增刪改查的方法(字元串的增刪改查 不能針對於本身 而是返回一個新的字元串) 字元串的聲明 1.值類 ...
字元串
字元串也是一個數據結構,將同樣的內容串在一塊。因為在對應的js裡面字元串屬於一個值類型(值類型是常量 常量是不能變)。字元串是不能改變的。結合數據結構裡面串也是一個存儲結構,作為存儲結構增刪改查的方法(字元串的增刪改查 不能針對於本身 而是返回一個新的字元串)
字元串的聲明
var str = "hello world"
2.以new關鍵詞聲明(引用了對應的值的地址)
var str = new String("abc"); //引用了空值的地址
ES6新增 字元串模板
var a = 'jack' var str = `hello string ${a}` //esc下麵的這個鍵 解析${} 以變數來解析 console.log(str); //hello string jack
new String() 和 String() 區別
-
new String是構建一個String對象 (引用數據類型 有地址指向的)
-
String 單純的將對應的傳進入的參數轉為string類型(值類型)
字元串的屬性
length屬性 返回字元串的長度(包含空格及換行)
var str = 'a b' console.log(str.length)//3
通過下標來獲取對應的字元串
var str = 'abc' console.log(str[0]) //a
字元串的方法(返回新的字元串)
通過下標找字元串(char 字元)
charAt(下標)
var str = 'abc' str.charAt(0) //返回的是a
charCodeAt (ACSII碼)
var str = 'abc' str.charCodeAt(0) //返回的是97
通過字元串找下標(找不到返回-1 找的到返回對應的下標值 number(第一次出現的))
indexOf
var str = 'abc' console.log(str.indexOf('ab')) //返回的下標0 console.log(str.indexOf('d')) //找不到返回-1 //可以有倆個參數 第一個參數為 對應需要查詢的字元串 第二個參數為 開始查找的下標 console.log(str.indexOf('b',2)) //從下標2開始找 找第一個出現b的位置 返回-1 var str = 'abbbccde' console.log(str.indexOf('b',2)) //從下標2開始找 找第一個出現b的位置 2
lastIndexOf
console.log(str.lastIndexOf('b')) //3 console.log(str.lastIndexOf('b',0)) //-1 從0的位置往前找 console.log(str.lastIndexOf('b',4)) //3 //也就是說預設的情況下 對應的後面的下標可以省略 str.length-1
自定義函數實現對應的indexOf方法及對應的lastIndexOf方法
//實現一下對應的indexOf方法 var searchStr = "abcdefabcde" function indexOf(str,index){ if(!index){ //當前如果是undefined的值 index = 0 //預設為0 } //得到str的長度 var len = str.length //這個5是表示當前的字元串的總長度 for(var i=index;i<searchStr.length-len;i++){ var s = '' for(var j=0;j<len;j++){ s+=searchStr[i+j] } if(s==str){ return i } } return -1 } function lastIndexOf(str,index){ if(!index && index!=0){ //當前如果是undefined的值 或者不為0 index = searchStr.length-1 //預設為最後一個 } //得到str的長度 var len = str.length //這個5是表示當前的字元串的總長度 for(var i=index;i>=len;i--){ var s = '' for(var j=len-1;j>=0;j--){ s+=searchStr[i-j] } if(s==str){ return i } } return -1 }
search 方法(和indexOf一樣 支持正則表達式)
var str = 'abc' console.log(str.search(/ab/)) //0 /ab/正則表達式 console.log(str.search(/ab/,0)) //從0的位置開始找 匹配ab的內容
靜態方法(通過構造方法名直接調用的叫做靜態方法 他是對應的static修飾的)
fromCharCode 將對應的ascii碼轉為字元串
var str = String.fromCharCode(97) //返回的是一個字元串 console.log(str) //a
concat 將多個字元串轉為連接成一個字元串返回
var str = 'hello'.concat('world') console.log(str)//hello world
支持正則的方法(4個)
search 查找(找到返回下標 沒找到返回-1)
replace 替換 (將找到的第一個字元串替換成一個新的字元串)
var str = 'abca' var str1 = str.replace('a','hello')//將a替換成hello console.log(str1)
split 分割(返回數組)
//分割 成為一個數組 split 數組變成字元串 join (預設以,) var str = '1,2,3' //預設不是以,作為分割 預設不分割 直接填入到數組 console.log(str.split()); //['1,2,3'] console.log(str.split(',')); //['1','2','3']
match 匹配(返回數組)
//match 返回一個數組 (匹配的內容) var str = "abcacc" //預設只找第一個匹配的 加入到數組 var arr = str.match('a') console.log(arr);
截取的方法
substring(開始的下標,結束的下標)
substr(開始的下標,個數)
//截取的方法 substring substr var str = "abcdef" //substring(開始的下標,結束的下標) 不包含結束的下標 console.log(str.substring(1));//bcdef console.log(str.substring(1,3));//截取不包含最後一個下標 (預設不填str.length)bc // substr(開始的下標,截取的個數) console.log(str.substr(1));//預設的情況是截取到最後 bcdef console.log(str.substr(1,3));//從下標1開始截取 截取個數為3個 bcd
轉大寫 (toUpperCase)
var str = 'abcA' console.log(str.toUpperCase())
轉小寫 (toLowercase)
var str = 'abcA' console.log(str.toLowerCase())
總結
-
string是不能改變的(常量)
-
string的方法返回的都是一個新的字元串
-
string的length屬性是只讀的(不能賦值)讀取對應的字元串的長度
-
字元串可以通過下標進行訪問(string[i])
-
字元串方法 charAt charCodeAt
-
搜索 indexOf lastIndexOf search
-
支持正則的方法 search replace split match
-
截取的方法 substring substr
-
轉大寫和小寫 toUpperCase和 toLowerCase
-
靜態方法 fromCharCode 根據ascii轉為字元串
Math類(數學類 一起和數學計算相關的方法都在這個裡面且這個方法都是靜態方法)
屬性
PI 3.1415926
E 科學計演算法
方法
random 隨機數
round 四捨五入
floor 向下取整
ceil 向上取整
pow 取冪次方
sqrt 開平方
abs 取絕對值
max 最大值
min 最小值