js(es6)基礎知識複習看這個就夠了~

數組

增刪

push 向數組的末尾添加一個或者多個數據,
返回新數組長度
var len = arr.push(1,2,3);

pop 刪除數組最後一項返回該項的值
var lastValue = arr.pop();

unshift 向數組的首位添加一個或者多個數據,
返回新數組長度
var len = arr.unshift(1,2,3);

shift 刪除數組第一項返回該項的值
var firstValue = arr.shift();

連接

var newArr = arr1.concat(arr2);

反轉

var newArr=arr.reverse();

排序

var newArr=arr.sort();//正序
var newArr=arr.sort((a,b)=>b-a);//逆序

裁切

var newArr=arr.slice(1);
/*從1的位置截取到最後,
如果指定第二個參數,
則截取兩參數中間的部分*/
var newArr=arr.splice(0,1,"first","second")//
/*第一個參數是要刪除位置的開始,
第二個要刪除的項數,
後面的參數要添加的項,
添加的位置爲刪除位置的後面*/

迭代

以下方法接收的函數有3個參數,項的值,項的位置,數組本身
every()
//返回布爾值,運行給定函數若每一項都爲true,則返回true
some()
//返回布爾值,運行給定函數,若有一項爲true,則返回true
filter()
//返回數組,運行給定函數,返回滿足條件的項組成的數組
forEach()
//無返回值遍,運行給定函數,迭代數組的每一項

歸併

以下方法接收2個參數,
函數(前一個,當前,索引,數組對象),
作爲歸併基礎的初始值
reduce()//從個數組第一項開始,遍歷每一項
var sum = arr.reduce((pre,cur)=>pre+cur,0);
//sum爲數組每一項的和
若第二個參數指定爲,則上面的sum=sum+1

字符串

字符方法

let str = "hello world"
var num = str.charAt(4)
//接收一個參數返回此位置的字符  num ="o"
var ch = str.charCodeAt(1)
//接收一個參數返回此位置字符的字符編碼  num = 101

操作方法

/*接收一個或者兩個參數,
返回基於舊字符串的新字符串
如果未指定第二給參數則會截取到最後*/
slice() 
//第一個參數爲開始位置,第二個爲結束位置
substr()
//第一個參數爲開始位置,第二個返回的字符個數
substring()
//第一個參數爲開始位置,第二個爲結束位置
//傳入負數的情況:
slice()
//會將負數與字符串長度相加,
substr()
//第一個負數和字符串長度相加,第二個變爲0,
substring()
//將負數全部轉化爲0

位置方法

/*搜索子字符串在原字符串中的位置,
找到返回下標,找不到返回-1
接收一個或者2個參數,
第一個爲子字符串,第二個爲開始查找的位置*/
let str = "hello world"
var num = str.indexOf("o",0)//num=4 
lastIndexOf()   //從後面向前查找

trim()方法

該方法會去掉字符串前後的空格
let str = "           hello world       "
var newStr = str.trim();//newStr = "hello world"

大小寫轉化方法

let str = "Hello World"
alert(str.toLowerCase())//"hello world"
alert(str.toUpperCase())//"HELLO WORLD"
//不知道地區可以使用穩妥的辦法 t
//oLocaleLowerCase()和toLocaleUpperCase()方法進行大小寫轉化

模式匹配方法
將在介紹正則時詳細討論
字符串的比較方法

/*如果字符串的字母表應該排在字符串參數之前返回-1,之後返回1,相等返回0
逐個字符進行比較,字符相同則繼續比較下一個字符*/
let str = "hello world"
alert(str.localeCompare("blue")); //1
alert(str.localeCompare("if")); //-1
alert(str.localeCompare("hello world")); //0

正則表達式

字符邊界

邊界符 解釋
^ 匹配字符串的開始
$ 匹配字符串的結束

字符列表

元字符 解釋
\d 數字
\D 非數字
\w 字母數字下劃線
\W 非字母數字下劃線
\s 空白符
\S 非空白符
. 除換行外所有字符

模式修飾

修飾符 解釋
i 不區分大小寫
g 全局匹配
m 多行匹配
s 單行匹配

原子表

原子表 解釋
[] 匹配其中一個字符
[^] 除了其中的任意一個字符
[0-9] 數字等同於/d
[a-z] 小寫字母
[a-Z] 大小寫字母

重複匹配

符號 解釋
* 0次或多次
+ 一次或多次
? 0次或1次
{n} n次
{n,} 最少n次
{n,m} n次到m次

禁止貪婪

符號 解釋
*? 0次或多次,減少重複
+? 一次或多次,減少重複
?? 0次或1次,減少重複
{n,}? n次以上,減少重複
{n,m}? n次到m次,減少重複

字符串的方法

 let str = "hello"
 alert(str.search("llo"))//2
 alert(str.match("llo")[0])//llo 
 match方法返回的是一個數組

正則方法

 let str = "hello"
 alert(/h/.text(str))//true
 alert(/h/.exec(str))//
 //使用g模式可以循環調用直到匹配完,匹配不到返回null

明天寫幾個正則例子…
一個簡單的郵箱匹配例子

 let reg = /^[\w-]+@[\w-]+(\.(com|cn|google|163)){1,2}$/i
    console.log(reg.test("[email protected]"));//true

字母數字下劃線開頭一個或多個@字母數字下劃線一個或多個(.com/cn)一個或2個結束

Symbol()

Symbol會生成一個獨一無二的數據,用Symbol生成的數據永遠不會重複/
Symbol(“這是一個描述”);也可以寫一個描述字符串傳給symbol

       let a=Symbol();
       let b=Symbol();
       console.log(a==b);//false

我們有以下需求,2個人名字一樣,我用他們的名字作爲爲標識存在一個對象中,

  let name1="orange";
  let name2 = "orange";
  let us = {
        [name1]: { title: "user1 is orange" },
        [name2]: { title: "user2 is orange" }
      };

us對象中name2的數據將會覆蓋掉name1的數據,因爲他們的鍵相同,使用Symbol會解決上面的問題

 let user1 = {
        name: "橘子",
        des: "user1是個橘子",
        key: Symbol(),
      };
      let user2 = {
        name: "橘子",
        des: "user2也是個橘子",
        key: Symbol(),
      };
     let user = {
        [user1.key]: { title: "user1 is orange" },
        [user2.key]: { title: "user2 is orange" },
      };

key內容由symbol生成,所以不會出現上面的覆蓋現象。
明天更新class類相關知識點

更新中…

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章