javaScript筆記整理

來源:互聯網
上載者:User

標籤:過濾   com   protocol   rom   blog   接受   附加   區分   inf   

1、filter也是一個常用的操作函數,他作用於Array的某些元素,然後返回剩下的元素,和map()類似,Array的filter()也接受一個函數,和map()不同的是,filter()把傳入的函數作用於每一個元素,然後根據反悔的是true 還是false決定保留還是丟棄該元素。

filter()接受的回掉函數,其實可以有多個參數,通常我們僅適用第一個參數,表示Array的某個元素,回掉函數還可以接受另外兩個參數,鳥事元素的位置和數組本身。

2、Array的sort()方法預設吧把所有元素轉換成String再排序,

3、箭頭函數相當於匿名函數,箭頭函數有兩種格式,

4、Regex 、\d匹配一個數字, \w匹配一個字母或者一個數字

  ‘00\d’-----》007      ‘\w\w’------>js     

. 匹配任一字元

‘js.’------>jsp    jss   js!

要是匹配變長得字元,使用*號,表示任意個字元(包括0),用+表示至少一個字元, 用?表示0個或者1個,用{n}表示n個字元,用你{n,m} 表示n到m個字元

\s表示匹配一個空格

[0-9a-zA-Z\_]可匹配一個數字或者字母或者底線

^表示行的開頭,^\d表示必須以數字開頭。

$表示行的結束,\d$表示必須以數字結束

3、可以使用location.herf擷取URL各個部分的值

location.protocol;   location.host    location.port   location.pathname   location.search  location.hash

Cookie是由伺服器發送的key_value標識符,因為HTTP協議是無狀態的,但是伺服器要區分到底是哪個使用者發來的請求,就可以使用Cookie來區分,當一個使用者登陸伺服器成功之後伺服器就會發送您一個Cookie給瀏覽器,列如 user=nsdnf9030-23r0.....伺候瀏覽器訪問該網站時, 會在要求標頭上附加上這個Cookie伺服器根據Cookie區分出使用者。

 除此之外,Cookie還可以儲存網站的一些設定,document.Cookie

4、history對象儲存了瀏覽器的記錄,JavaScript可調用history的back()或者forward(),這個對象屬於曆史遺留對象,對於web頁面來說,使用大量的ajax互動頁面,

5、操作DOM節點,通過各種方式拿到DOM節點,常見的方法document.getElementById()和document.getElementByTagName(),以及CSS選取器document.getElementByClassName();

6、當我們獲DOM之後,如果DOM是空的就可以 直接使用innerHtml=‘<span>child</span>‘就可以修改DOM的節點內容,相當於插入新的DOM節點,但是如果DOM節點不是空的,就不能使用這種方法,因為innerHtml 會直接替換掉原來的節點,

  使用 appendChild把一個節點添加到父節點的而最後一個子節點。

7、JavaScript處理表單

 <form id="test-form‘‘>

   <input type=“text” name=‘test‘><button type="button" onclick="doSUbmitForm()">Submit</button>

</form>  <script>

fuction doSubmitFrom(){

   var form=documnet.getElementById(‘test-form‘);

      form.submit();

              }</script>

1、過濾掉繼承的屬性

要過濾掉對象繼承的屬性,用hasOwnProperty()來實現:

var o = {    name: ‘Jack‘,    age: 20,    city: ‘Beijing‘};for (var key in o) {    if (o.hasOwnProperty(key)) {        console.log(key); // ‘name‘, ‘age‘, ‘city‘    }}
2、由於Array也是對象,而他的每一個元素的索引被視為對象的屬性,因此,for ...in 迴圈可以直接迴圈出Array的索引,但是注意的是迴圈結果是S同日南方類型。
var a=[‘A‘,‘B‘,‘C‘];for (var i in a){ consloe.log(i); console.log(a[i]);}3、Map是一個索引值對的類似於Array

由於一個Key只能對應一個value,所以,多次對一個key放入Value,就面的會把前面的值衝掉。

4、set和map類似,也是一組key集合,但是不儲存value由於key不能重複,在set中沒有重複的key,要建立一個set,需要提供一個Array作為輸入,或者直接建立以一個空的set

var s1=new Set();

var s2=new Set([1,2,3]); 重複元素會在set中自動過濾,

用for ....of 迴圈遍曆集合,但是最好的韓式使用Iterable函數中的forEach方法,它只接受一個函數,每次迭代自動調回該函數,

 

Iterable

由於JavaScript允許傳入任意個參數,不影響調用,因此傳入的參數比定義的參數多也沒問題,即使函數內部不需要這些慘呼。

abs(10,‘blablabla‘);//返回10 abs(-9,‘hahaha‘,‘mjsds‘)、、返回9

利用arguments可以獲得調用者傳入的所有參數,也就是說,即使函數不定義任何參數,還是就可以拿到參數的值

為了擷取除了已經定義的參數a,b 之外的參數,就得使用arguments,並且迴圈要剔除之前的參數,使用rest參數可以很好的解決

function foo(a,b,.....rest){

console.log(‘a‘+a);

consloe.log(‘b‘+b);

consloe.log(rest);} foo(1,2,3,4,4),但是 rest參數只能寫在最後

前面用用.....標識,傳入的參數先綁定a,b,多以的參數,以數組的方式交給變數rest 所以不再使用arguments,就可以直接擷取全部的參數

由於JavaScript函數可以嵌套,此時,內建函式可以訪問外部函數定義的bianl,反過來不行

不行語句 var x=‘Hello‘+y;沒報錯原因是變數y之後申明啦,但是console.log()顯示 Hello, undefined 地火明變零y的值為undefined,這是因為JavaScript引擎自動提升了變數y的聲明,但是不會提升y的賦值

所以一般開始對對象的參數進行聲明,使用var

function foo(){

var

x=2;

y=x+1;

z;i;

for(i=0;i<100;i++){

。。。。。。。}}

5、就AV是預設有一個全域變數window,全域範圍的變數實際上會綁定到widow的一個屬性,如下輸出的結果是一樣的

以變數方式var foo = function () {}定義的函數實際上也是一個全域變數,因此,頂層函數的定義也被視為一個全域變數,並綁定到window對象:

JavaScript實際上只有一個全域變數範圍,任何變數如果在當前函數中沒有找到就會在上一層繼續尋找,最後在全域把變數中也麼有,就會報ReferenceError

6、綁定到對象上的函數叫做方法,和函數沒有區別,但是他在內部使用了一個關鍵字this,this只一個特殊變數,它指向當前對象,如下也就是xiaoming這個變數,所以,this.brith可以取得xiaoming的birth屬性

 

 

 

長度

javaScript筆記整理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.