深入淺出JavaScript-讀書記錄 ch1-3

<script>標籤(本質html)只不過是表示接下來是腳本語言,type="text/javascript"才說明是js。

js是解釋語言,因爲不需要編譯器的轉換、

onblur指示用戶移往下一個輸入域。

onload事件,在瀏覽器完成iRock網頁的載入時觸發

js代碼也能放在html內事件處理器中。

var userName=prompt("what is your name?", "enter your name here."); //返回的是用戶輸入
prompt是彈出一個可供輸入的窗口,前一個字符串是詢問,第二個是文本框中的輸入提示

再回顧一下:js使用三種基本數據類型:text, number, boolean

var——>variable還有常量constant

變量剛開始沒有值

const Constant name=Constant value; //常量名習慣全是大寫字母

假設有個數字存儲爲文本類型,但你突然想把這個數字用於數學運算,這時就需要把文本轉換爲數字類型。

數據類型在設置變量值與常量值的同時建立。

小寫駝峯型用於變量和函數
大寫駝峯型只會用於對象

NaN是數字數據類型有誤時的指標,通常只在計算過程中需要數字,卻收到非數值的數據時,纔會看到NaN

parseInt()和parseFloat() 我們應只提供“只包含數字”的字符串

對象方法和函數

isNaN()判斷是否是數字,對待數字更可靠

表單提交 form.submit

parseInt(浮點數)只會返回整數部分

donutString.indexOf("dozen")是判斷在donutString裏是否有出現dozen


第三章
瀏覽器中運行js代碼的部分稱爲JavaScript解釋器

一旦網頁傳送到瀏覽器後,服務器大致就已退場了。事實上,網頁傳送完畢後,js的每項行爲均限制在瀏覽器中。這一點使得網頁負有更多責任,因爲網頁不用等待服務器處理和返回數據。這種處理就是js被稱爲客戶端語言的原因

js多半不會直接與網絡服務器有關係,因爲它在客戶機上獨立運行。js通常用於攔截從服務器傳遞到瀏覽器的網絡數據;但也可以編寫向網站請求信息的腳本,然後於網頁上呈現信息。

設定時間()
單次定時:setTimeout("alert('wake up');", 600000); //等待10分鐘而後彈出alert框的定時器

間隔定時:setInterval("alert('wake up!');", 600000); //
clearInterval(timerID)這個函數用於清除setInterval()設置的間隔定時器,需要我們傳入間隔定時器的ID

document對象代表網頁本身
document.body文檔主題是網頁裏能被看見的部分,包括客戶端窗口的高度和寬度。
document對象的body.clientWidth與body.clientHeight特性裏存儲了客戶端窗口的寬度和高度。哭護短是瀏覽器窗口裏呈現網頁的特定區域。

網頁上所有對象都有一個style對象。
設定高寬時,只需指定一個值,另一個會自動縮放。

瀏覽器改變大小時觸發事件:onresize="func();"

腳本的生命週期(life cycle)
js於瀏覽器關閉或網頁重新載入時摧毀所有變量

cookie延長腳本的生命週期。
想讓變量值存活超過一次網頁瀏覽,你需要另外把數據存儲在瀏覽器裏的cookie裏。

cookie也可以設定有效日期(expiration date)
js+cookie=適合客戶端、便利的持久性數據存儲方案
cookie以長文本字符串的形式存儲於用戶的計算機裏。分號;區分各個cookie

當js代碼另外存儲成另一個文件時,你必須把文件導入任何需要js代碼的網頁。
<script type="text/javascript" src=""cookie.js"></script>


shitty shit,似乎chrome是不接受未使用var聲明的變量的,雖然這樣在語法裏也沒錯但是可能是內置嚴格模式????
啊 感覺每次出現的小錯花費的代價都挺大的

function writeCookie(name,value,days)
{
    var expires = "";
        
    if(days)
    {
        var date = new Date();
        date.setTime(date.getTime() + (days*24*60*60*1000));
        expires = ";expires=" + date.toGMTString();
    }
    var cookie = name + "=" + value + expires + "; path=/";
    alert(cookie);
    document.cookie = cookie;
}

function readCookie(name)
{
    var searchName = name + "=";
    var cookies = document.cookie.split(';');
    for(var i=0;i<cookies.length; i++)
    {
        var c = cookies[i];
        while(c.charAt[0] == ' ')
            c = c.substring(1,c.length);
        if(c.indexOf(searchName) == 0)
            return c.substring(searchName.length,c.length);
    }
    return null;
}
function eraseCookie(name)
{
    writeCookie(name,"",-1);
}
        function greetUser(){
            userName=readCookie("userName");//沒找到return null userName是全局變量???
            if(userName){
                alert("hello "+userName+", I missed you.");
                }
            else {
                alert("hello, I am your pet rock.");
            }
            alert("fuck you");
        }
        

只有在指定的網頁裏,cookie名稱才需要獨特,因爲cookie存儲時會依創建它們的網頁加上區隔,其中包含網頁所在的網站信息

cookie只適合存儲相對較少的文本數據(少於4kb)。大量數據要使用數據庫。cookie也不適合存儲敏感數據。

每個cookie都有有效日期。

cookieEnable特性是navigator對象的一部分,該對象爲JS提供瀏覽器本身的信息

JavaScript活在瀏覽器裏。




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