JavaScript 字符串簡介

字符串的定義

  • 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等
  • 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, 開根號
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章