什麼是js和js的基本文法

來源:互聯網
上載者:User

標籤:輸入   bsp   win   input   method   cat   開發   post   content   

時間:2016年12月15日

先講講基礎文法;

大部分是來動作表單;

js動態效果和資料互動(ajax?)

js也有自己的API

js大部分的DOM操作都是針對input的。

案例學習,對註冊頁面的簡單校正,對於空值或者錯誤的值先彈框,後面再學習在頁面上寫資料。

 

js是一種指令碼語言,輕量級的,可插入到html頁面中啟動並執行語言,和java半毛錢的關係都沒有。

js有三大塊內容:

ECMAScript java的基礎文法

BOM 瀏覽器物件模型

DOM 文件物件模型

以後jquery用的也很多,但是先對javascript的基礎文法要很瞭解。

js可以使頁面動起來,提高互動性。

所有的類型都用var來代替,就像java裡面的Object。

<script type="text/javascript">
    console.log("hello, world!");
</script>

在html的head中加入js的標籤

在js中如果有一行報錯,那麼後面的語句都不會運行了。

 

js變數定義

js運算子

var a = "a";

console.log(a-2); // 列印NaN

console.log("3"-2);    // 列印的是1

console("3"+0+2);     // 列印出來的是5

 

js數組可以存任意類型的資料。

運算式的真假判斷:

js數組也有length屬性

js數組遍曆:for(i in arr) { }

i是arr的索引,從0到arr.length()-1。

 

js方法

聲明:function test() { } 這就是js的方法。

function fun(obj) { } 在這裡obj相當於形參了,尼瑪var都不要了。

<input type=text onblur="show(this)" /> this指代的是這個input,原來如此。

<input type="text" value="xx" class="xx是大神!" id="input" name="Newtow\‘s name" onblur="show(this.value)" onclick="show(this.name)"  onbeforecopy="show(this.id)" onbeforecut="show(this.class)" />

傳參數一般都是this,然後方法裡面對對象進行操作。呵呵,這樣還挺好玩的,以前不懂啊,被js坑慘了。

感覺js可以把html當成七巧板一樣來操作,實際上我都從來沒有玩過七巧板。

class面中不能包括驚嘆號嗎?

 

js是區分大小寫;

js是弱變數類型的語言,若類型不等於沒有類型;

js的分號可有可無;

js的注釋和java的注釋一樣;

js變數的聲明的都是var,可以在var後面跟一個或者多個變數;

js基礎資料型別 (Elementary Data Type)和引用資料類型,原始類型只有5個:undefined,boolean,number,String,null;

===(全等於)表示值相等而且類型也一樣的時候才是相等的,==只要值是一致的就相等。

js通常的開發步驟:一般都是由事件觸發,而且都是觸發一個函數,因此我們需要定義一個函數,獲得需要控制的對象的控制權,然後操縱那個對象。

瞭解js中常用的事件

js的引入方式:

1、直接在頁面內編寫

<script></script>

2、將js編寫到js檔案中,然後引入到頁面中

在網頁中使用js有兩種方式:

第一種:直接在頁面內的<Script> </Script>標籤中寫入;

第二種:從外部引入js:

<Script src=>

</Script>

栗子:js完成頁面表單的簡單驗證

<form action=action?action=heheda method=post onsubmit=return checkForm();>

</form>

Document對象有很多實用的方法:

getElementById()

getElementByName()

getElementByTagName()

js的Regex有兩種:

第一種是用字串來進行驗證,String

第二種是用Regex對象來驗證,RegExp

兩個都可以去匹配正則,一個是String裡面的match方法,另一個是RegExp中的test方法。

學會如何對js打斷點

如果是checkbox的話,可以在onsubmit事件裡面可以把checkbox裡面的值拼成一個字串,然後一起送到後台。

js也是物件導向的語言,底層是物件導向的;有機會的話可以多找一些js的數。

一個數組往後台傳的話,傳的是這個數組的地址值,因此還是把checkbox的值拼成一個串。

