国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

《JavaScript高級程序設計》讀書筆記

dayday_up / 938人閱讀

摘要:為了每個對象都能通過來檢測,需要以或者的形式來調用,傳遞要檢查的對象作為第一個參數,稱為。對象都是動態的,這就意味著每次訪問對象,都會運行一次查詢。是語言中立的用于訪問和操作和文檔。

一、第三章 基本概念:
1.理解參數
1.1 可以向函數中傳遞任意數量的參數,并且可以通過arguments對象來訪問這些參數。
1.2 arguments對象只是類似數組,它通過length來確定傳進來多少參數
1.3 arguments它的值永遠與對應的參數名的值保持同步
eg:function add(num1,num2){arguments
arguments[1] =10;//修改了arguments[1]的值,對應的num2也會保持同步(他們的內存空間是獨立的)
}
2.with語句
作用:將代碼的作用域設置到一個特定的對象中
with(location){
 var  url= href;//
var  hostName = hostName;
}
在with代碼內部 每個變量都被認為是局部變量。如果局部環境中找不到該變量定義,那么就會到location對象下面找是否有同名的屬性
3.break continue
break立即退出循環,執行循環之后的代碼
continue 退出循環,但是會從循環的頂部繼續執行

二、第五章 引用類型
所有對象都有 toLocalesString() toString() valueOf() 方法 
alert()要接收字符串參數,所以它會在后臺調用 toString()方法   

var color = ["red","blue","green"];
console.log(color.toString());//red,blue,green 返回數組中每個值得字符串形式拼接而成的一個以逗號分隔的字符串
color.valueOf();   //返回數組本身
toLocaleString()方法 經常返回與上面2種方法一樣的值,但是不同點在于,為了取得每一項的值,調用的是每一項的toLocaleSrting()而不是toString();
使用toString()檢測對象類型Section
可以通過toString() 來獲取每個對象的類型。為了每個對象都能通過 Object.prototype.toString() 來檢測,需要以 Function.prototype.call() 或者 Function.prototype.apply() 的形式來調用,傳遞要檢查的對象作為第一個參數,稱為thisArg。

var toString = Object.prototype.toString;

toString.call(new Date); // [object Date]
toString.call(new String); // [object String]
toString.call(Math); // [object Math]

//Since JavaScript 1.8.5
toString.call(undefined); // [object Undefined]
toString.call(null); // [object Null]                      
  5.5 function類型     
