1. 程式人生 > >前端經常碰到的小知識點-----js篇

前端經常碰到的小知識點-----js篇

一    js

1.可視區寬和高

① document.documentElement.clientWidth  //可視區的寬度

    document.documentElement.clientHeight //可視區的高度

②100 vw  //可視區的寬度

    100 vh  //可視區的高度

     vw : 1vw 等於視口寬度的1%

     vh : 1vh 等於視口高度的1%

2.正則表示式

正則表示式描述了一種字串匹配的模式,可以用來檢查一個串是否含有某種子串,將匹配的字串替換或者從某個串中取出符合某個條件的字串。、

使用途徑:1.只要按規則模糊匹配多個關鍵詞時2.只要按規則驗證字串是否符合要求

使用方式: 1. 只用正則直接量: var reg=/正則/ig;  2. 用new: var reg=new RegExp("正則","ig");

String中常用正則API:

檢索:

1.查詢一個固定關鍵詞出現的位置

var i=str.indexOf("關鍵詞",fromi)     

 var i=str.lastIndexOf("關鍵詞",fromi)

 2. 判斷是否包含符合規則的關鍵詞:

  var i=str.search(/正則/i)

3. 獲得所有關鍵詞的內容:

  var i=str.match(/正則/ig);  如果不加g:  match也相當於search,但可獲得關鍵詞內容: [0:"關鍵詞",index:i]

4. 即獲得每個關鍵詞的內容,又獲得每個關鍵詞的位置: reg.exec(str)

替換:

簡寫:將所有關鍵詞替換為統一的替換值

str =str,replace(/正則/ig,'替換值')

高階:根據關鍵詞的不同,替換不同的值

str = str.replace(/正則/ig,

function(kw,$1,$2,...){

      return  根據kw判斷返回不同替換值

)

刪除:將關鍵詞替換為 ‘’

切割:  var subStrs =str.split(/正則/);

3.isNaN()

 isNaN()函式用於檢查其引數是否是非數字值。

 isNaN(233);  false

 isNaN(ni);  true

4.保留兩位小數或取整

四捨五入:

1.var num =2.3362412322;

num = num.toFixed(2); // 輸出結果為 2.34

不四捨五入:

2.Math.floor(15.66842340 * 100) / 100 // 輸出結果為 15.66

3.Number(15.66842340.toString().match(/^\d+(?:\.\d{0,2})?/)) // 輸出結果為 15.66

4.分享經典解決方法:

  圖一

取整

parseInt(2.56789)   //2

Math.ceil(2.567)    //2

Math.ceil(2.56789)   //3

Math.round(2.5678)   //3

m^0  

m|0

m>>>0

 

連線:

var newArr=arr1.concat(arr2);//將arr2拼接到arr1之後,返回新陣列

注意: concat無權修改原陣列,只能返回新陣列,必須用變數接住拼接的結果。

 concat中可以是任何型別的引數,可以是陣列,數字,字串

如果 .concat(值1,值2,arr2,....);,那麼.concat可以打散陣列型別的引數為單個值。

擷取子陣列:

 var subArr=arr.slice(starti,endi+1);//擷取arr中starti位置開始到endi位置結束的子陣列。

 注意: 含頭不含尾,結束位置要+1

 支援負數引數:表示倒數第n個位置,其實執行的還是length-n

如果省略第二個引數,表示從starti位置直接擷取到結尾。

concat和slice都不可直接修改原陣列,必須使用新變數接收

刪除/插入/替換陣列

splice: 刪除,插入,替換

刪除: arr.splice(starti,n)

刪除arr中starti位置開始的n個元素

注意: n是個數,不考慮含頭不含尾

splice可返回刪除的元素組成的臨時陣列。

 var deletes=arr.splice(starti,n)

插入: arr.splice(starti,0,值1,值2,...)

在arr的starti位置插入值1,值2,...,原starti位置及其之後的值,都被向後順移

注意: 0 表示不刪除,只插入新值

不支援打散陣列型別引數,如果傳入陣列,會形成子陣列

替換: var deletes=arr.splice(starti,n,值1,值2,...)

  先刪除starti位置開始的n個,再在starti位置插入值1,值2。

  注意: 刪除的元素個數,和插入新值得個數,不必一致。

conca和splicet:

        concat:  優: 打散陣列型別引數

                缺: 只能拼接在開頭或結尾

        splice:  優: 可指定插入位置

                 缺: 不支援打散陣列引數