1. 程式人生 > 其它 >原生JS總結

原生JS總結

getBoundingClientRect()用於獲得頁面中某個元素的左,上,右和下分別相對瀏覽器視窗的位置。

//該函式返回一個Object物件,該物件有6個屬性:top,lef,right,bottom,width,height; 

    <div id="box"></div>
var object=document.getElementById('box');  
rectObject = object.getBoundingClientRect();
 
    rectObject.top:元素上邊到視窗上邊的距離;
    rectObject.right:元素右邊到視窗左邊的距離;
    rectObject.bottom:元素下邊到視窗上邊的距離;
    rectObject.left:元素左邊到視窗左邊的距離;
    rectObject.width:是元素自身的寬
    rectObject.height是元素自身的高

js中return;、return true、return false;區別

在大多數情況下,為事件處理函式返回false,可以防止預設的事件行為.例如,預設情況下點選一個<a>元素,頁面會跳轉到該元素href屬性指定的頁.   

 Return False 就相當於終止符,Return True 就相當於執行符。   

 在js中return false的作用一般是用來取消預設動作的。比如你單擊一個連結除了觸發你的   

 onclick時間(如果你指定的話)以外還要觸發一個預設事件就是執行頁面的跳轉。所以如果   

 你想取消物件的預設動作就可以return false。

1.return false:相當於終止符,幹了3件事,阻止預設行為,取消事件冒泡,以及停止回撥執行立即返回;

2.return:停止回撥執行立即返回;

3.return true:相當於執行符,繼續執行下面語句。

將陣列轉換成陣列套物件

  let arrList = [];
        for (let i in this.subData.check_fences) {
          var j = {};
          j.fence_id = this.subData.check_fences[i]
          arrList.push(j);
        }

for迴圈去掉最後一個符號

for (let i = 0; i < this.ques_model.questionPoints.length - 1; i++) {
            this.html +
= this.ques_model.questionPoints[i].pointname + "|"; } this.html += this.ques_model.questionPoints[ this.ques_model.questionPoints.length - 1 ].pointname;

Object.assign方法

//Object.assign方法用於物件的合併,將源物件(source)的所有可列舉屬性,複製到目標物件(target)。Object.assign方法的第一個引數是目標物件,後面的引數都是源物件。(如果目標物件與源物件有同名屬性,或多個源物件有同名屬性,則後面的屬性會覆蓋前面的屬性)。

 this.box={
        a: 1,
        b: 2
      }
      let data = {
        c: 3,
        a: 4
      };
      let baz = Object.assign(this.box, data);
      console.log(baz);   //a: 4,b: 2,c: 3

img圖片加載出錯處理 https://blog.csdn.net/milli236/article/details/78930720

設定頁面滾動高度

document.querySelector(".content_inner2").scrollTop = 0;
document.body.scrollTop = 0;

document.title=""  當前網頁的標題

表單驗證資料 同一欄位唯一

//這裡有個坑 通常資料比對的時候會把自身忘記,導致修改的時候自身資料沒有修改但是校驗報錯,這就是沒有把自身過濾掉,解決辦法就是比較ID不相等。

將一個數組分成多個數組

function group(array, subGroupLength) {
      let index = 0;
      let newArray = [];
      while(index < array.length) {
          newArray.push(array.slice(index, index += subGroupLength));
      }
      return newArray;
  }
例如:
 var Array = [1,2,3,4,5,6,7,8,9,10,11,12];;
 var groupedArray = group(Array, 6);
 //得到的groupedArray 陣列為:
  groupedArray[[1,2,3,4,5,6],[7,8,9,10,11,12]]

字串方法

replace():新值替換字串中指定值。不會改變呼叫字串,返回新字串。

 例:let str = 'hello, this is a beatiful day!'
注:1)預設替換首次出現的指定值。

     例:let new2 = str.replace('is', 'at') // hello, that is a beatiful day!

     若要替換所有出現的指定值,使用正則表示式(/g),全域性搜尋

     例:let new3 = str.replace(/is/g, 'at') // hello, that at a beatiful day!

保留小數點後兩位

Math.floor(百分比 * 10000) / 100;

js 繫結事件

  <!-- 第三種方式-->
    <button id="btn" onclick="threeFn()">點我</button>

    <script type="text/javascript">
        var btn = document.getElementById("btn");

        // 第一種 通過點選事件
        btn.onclick = function(){
            alert("這是第一種點選方式");
        }

        // 第二種 監聽點選事件
        btn.addEventListener('click', function(){
            alert("這是第二中點選方式");
        })

        // 第三種 通過方法響應點選事件
        function threeFn(){
            alert("這是第三種點選方式");
        }
    </script>

偽陣列轉真陣列

Array.from(arr)
console.log(Array.from(arr))

<embed> 標籤

<embed> 標籤定義嵌入的內容,比如外掛。
<embed src="helloworld.swf" />

FileReader的使用

//HTML5定義了FileReader作為檔案API的重要成員用於讀取檔案,根據W3C的定義,FileReader介面提供了讀取檔案的方法和包含讀取結果的事件模型。
https://blog.csdn.net/jackfrued/article/details/8967667
https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader
//多是用與上傳時 圖片預覽
 const reader = new FileReader();
      reader.readAsDataURL(file);
      reader.onload = () => {
        const _base64 = reader.result;
        that.tempUrl.loginname = _base64; //將_base64賦值給圖片的src,實現圖片預覽
      };

抓包工具 Fiddler 使用介紹 https://blog.csdn.net/m0_53427919/article/details/116235806

isNaN,NaN詳細解釋

當Number碰到不能轉換的常量時,則會返回‘NaN’結果;

NaN有一個專門的方法是isNaN,這個方法會判斷該常量是否為數字,如果是數字,返回false,如果不是,則返回true;當遇到像var a =     '100';這樣是字串,但裡面的內容是數字,isNaN則會先呼叫Number方法,判斷a是否為數字,然後再判斷。

isNaN的用法:可以判斷是否為數字。
var arr=[100,2,"100",'abc'];
    for(i=0;i<arr.length;i++){
        if(isNaN(arr[i])){
            alert(arr[i]);//返回abc說明isNaN會會把“100”也轉換成數字
        }
    }

介面獲取IP地址

  <script src="//pv.sohu.com/cityjson?ie=utf-8"></script>
window.returnCitySN = returnCitySN;

logip: window.returnCitySN["cip"],
logaddress: window.returnCitySN["cname"],