js總的來說
1.被所有主流的瀏覽器支持并被大部分網(wǎng)頁使用
2.他可以在網(wǎng)頁上呈現(xiàn)動態(tài)效果
對于js代碼的位置
1.使用<script>標(biāo)簽在html網(wǎng)頁中插入
2.既可以在html文件中直接添加js代碼,也可以從外部把js文件進行引入(在js文件中不需要<script>標(biāo)簽)
js不能直接運行,我們需要在HTML中添加如下代碼
<script src="script.js"></script> ?
3.js在頁面中在任何位置都可以放置,但是我們一般把他放在head或者body里面
(js作為一種腳本語言可以在任何位置放置,但瀏覽器解釋代碼是都是從前到后,如果放在前面則先被初始化,如果頁面用js進行初始化則要把它放在head里
1.變量
變量是可變的量
1.變量的命名法則與c語言相似(需要用字母下劃線或者美元符號進行開頭,后面可以加上數(shù)字)
2.變量用var進行命名
var mynum
需要注意的是變量可以不聲明直接使用
3.特殊之處在于var可以定義各種數(shù)據(jù)類型的變量
2.+操作符(附帶著表達式)
可以進行加減和字符串鏈接運算
1.操作符
sum=numa+numb;//這就是一個表達式
2.連接字符
mystring="java"+"Script";//這也是一個表達式
3.自加自減,和邏輯運算符,和關(guān)系運算符與c相似
1.自加自減與c相似
2.關(guān)系運算符
var a=5;
var b=6;
document.write(a<b)//輸出真(true)
3.&&為且運算符||為或!為非運算符
4.算術(shù)運算符》關(guān)系運算符》邏輯運算符》=賦值符號
4.定義數(shù)組
var mybox =new array()
1.創(chuàng)建的數(shù)組是空數(shù)組沒有值,若輸出,則為undefined
2.雖然制定了長度,但實際上可以大于限制的長度
有兩種方法為數(shù)組進行賦值
第一種方法
var myarray=new Array(1,2,3)
第二種方法
var myarray=[1,2,3]
可以運用c中數(shù)組賦值方法對數(shù)組進行賦值
3.對于二維數(shù)組。
聲明方式一
var myarr=new Array(); //先聲明一維 ?for(var i=0;i<2;i++){ //一維長度為2 myarr[i]=new Array(); //再聲明二維 ?for(var j=0;j<3;j++){ //二維長度為3 myarr[i][j]=i+j; // 賦值,每個數(shù)組元素的值為i+j } }
定義方式二
var myarray=[[1,2],[3,4]]:
5.for循環(huán)while循環(huán),break,continue循環(huán)控制,if else等多重嵌套,swatich等語法
語法與c十分相似,就不再一一贅述
6.函數(shù)
函數(shù)是完成某個特定功能的一組語句。如沒有函數(shù),完成任務(wù)可能需要五行、十行、甚至更多的代碼。這時我們就可以把完成特定功能的代碼塊放到一個函數(shù)里,直接調(diào)用這個函數(shù),就省重復(fù)輸入大量代碼的麻煩。
函數(shù)的大致代碼如下
function 函數(shù)名() { ? ? ?函數(shù)代碼; }
說明:
1. function定義函數(shù)的關(guān)鍵字。
2. "函數(shù)名"你為函數(shù)取的名字。
3. "函數(shù)代碼"替換為完成特定功能的代碼。
1.函數(shù)的調(diào)用方數(shù)與c中相同,只有調(diào)用后函數(shù)才可以使用
2.帶參函數(shù)和函數(shù)的返回值使用方式也和c相似
7.事件
JavaScript 創(chuàng)建動態(tài)頁面。事件是可以被 JavaScript 偵測到的行為。 網(wǎng)頁中的每個元素都可以產(chǎn)生某些可以觸發(fā) JavaScript 函數(shù)或程序的事件。
1.onclick事件
onclick是鼠標(biāo)單擊事件,當(dāng)在網(wǎng)頁上單擊鼠標(biāo)時,就會發(fā)生該事件。同時onclick事件調(diào)用的程序塊就會被執(zhí)行,通常與按扭一起使用
onclick放在input里面
2.onmouseover
當(dāng)鼠標(biāo)移到一個對象上時,該對象就觸發(fā)onmouseover事件,并執(zhí)行onmouseover事件調(diào)用的程序。
用法與onclick相同
3.onmouseout
鼠標(biāo)移開事件,當(dāng)鼠標(biāo)移開當(dāng)前對象時,執(zhí)行onmouseout調(diào)用的程序。
4.onfocus
當(dāng)網(wǎng)頁中的對象獲得聚點時,執(zhí)行onfocus調(diào)用的程序就會被執(zhí)行。
5.onblur
onblur事件與onfocus是相對事件,當(dāng)光標(biāo)離開當(dāng)前獲得聚焦對象的時候,觸發(fā)onblur事件,同時執(zhí)行被調(diào)用的程序。
6.onselect
為選中文件,選中事件,當(dāng)文本框或者文本域的文字被選中是就會觸發(fā)
7.onchange
通過改變文本框內(nèi)的文字時就會觸發(fā)此事件
對象
至于什么是對象
JavaScript 中的所有事物都是對象,如:字符串、數(shù)值、數(shù)組、函數(shù)等,每個對象帶有屬性和方法。
對象的屬性和方法是對象的重要組成元素
對象的屬性:反映該對象某些特定的性質(zhì)的,如:字符串的長度、圖像的長寬等;
對象的方法:能夠在對象上執(zhí)行的動作。例如,表單的“提交”(Submit),時間的“獲取”(getYear)等;
使用對象前要先進行定義
var myarray=new Array()
可以用對象點屬性來訪問對象的屬性
對于方法的訪問與對于屬性的訪問相似
下面介紹幾種比較常用的內(nèi)置對象
1.日期對象
get/setDate用來返回和設(shè)置日期
get/setFullYear()用來返回設(shè)置年份,(完整的用四位數(shù)表示的年份)
get/setYear用來設(shè)置年份
還可以設(shè)置和返回月每小時,分鐘,秒等,用法與上述方法相似
document.write(my date.getFullYear());
my date.setFullYear(81);6可以把年份設(shè)置為四位
getDay()返回星期,返回的是0-6的數(shù)字0代表周日
用法跟年份相似
對于日期的設(shè)置方法
時間推遲一小時就用x.setTime(x.getTime()+60*60*1000);
2.string字符串對象
定義字符串的方法就是直接賦值
用length計算對象的長度
用toUpperCase()方法將字符串串轉(zhuǎn)化成大寫
用charAt()方法可以返回指定位置的字符
需要注意的是,如果第一個字符的下標(biāo)為0最后一個字符串要減一,如果超出了字符串的范圍,則會返回一個空字符串,一個字符也算是一個字符串
indexOf() 方法可返回某個指定的字符串值在字符串中首次出現(xiàn)的位置。
stringObject.indexOf(substring, startpos) ?第一個參數(shù)是用來寫出要查找的字符,第二個參數(shù)為查找的范圍
1.該方法將從頭到尾地檢索字符串 stringObject,看它是否含有子串 substring。
2.可選參數(shù),從stringObject的startpos位置開始查找substring,如果沒有此參數(shù)將從stringObject的開始位置查找。
3.如果找到一個 substring,則返回 substring 的第一次出現(xiàn)的位置。stringObject 中的字符位置是從 0 開始的。
注意:1.indexOf() 方法區(qū)分大小寫。
2.如果要檢索的字符串值沒有出現(xiàn),則該方法返回 -1。
split() 方法將字符串分割為字符串?dāng)?shù)組,并返回此數(shù)組
stringObject.split(separator,limit)第一個參數(shù)是用來顯示從該位置開始進行劃分
substring() 方法用于提取字符串中介于兩個指定下標(biāo)之間的字符。
stringObject.substring(startPos,stopPos) 第一個參數(shù)為初始位置第二個為結(jié)束位置
與此相似的是
substr() 方法從字符串中提取從 startPos位置開始的指定數(shù)目的字符串。
3.數(shù)學(xué)對象
E ? ? ? ? ? 歐拉常量,自然對數(shù)的底(約等于2.718)
LN2 ? ? ? ? ?2的自然對數(shù)(約等于0.693)
LN10 ? ? ? ? ?10的自然對數(shù)(約等于2.302)
LOG2E ? ? ? ? 以2為底的e的對數(shù).(約等于1.442)
LOG10E ? ? ? ? 以10為底的e的對數(shù)(約等于0.434)
PI ? ? ? ? ? ∏的值(約等于3.14159)
SQRT1_2 ? ? ? ?1/2(0.5)的平方根(即l除以2的平方根,約等于o.707)
SQRT2 ? ? ? ? 2的平方根(約等于1.414)
方法:
abs(x) ? ? 返回數(shù)字的絕對值
acos(x) ? ?返回數(shù)字的反余弦值
asin(x) ? ?返回數(shù)字的反正弦值
atan(x) ? ?返回位于-PI/2 和 PI/2 的反正切值
atan2(y,x) 返回(x,y)位于 -PI 到 PI 之間的角度
ceil(x) ? ?返回 x 四舍五入后的最大整數(shù)
cos(x) ? ? 返回一個數(shù)字的余弦值
exp(x) ? ? 返回 E^x 值
floor(x) ? ?返回 x 四舍五入后的最小整數(shù)
log(x) ? ? 返回底數(shù)為E的自然對數(shù)
max(x,y) ? ?返回 x 和 y 之間較大的數(shù)
min(x,y) ? ?返回 x 和 y 之間較小的數(shù)
pow(x,y) ? ?返回 y^x 的值
random() ? ?返回位于 0 到 1 之間的隨機函數(shù)
round(x) ? ?四舍五入后取整
sin(x) ? ? 返回數(shù)字的正弦值
sqrt(x) ? ?返回數(shù)字的平方根
tan(x) ? ? 返回一個角度的正切值
toSource() 顯示對象的源代碼
valueOf() 返回數(shù)學(xué)對象的原始值
4.數(shù)組對象
數(shù)組對象是一個對象的集合,里邊的對象可以是不同類型的。數(shù)組的每一個成員對象都有一個“下標(biāo)”,用來表示它在數(shù)組中的位置,是從零開始的
concat屬性用來連接多個數(shù)組
join()方法用于把數(shù)組中的所有元素放入一個字符串。元素是通過指定的分隔符進行分隔的。
reverse() 方法用于顛倒數(shù)組中元素的順序。
slice() 方法可從已有的數(shù)組中返回選定的元素。
sort排序
下面對瀏覽器對象進行介紹
setInterval在執(zhí)行時,從載入頁面后每隔指定的時間執(zhí)行代碼
例如
setInterval(clock,1000)第一個參數(shù)為調(diào)用的函數(shù),第二個參數(shù)為交互的時間(以毫秒為計數(shù)單位)
clearinterval()方法是用來取消setInterval()設(shè)置的交互時間
括號里面的參數(shù)為set函數(shù)返回的值
setTimeout()計時器在載入后延遲一段時間然后執(zhí)行禁止性一次
clearTimeout()用來清除
history對象記錄了用戶瀏覽過的頁面
window.history.屬性方法
屬性含有l(wèi)ength返回瀏覽器歷史列表中的url數(shù)量
方法含有back()返回上一個
forward()加載上一個
go()進入某個具體的頁面
location對象用于獲取或設(shè)置窗體的url并且可以用來解析url
hash:如果URL中包含有“#”,該方法將返回該符號之后的內(nèi)容(例如:http://www.sunchis.com/index.html#welcome的hash是“#welcome”)。
host:服務(wù)器的名字,例如www.sunchis.com。
hostname:通常等于host,有時會省略前面的www。
href:當(dāng)前頁面載入的完整URL。
pathname:URL中主機名之后的部分。例如:http://www.sunchis.com/html/js/jsbasic/2010/0319/88.html的pathname是“/html/js/jsbasic/2010/0319/88.html”。
port:URL中聲明的請求端口。默認(rèn)情況下,大多數(shù)URL沒有端口信息(默認(rèn)為80端口),所以該屬性通常是空白的。像http://www.sunchis.com:8080/index.html這樣的URL的port屬性為8080。
protocol:URL中使用的協(xié)議,即雙斜杠(//)之前的部分。例如http://www.sunchis.com中的protocol屬性等于http:,ftp://www.sunchis.com的protocol屬性等于ftp:。
search:執(zhí)行GET請求的URL中的問號(?)后的部分,又稱查詢字符串。例如http://www.sunchis.com/search.html?tern=sunchis中的search屬性為?term=sunchis。
方法:
assign()加載新的文檔
reload()重新加載當(dāng)前的文檔
replace()用新的文檔替換當(dāng)前的文檔
navigator對象包含有關(guān)瀏覽器的信息通常用于檢測瀏覽器和操作系統(tǒng)的版本
var appCodeName= window.navigator.appCodeName;//返回與瀏覽器相關(guān)的內(nèi)部代碼名? 都為Mozilla
var?appName=navigator.appName;//返回瀏覽器正式名稱??均為Netscape
var?appVersion=navigator.appVersion;//返回瀏覽器版本號
var?cookieEnabled=navigator.cookieEnabled;//返回瀏覽器是否啟用cookie,true和false
var?geolocation=navigator.geolocation;//返回地理定位信息(h5)
var?javaEnabled=navigator.javaEnabled();//檢測當(dāng)前瀏覽器是否支持?Java,從而知道瀏覽器是否能顯示?Java?小程序(IE,chrome返回true,firefox返回false)
var?language=navigator.language;//返回瀏覽器的首選語言
var?mimeTypes=?navigator.mimeTypes;//返回瀏覽器支持的Mime類型
var?msManipulationViewsEnabled=?navigator.msManipulationViewsEnabled;//僅支持IE,true
var?msMaxTouchPoints=navigator.msMaxTouchPoints;//字面意思是最大的觸摸點,IE為0,其他不支持
var?msPointerEnabled=navigator.msPointerEnabled;//IE為true,其他不支持
var?onLine=navigator.onLine;//是否連接互聯(lián)網(wǎng),均返回true(未斷網(wǎng))
var?platform=navigator.platform;//所在平臺,返回win32
var?plugins=navigator.plugins;//返回瀏覽器插件集合
var?preference=navigator.preference;//允許一個已標(biāo)識的腳本獲取并設(shè)置特定的?Navigator?參數(shù)
var?product=?navigator.product;//瀏覽器產(chǎn)品名,返回gecko
var?systemLanguage=navigator.systemLanguage;//獲取系統(tǒng)語言,IE支持,返回zh-cn
var?userAgent=navigator.userAgent;//判斷瀏覽器類型
var?userLanguage=navigator.userLanguage;//返回操作系統(tǒng)的自然語言設(shè)置,IE支持,返回zh-cn
//方法
var?msLaunchUri=navigator.msLaunchUri;//回調(diào)函數(shù),未研究
var?taintEnabled=navigator.taintEnabled;//回調(diào)函數(shù)
var?hasOwnProperty=navigator.hasOwnProperty;//意思是是否支持屬性,用法如下
var?s=document.hasOwnProperty("ontouchstart");//電腦返回false,手機為true
screen屬性
window.screen.屬性
availHeight窗口可以使用的屏幕的高度
availWidth窗口可以使用的屏幕寬度
colorDepth用戶瀏覽器的顏色位數(shù)
height屏幕的高度
width屏幕的寬度