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()時,它只是轉換成原始的字符串,並返回轉換後的值.dom

字符串的屬性

  • .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!';code

字符串的獲取

  • str.charAt(x); 返回指定索引的字符

返回在字符串str裏索引(位置、下標)爲x的字符對象

  • str.charCodeAt(x); 返回的是位於指定索引的字符的編碼 (ASCII碼)

返回在字符串str裏索引爲x的字符的編碼(ASCII碼)索引

  • 將ASCII編碼轉換成字符 (該方法是String的靜態方法,因此用String調用)

String.fromCharCode(73,76,79,86,69,85); //"ILOVEU"ip

字符串鏈接

  • 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, 開根號
相關文章
相關標籤/搜索