function checkForm() {
    var clearInfo = document.getElementsByClassName("check");
    var i = 0;
    for(i=0; i<clearInfo.length; i++) {
        clearInfo[i].textContent = "";
    }
    var username = document.getElementById("username").value;
    var hu = document.getElementById("userid");
    if(username == "") {
        hu.textContent="使用者名稱為空白!";
        return false;
    }
    var passwd = document.getElementById("password").value;
    var passwdid = document.getElementById("passwdid");
    if(passwd == "") {
       
        passwdid.textContent = "密碼為空白!";
        return false;
    }
    var repasswd = document.getElementById("repassword").value;
    var repasswdid = document.getElementById("repasswdid");
    if(repasswd != passwd) {
       
        repasswdid.textContent = "兩次輸入的密碼不一致!";
        return false;
    }
    var email = document.getElementById("getEmail").value;
    var checkemail = document.getElementById("emailid");
    if(!/^([a-zA-z0-9_-])[email protected]([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/.test(email)) {
       
        checkemail.textContent = "email的格式不符合要求!";
        return false;
       
    }
    var c1 = document.getElementById("c1").checked;
    var c2 = document.getElementById("c2").checked;
    var c3 = document.getElementById("c3").checked;
    var c4 = document.getElementById("c4").checked;
    //alert(c1 + "#" + c2 + "#" + c3 + "#" + c4);
    if(c1 == false && c2 == false && c3 == false && c4 == false) {
        var check = document.getElementById("checkid");
        //alert(c1 + "#" + c2 + "#" + c3 + "#" + c4);
        check.textContent = "請至少選擇一項!";
        return false
    }
    jiguan = document.getElementById("jiguan").selected;
    //alert(jiguan);
    if(jiguan == true) {
        var jiguanid = document.getElementById("jiguanid");
        jiguanid.textContent="請選擇籍貫!"
        return false;
    }
}

在js中有些對象的屬性和對象之間還隔著一個對象的,比如div裡面有style屬性,style下面又有屬性height和weigth,不能通過div來直接操作其height,而是要通過:div.style.height這樣來操作。

另外在函數通常都是直接傳入對象,然後在函數中對擷取或者操作對象的各種屬性,而不是僅僅傳入對象的屬性,感覺到了一點物件導向呢!

js實現圖片的滾動效果

體驗js讓頁面動起來的效果。

用到了js中DOM的window對象。

window對象的定時功能:

setInterval(),每隔多少毫秒去執行一個運算式,會一直執行;

setTimeout(),只會執行一次,但是可以通過調用自己來一直執行。

setInterval("change()",5000);   在雙引號裡面的代碼會當成js代碼來執行。

setTimeout("change()",5000); 定時器實際用的比較少。

寫在<body>的onload()事件中,方法是改變圖片src屬性的值,也可以寫成匿名函數。

html以及js以及css的載入順序

寫在裡面和寫在外面的區別,寫在函數外面變數會引用到尚未載入的內容。

定時彈出廣告

要用到css的display屬性

兩個定時都想有的話就放在一個onload裡面。

<script src="js/check.js"></script>
<script>
    var time;
    window.onload = function () {
        time = window.setInterval("show()", 10);
    };
    function show() {
        var adDiv = document.getElementById("adDiv");
        adDiv.style.display = "block";
        window.clearInterval(time);
        time = window.setInterval("hide()",10);
    }
    function hide() {
        var adDiv = document.getElementById("adDiv");
        adDiv.style.display="none";
        window.clearInterval(time);
        time = window.setInterval("show()",10);
    }
</script>

bom和dom對象的介紹

bom對象有:

1. Window

2. Navigator

3. Screen

4. History

5. Location

dom對象有:

1. Document

2. Element

3. Attribute

4. Event

js中bom中的5個對象:

1. window:代表的瀏覽器的視窗,上層的對象

window的confirm()方法也挺有用的。

可根據返回的true或者false來操作。

介紹了window對象

location可以實現一個頁面跳轉的效果,有一個href方法來跳轉頁面,location.href

location.reload()在重新整理的時候可以用到;

history主要記住的是go方法,history.go;

對於checkbox或者option這種注意選項的勾選屬性是true或者false,而不是checked或者其他的。

在訪問tomcat伺服器的頁面的時候一定要保證tomcat開啟並且項目丟在tomcat裡面了。

什麼是js和js的基本文法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.