函數內部有2個特殊對象 arguments 和this                
arguments保存著函數中傳入的所有參數 這個對象還有個callee的屬性,指向擁有這個arguments對象的函數。      
eg:
function test(num) {
    if(num<=1){
        return 1
    }else {
        return num*test(num-1);
    }
}
//這個函數的執行與函數名緊緊耦合在一起,為了消除這種耦合,可以像下面這樣寫
function test(num) {
    if(num<=1){
        return 1
    }else {
        return num*arguments.callee(num-1);
    }

var test1 = test;
test = function () {
    return 0;
}
test1(5)//120
test(5)//0
//這樣重寫了test函數后,也可以保證函數的正常調用    

三、第八章 window對象 BOM的核心
BOM的核心對象是window,它表示的是一個瀏覽器實例。在瀏覽器中,window有雙重角色,既是js訪問瀏覽器的一個接口,又是js規定的    
gloabal對象.
8.1窗口關系及框架
如果頁面包含框架,則每個框架都包含自己的window對象,并且保存在frames集合中。window.frames
每個window對象都有一個name屬性,即框架名稱。
top對象始終指向最外層的框架,也就是瀏覽器窗口
與top相對的是 parent ,它始終指向當前框架的直接上層框架
8.1.5 導航和打開窗口
window.open()方法 既可以導航到一個特定url,也可以打開一個瀏覽器窗口
它可以接受四個參數:要加載的url,窗口目標,一個特性字符串,一個表示新頁面是否取代瀏覽器歷史記錄中當前加載頁面的布爾值。通常只傳第一個參數,最后一個只在不打開新窗口的情況下使用。
eg:
var wroxWin = window.open("http://www.baidu.com","wroxWindow","height=400,width=200");
wroxWin.resizeTo(500,500);//調整大小
wroxWin.moveTo(100,100)//移動位置
wroxWin.close()//關閉新打開的窗口
可以通過try catch  以及判斷 wroxWin == null 來判斷是否 受到彈窗屏蔽程序影響
8.2 location對象 
location.href = ""跳轉到指定頁面
location.replace 實現導航到一個新的 url地址,替換掉當前頁面在瀏覽器中的歷史記錄
8.3navigator 
它有一個公共屬性 userAgent
history.go(1) 等同于 history.forword()
history.go(-1)等同于 history.back()
if(history.length ==1)則表示這是用戶打開窗口后的第一個頁面

四、第十章 DOM
document 三個與網頁請求有關的屬性
1.URL 即地址欄中顯示的URL
2.domain 即頁面域名 
3.referrer 保存著鏈接到當前頁面的那個頁面的URL
三個屬性中,只有domain是可以設置的,由于安全方面的限制,不能將這個屬性設置成URL中不包含的域
//假設頁面來自p2p.wrox.com
document.domain = "wrox.com" //成功
document.domain = "nczel.net"http://失敗
由于跨域的安全限制,來自不同子域的頁面無法通過js通性,而通過將每個頁面的document.domain設置成相同值,這些頁面就可以互相訪問對方的js對象了
Node類型:
每個節點都有一個childNodes屬性,其中保存著一個NodeList對象,NodeList是一種類數組對象,用于保存一組有序的節點。
NodeList的獨特之處在于,它是基于DOM結構動態執行查詢的結果,因此DOM結構的變化,能夠自動地反應在NodeList對象中。它是有生命有呼吸的對象,而不是第一次訪問,某個瞬間拍攝下來的一張快照。
對于arguments對象和NodeList對象,都可以使用Array.prototype.slice(),將其轉換成數組。
eg:
var arrayOfNodes = Array.prototype.slice.call(someNode.childNodes,0)
NodeList對象都是動態的,這就意味著每次訪問NodeList對象,都會運行一次查詢。
DOM是語言中立的api,用于訪問和操作HTML和XML文檔。DOM 1級將HTML 和 XML文檔形象地看做一個層次化的節點樹,可以使用js來操作這個節點樹,進而改變底層文檔的外觀和結構。

五、第十一章 DOM擴展
1.Selector Api 定義了2個方法,querySelector() querySelectorAll()
eg:document.querySelector("body")
返回匹配的第一個元素,沒有則返回null
能夠調用的類型為Document 和 Element 類型 

eg:var ems = document.getElementById("myDiv").querySelectorAll("em");
返回所有匹配的元素,返回的值是帶有屬性和方法的NodeList ,底層實現類似于 一組元素的快照,而非不斷的動態查詢,沒有則返回null
能夠調用的類型為Document 和 Element  DocumentFrament 類型
3.Element Traversal Api定義了額外的屬性,能方便地從一個元素跳到另一個元素 
3.HTML5 
classList: add() contains()//是否存在  remove() toggle() 用于操作元素的類名
eg:div.classList.remove("user");原來是使用div.className 返回為字符串

焦點管理:document.activeElement 這個屬性始終會引用dom中當前獲得焦點的元素 文檔加載期間為null
document.hasFocus()檢測文檔是否獲得了焦點
document.readyState 有2個屬性值 loading //正在加載文檔  complete //已經加載完文檔
html5 元素 上添加 data- 屬性 可以通過 div.dataset來訪問
eg 
//獲取div.dataset.appid scollIntoView() scollIntoViewIfNeed() 之前的筆記中有詳細介紹
六、十三章 事件
事件流:捕獲 目標元素 冒泡 document html body div的順序
addEventListener 接收三個參數 事件名,函數,布爾值 true表示捕獲階段調用處理程序 false表示冒泡階段調用處理程序

html5事件
1.contextmenu 即通過鼠標右鍵點出上下文菜單
2.beforeunload 事件
3.hasChange事件 Url的參數列表發生變化時調用
4.readystatechange事件 uninitialized 未初始化 loading loaded interactive交互 complete 完成

七、第二十一章 ajax
ajax  的核心對象 XHRHttpRequest
XHRHttpRequest 常用方法和屬性
onreadyStateChange:監聽當前http的狀態函數,當請求狀態發生變化時,就會調用該函數
open: xhr.open("get","http://www.baidu.com",true);// 三個參數 方法 地址 是否異步
send:接收一個參數作為請求主體發送的數據,若不需要則傳null  send(null)
abort:終止連接 xhr.abort()
error:在請求錯誤時使用
responseText: 作為響應主體被返回的文本
status : 響應的http狀態
statusText: http狀態說明
readyState:當前http狀態變化值0-4
0:未初始化,還沒定調用open
1:啟動  已調用open方法但是沒調用send方法
2:發送  請求被接收 send()方法完成,但是尚未接收到響應
3:接收 已經接收到部分響應數據
4.完成 請求處理完成,響應就緒
status:請求處理完之后,http的響應碼
200:請求數據返回成功
404:沒有發現查詢的url

只有當get的時候,才會存在緩存問題   (IE上比較嚴重)
解決緩存問題:     getTime()取得時間戳(毫秒)
超時設定 timeout屬性 表示請求在等待多少毫秒后就終止 xhr.timeout = 0 ;即用不過時
eg:
var xhr = new XMLHttpRequest();
//連接服務器
xhr.open("get","http://www.baidu.com",true);// 三個參數 方法 地址 是否異步
//發送請求
xhr.send(null);
xhr.onreadystatechange = function () {
    if(xhr.readyState == 4){
        if(xhr.status == "200"){
            console.log(xhr.responseText);
        }else {
            alert(xhr.status);
        }
    }
}
跨域問題:
CORS ,圖像ping和JSONP都是利用其src屬性實現跨域
comet(服務器向頁面推送數據的技術)是對ajax的進一步擴展 
實現的手段主要有兩個:長輪詢和HTTP流 ,所以瀏覽器都支持長輪詢 部分支持HTTP流
SSE (server-send Events 服務器發送事件) 是一種實現comet交互的瀏覽器API,既支持長輪詢,也支持HTTP流
websSockts 是一種持久的與服務器進行全雙工雙向通信的信道,不使用http協議,而是一種自定義協議

                       

 

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/108583.html

相關文章

  • 002-讀書筆記-JavaScript高級程序設計 在HTML中使用JavaScript

    摘要:文件內部使用使用到的代碼引入外部文件外部代碼的地址標簽的位置一般情況下,標簽的位置放在標簽中引入代碼頁面結構對于需要引入很多的中間,如果把放在頭部,無疑會導致瀏覽器呈現頁面出現延遲,就是導致頁面出現空白。頁面結構引入代碼 這篇筆記的內容對應的是《JavaScript高級程序設計(第三版)》中的第二章。 1.使用方式 在HTML中使用 JavaScript 的方式有兩種,第一種就是直接內...

    banana_pi 評論0 收藏0
  • 001-讀書筆記-JavaScript高級程序設計 JavaScript簡介

    摘要:由于計算機的國際化,組織的標準牽涉到很多其他國家,因此組織決定改名表明其國際性。規范由萬維網聯盟制定。級標準級標準是不存在的,級一般指的是最初支持的。 這篇筆記的內容對應的是《JavaScript高級程序設計(第三版)》中的第一章。 1.ECMA 和 ECMA-262 ECMA 是歐洲計算機制造商協會的縮寫,全程是 European Computer Manufacturers Ass...

    masturbator 評論0 收藏0
  • JavaScript高級程序設計》(第3版)讀書筆記 第1~2章

    摘要:表示應該立即下載腳本,但不應妨礙頁面中的其他操作可選。表示通過屬性指定的代碼的字符集。表示腳本可以延遲到文檔完全被解析和顯示之后再執行。實際上,服務器在傳送文件時使用的類型通常是,但在中設置這個值卻可能導致腳本被忽略。 第1章 JavaScript 簡介 雖然JavaScript和ECMAScript通常被人們用來表達相同的含義,但JavaScript的含義比ECMA-262要多得多...

    Corwien 評論0 收藏0
  • 讀書筆記(01) - JSON - JavaScript高級程序設計

    摘要:用于把對象序列化字符串,在序列化對象時,所有函數及原型成員都會被有意忽略,不體現在結果中。對第步返回的每個值進行相應的序列化。參考文檔高級程序設計作者以樂之名本文原創,有不當的地方歡迎指出。 showImg(https://segmentfault.com/img/bVburW1?w=658&h=494); JSON與JavaScript對象 JSON是一種表示結構化數據的存儲格式,語...

    mengbo 評論0 收藏0
  • 004-讀書筆記-JavaScript高級程序設計 基本概念(下)

    摘要:操作符,會將數值改變正數變成負數負數變成正數。同時,也說明了,使用兩個邏輯非操作符和的操作結果相同。操作符得到的是余數。不相等操作符有兩種。 這篇筆記的內容對應的是《JavaScript高級程序設計(第三版)》中的第三章。 1.操作符 1-1 一元操作符 遞增和遞減操作符 遞增和遞減操作符有兩個 ++ 和 --。一元操作符使用的時候,可以前置也可以后置。由于兩個操作方式類似,先只說明 ...

    nevermind 評論0 收藏0

發表評論

0條評論

dayday_up

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<