js基礎語法

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屏幕的寬度

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,501評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,673評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,610評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,939評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,668評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,004評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,001評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,173評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,705評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,426評論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,656評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,139評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,833評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,247評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,580評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,371評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,621評論 2 380

推薦閱讀更多精彩內容