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