1. 程式人生 > >JavaWeb基礎總結之Js

JavaWeb基礎總結之Js

JavaScript

  • 基於物件和資料驅動的語言。應用於客戶端。
  • 基於物件:提供好了物件,可以直接拿來使用。
  • 事件驅動:html做的網站是靜態的效果,JavaScript是動態   的效果
  • 客戶端:專門指的是瀏覽器

特點:

  • 互動性:資訊的動態互動,
  • 安全性:不能訪問磁碟,
  • 跨平臺性:java裡面的跨平臺性,虛擬機器。js只要是能支援js的瀏覽器就可以。

JavaScript和java的區別:

  • java是sun開發的現在是Oracle公司收購了,js是網景公司
  • JavaScript是基於物件的,java是面向物件的
  • java是強型別的語言,js是弱型別的語言 

java:int i=10;js:var i=10;  

JavaScript是隻需解析就可以執行,而java需要先編譯成位元組碼,再執行。

JavaScript的組成:三部分:

  • ECMAScript:js的語法
  • BOM:broswer object model:瀏覽器物件模型 對瀏覽器裡面的部分進行操作
  • Dom:document object model:文件物件模型 對內容進行操作。

js中的一些注意事項:

(1)在js裡面是不區分整數和小數的。123/1000*1000=123

(2)"456"+1="4561",如果"456"-1=455。雙引號表示字串

(3)js中Boolean的資料也能進行加減

(4)js中兩個等號和三個等號的區別:兩個等號比較的是值,三個等號比較的是值和型別。

(5)document.write("直接輸出在介面上,不會像alert一樣彈出警告框,裡面還可以輸入html程式碼"),如,document.write("<hr>")頁面輸出的是水平線,document.write("裡面的標籤屬性需要用到雙引號的話,就改為單引號,因為document.write("")裡面本來就有雙引號")

(6)Js的陣列:

  • java裡面陣列的定義int [] arr={"","",""}
  • js裡面的定義方式(三種):
  • 第一種:var arr=[1,2,3,"4",true]
  • 第二種:var arr1=new Array(5):arr1[0]="1"定義一個數組,陣列長度為5,使用的是內建物件Array物件
  • 第三種:使用內建物件Array。var arr2=new Array(3,4,5)表示定義一個數組,數組裡面的物件時3,4,5

(7)Js裡面定義函式的方式有三種:

  • 第一種:使用關鍵字function。function 方法名(引數列表,引數不用寫型別){方法體,返回值可有可無}
  • 第二種方式:匿名函式 function (引數列表){方法體和返回值}在呼叫的時候沒有名字,所以寫成var add=function(){},呼叫的時候直接add();該方法使用頻率高,尤其在寫事件的過程中。
  • 第三種方式(用的很少):也稱為動態函式,引數和方法體裡的函式都可以通過引數傳遞進去。

使用js裡面的一個內建物件Function

new Function(注意F大寫)

var add=new Function(“引數列表”,“方法體和返回值”)

常用的就第一第二種,第三種只作瞭解

(8)Js全域性變數在Script標籤中定義一個變數,這個變數在頁面中的js部分都可以是使用。就是var i定義第一個Script中則該頁面的第二個Script中依舊可以使用,即可以在方法外部使用,在方法內部使用,在另外一個Script中使用
區域性變數:在方法內部定義一個變數,只能在方法的內部使用。

(9)html是自上而下解析的,所以在js中獲取id的的時候建議放在</body>的後面。

(10)js的string物件    字串:

  • var str=“asdf”str1.concat(str2):字串拼接。
  • str.charAt(0),字串的第一個字元,
  • str.indexof(“字串”),沒有返回-1。
  • str.split("")切分字串,切分出來是一個數組。
  • str.replace(“原始值a”,“替換值Q”)。
  • str.substr(“開始位置2”,“length”)表示從第二位開始向後擷取字元length位數
  • substring(“開始位置1”,“結束位置5”)表示從第一位開始到第五位結束

(11)Js的Array物件:建立陣列(三種)

  • var arr1=【1,2,3】
  • var arr=newArray(3)//長度為3
  • var arr3=new Array(1,2,3)元素為三個
  • concat()陣列的連線arr1.concat(arr2)
  • join()根據一個指定的字元分割一個數組
  • push():往陣列末端新增一個元素(如果新增的是陣列長度也算為增長1,意思是將陣列作為一個整體新增進去了,作為陣列的一個元素),但是該函式在調價完成後會有一個返回值
  • pop()表示刪除陣列最後一個元素並返回那個元素
  • reverse()顛倒陣列元素,1->n變成n->1

(12)Js的Date物件:

  • java獲取時間:Date date=new Date()
  • js獲取時間:var date=new Date(),轉化為習慣中國人的時間格式date:使用函式toLocaleString()
  • getFullYear()獲取當前年
  • 獲取當前月:getMonth()但是注意的是月得範圍是0~11所以要加1
  • getDay()返回的是星期(0-6)星期日返回的是0
  • getDate()獲取當前的天1~31
  • 獲取當前的小時:getHours()
  • 獲取當前的分鐘:getMinutes()
  • 獲取當前的秒:getSeconds()
  • getTime()返回1970年1月1日至今的毫秒數:應用場景:使用毫秒數處理快取的效果(不有快取)如:http://www.baidu.com?毫秒數

(13)Js的Math物件(數學的運算)物件裡面的都是靜態方法,使用的時候可以直接使用Math.方法,重要的幾個方法如下:

  • Math.ceil(10.4)11向上舍入在整數的基礎上加一
  • Math.floor(10.7)10向下舍入
  • Math.round(10.4)10四捨五入
  • random()得到一個隨機數(0-1)(0.0-1.0之間的偽隨機數)獲取一個0-9的隨機數Math.floor(Math.random()*10)
  • pow(x,y)返回x的Y次冪

(14)Js的全域性函式:不屬於任何一個物件,直接寫名稱來使用

  • eval():可以直接執行js程式碼如str=“alert(“1234”)”eval(str)可以直接執行彈出框
  • encodeURI()對字元進行編碼
  • decodeURI)()對字元進行解碼
  • isNaN()檢查當前的字串是否是數字,不是數字返回值為true和是數字返回false
  • parseInt()解析一個字串並且返回一個整數

(15)Js的過載是否存在???答案是不存在呼叫最後一個同名的方法。但是可以通過其他方法模擬過載。多的引數都儲存在arguments數組裡面。

(16)Js的Bom物件:

  • navigator:可以獲取客戶機的資訊,或者是瀏覽器的資訊
  • navigator.appName
  • screen:可以獲螢幕的寬和高
  • location:location.href請求本url地址 href既是屬性也可以設定url地址location.href=(“hello.html”)表示跳轉到hello.html
  • history:請求的url的歷史記錄類似於瀏覽器上的前進和後退,到上一個history.back(),到下一個history.forward()

window物件:window物件是JavaScript的頂層物件,視窗物件

  • window.alert()彈出一個框 
  • window.confirm()確認框 提示框會返回一個boolean的值
  • window.prompt("請輸入","0")對話方塊,可以輸入資料
  • window.open():開啟一個新的視窗
  • window.close()關閉一個視窗

(17)Js定時器

  • setInterval("js程式碼",毫秒數)表示每幾秒執行一次js程式碼
  • setTimeout("js程式碼",毫秒數)設定延時
  • clearInterval,clearTimeout清除

(18)以上僅是Js內容總結的一部分,關於Js中dom操作等知識,下一篇文章總結。


注:以上文章僅是個人學習過程總結,若有不當之處,望不吝賜教。