字符串的定義
- JS字符串的概念
字符串就是一串字符,由雙(單)引號括起來。
字符串是 JavaScript 的一種數據類型。 -
字符串的創建
- 方式一(推薦): var str = '海賊王'; //基本類型
定義了一個字符串變量str,內容爲'海賊王' -
方式二: var str = new String("火影"); //引用類型
定義一個字符串變量str,內容爲火影,
注意: 此刻str爲引用類型(object對象)用new產生的變量都是引用類型的變量,也叫對象
- 方式三: var str = String('柯南');
基本類型: string, number, boolean, undefined等
引用類型/對象: Array , Date, Object, String, Function等
- 方式一(推薦): var str = '海賊王'; //基本類型
- new String()和String()的區別
var s1 = new String('千與千尋');
var s2 = String('千與千尋');
console.log(typeof s1); //object
console.log(typeof s2); //string當String()和元素符new一起使用, 那麼String()是作爲構造函數使用的,它返回的是一個新創建的String對象. (構造函數後面課程會講)
當不用new運算符調用String()時,它只是轉換成原始的字符串,並返回轉換後的值.
字符串的屬性
-
.length: 表示字符串的長度
例如 : var str = 'how are you';console.log(str.length); console.log(str[0]); //獲取字符串中對應下標的字符
注意: ECMAScript 中的字符串是不可變的; 也就是說,字符串一旦創建,它們的值就不能改變.
例如: var str = 'how are you';
str[0] = 'year'; //不會改變
如果要改變某個變量保存的字符串,首先要銷燬原來的字符串,然後再用另一個包含新值的字符串填充該變量.
var str = hello'';
str = str+'world!';
字符串的獲取
- str.charAt(x); 返回指定索引的字符
返回在字符串str裏索引(位置、下標)爲x的字符
- str.charCodeAt(x); 返回的是位於指定索引的字符的編碼 (ASCII碼)
返回在字符串str裏索引爲x的字符的編碼(ASCII碼)
- 將ASCII編碼轉換成字符 (該方法是String的靜態方法,所以用String調用)
String.fromCharCode(73,76,79,86,69,85); //"ILOVEU"
字符串連接
- str.concat('xx','yy');字符串連接(連接多個用逗號分隔開)
字符串str連接字符串'xx','yy'
字符串查找
- str.indexOf('xxx'); 返回某個指定的字符串值在字符串中首次出現的位置
返回在字符串str裏查找字符'xxx'第一次出現的位置(索引), 如果沒找到則返回-1
- str.lastIndexOf('xxx'); 返回一個指定的字符串值最後出現的位置
返回在字符串str查找字符'xxx'最後一次出現(從後向前搜索)的索引, 如果沒找到則返回-1
- str.search(): 查找第一次出現的位置, 但是參數可以是正則表達式
var str = "ABCdabcd";
var index = str.search("abc");
console.log(index); //4
// /abc/ : 兩個斜槓是正則表達式的語法(類似數組要寫[]),中間就是你要匹配的字符串
// g: global代表全局範圍, i:ignore忽略大小寫
var index = str.search(/abc/gi);
console.log(index);
字符串替換
- str.replace(); 替換字符串
//在字符串中用一些字符替換另一些字符,或替換一個與正則表達式匹配的子串。
//str.replace(參數1,參數2)
//參數1是原字符串的某些字符,參數2是新替換的字符串內容
//返回一個新的(重新替換後的)字符串
例如: var str = 'how are Are are you!';
var newStr = str.replace('are','old are');
這裏的替換隻能執行一次,不能夠進行全局匹配,如果需要全局匹配,則應使用正則表達式: str.replace(/are/gi, "old are") //g表示進行全局匹配,i表示匹配的時候忽略大小寫
字符串的截取與拆分
- str.substring(開始索引,結束索引); 截取字符串 範圍是[開始索引,結束索引)
如果只有一個參數, 則表示到字符串最後
- str.split(separator, howmany); 根據分隔符、拆分成數組
separator(字符串或正則表達式)
howmany(可以指定返回的數組的最大長度, 可以省略)
注:如果空字符串('')用作separator, 那麼stringObject中的每個字符之間都會被分割。
- str.toLowerCase(); 把字符串轉換成小寫
- str.toUpperCase(); 把字符串轉換成大寫
Math對象
Math對象可以用於執行數學任務
Math對象的常用函數:
Math.round(3.6) //四捨五入
Math.random() //返回0-1之間的隨機數
Math.max(num1, num2) //返回較大的數
Math.min(num1, num2) //返回較小的數
Math.abs(num) //絕對值
Math.ceil(19.3) //向上取整
Math.floor(11.8) //向下取整
Math.pow(x, y) //x的y次方
Math.sqrt(num) //開平方
console.log(Math.round(3.49)); //3,四捨五入
console.log(Math.random()); //隨機數
console.log(Math.max(3, 4)); //4,較大值
console.log(Math.min(3, 4)); //3,較小值
console.log(Math.abs(-3)); //3,絕對值
console.log(Math.ceil(2.1)); //3, 向上取整
console.log(Math.floor(2.9)); //2, 向下取整
console.log(Math.pow(4, 3)); //64, 4的3次方
console.log(Math.sqrt(64)); //8, 開根號