JS函數與BOM

[函數的聲明及調用]
一、函數聲明的格式:
function 函數名(參數1,參數2,....){
//函數體
return結果;
}
函數名(參數1的值,參數2的值,....)

>>>函數的調用格式
直接調用:函數名(參數1的值,參數2的值,....)
事件調用:事件名="函數名()";

二、函數聲明的幾點強調:

①函數名的聲明,必須符合小駝峯法則(首字母小寫,以後每一個單詞字母大寫)

②參數列表,能夠有參數,也能夠無參數。分別稱爲有參函數和無參函數。

③聲明函數時的參數列表,稱爲「形參列表」(變量的名);
調用函數時的參數列表,稱爲「實參列表」(變量的值);
函數中,實際有效的值取決於實參的賦值,未被賦值的形參,將爲Undefined;

④函數若是須要返回值,可用return返回結果。
調用函數時,使用var 變量名=函數名();的方式,接受返回結果。
若是函數沒有返回值,則接受的結果爲Undefined;

⑤函數中變量的做用域:
在函數中,使用var聲明的變量,默認爲函數局部變量,只在函數內容使用;
不用var聲明的變量,默認爲全局變量,(函數中的全局變量,必須在函數電泳後才能使用)
函數的形參列表,爲函數局部變量,只在函數內部使用;

⑥函數聲明與函數調用,沒有前後之分。即,調用語句可在聲明語句以前。css

[匿名函數的聲明及調用]【重點】

一、聲明一個匿名函數,直接賦給某個事件
window.onload=function(){}

二、使用函數表達式聲明匿名函數:
聲明函數表達式:var func=function(){}
調用函數表達式:func();
>>>使用匿名函數表達式時,調用語句,必須在聲明語句以後,不然報錯(對比常規函數聲明與調用區別)

三、使用自執行函數聲明並直接調用匿名函數:
!function(參數1){}(參數1的值) //使用任意運算符開頭,通常使用【!】
(function(){}()) //使用()將匿名函數及以後的括號包裹
(function(){})() //使用()只將匿名函數表達式包裹
特色:
①結構清晰,開頭加!,結尾加()。不容易亂,推薦使用;
②能夠代表匿名函數與以後的()爲一個總體,推薦使用;
③沒法代表匿名函數與以後的()爲一個總體,不推薦使用;數組

 JS中代碼的運行順序瀏覽器

console.log(abc);
var abc=10;
function funcN(){}
funcN();服務器

JS中代碼運行,會先進行檢查、裝載,即變量聲明、函數等操做;
而後再進行執行階段(變量賦值等屬於執行階段)
函數的聲明屬於裝載階段,函數的調用屬於執行階段,因此,函數的調用語句寫在函數聲明語句以前,沒有任何關係。
上述代碼執行流程:
----檢查裝載----
var num;
function funcN()
----執行階段----
console.log(abc);
abc=10;
funcN();app

[函數內部屬性]
【Arguments對象
一、做用:用於保存調用函數時的,所賦值的實參列表。
>>>當咱們調用函數,並使用實參賦值時,實際上參數已經保存到arguments數組中,
即便沒有形參,也可使用arguments[n]的形式調用參數

二、arguments數組的個數,取決於實參列表,與形參無關;(順序從0開始)
但,當第N個位置的形參、實參、arguments都存在時,形參與arguments是同步。
(即在函數中修改其中一個的值,另外一個也會同步)

三、arguments.callee是arguments的重要屬性,用於返回arguments所在函數的引用;
arguments.callee()能夠調用自身函數執行;
在函數內部調用自身的寫法,叫作遞歸,因此arguments.callee()是遞歸調用時經常使用的方式;

【this】
指向函數調用語句所在做用域,即誰調用函數,this指向誰;函數

 [BOM]this

[screen對象]:
console.log(screen.width);//屏幕寬度
console.log(screen.height);//屏幕高度
console.log(screen.availWidth);//可用寬度
console.log(screen.availHeight);//可用高度=屏幕高度—底部任務欄


[location對象]:

完整的url路徑
協議://主機名(IP地址):端口號/文件路徑 ?傳遞參數(name1=value1 & name2=value)#錨點url

console.log(location);
console.log(location.href);//完整路徑
console.log(location.protocol);//路徑協議 http: https: ftp: file: mailto:
console.log(location.pathname);//文件路徑部分 /開始
console.log(location.port);//端口號
console.log(location.search);//從?開始日後的部分
console.log(location.hostname);//主機名(IP地址)
console.log(location.host);//主機名+端口號
console.log(location.hash);//#開始的錨點

function locationAssign(){
//加載新的文檔。加載之後,能夠回退。
location.assign("http://www.baidu.com");
}

function locationReplace(){
//使用新的文檔,替換新的文檔。替換之後,不能回退。
location.replace("http://www.baidu.com");
}

function locationReload(){
//從新加載當前頁面
//reload(true):從服務器從新加載文檔
//reload():在本地刷新當前頁面
location.reload(true);
}


[history]:
一、history.length:瀏覽歷史列表的個數;
二、history.forward();前進倒前一個頁面
三、history.back();後退到後一個頁面
四、history.go(0);跳轉到歷史網頁列表的任意位置
位置標誌:當前頁面爲0;前一個頁面爲1;後一個頁面爲-1;


[Navigator對象]

console.log(navigator.appName);//產品名稱
console.log(navigator.appVersion);//產品版本號
console.log(navigator.userAgent);//用戶代理信息
console.log(navigator.platform);//系統平臺


navigator.plugins:返回一個數組,檢測瀏覽器安裝的全部插件
>>>主要屬性:
description:插件的描述信息
filename:插件在本地磁盤的文件名
length:插件個數
name:插件名


navigator.mimeTypes:瀏覽器插件,所支持的文件類型
>>>主要屬性:
description:MIME類型描述
enabledPlugin:支持此類型的瀏覽器插件
suffixes:此類型可能的後綴名
type:MIME類型的寫法,例如:image/x-iocon text/css

window對象的經常使用方法【重點】
>>>window對象中的全部方法,都可以省略前面的window.,好比close();

一、prompt:彈窗接收用戶輸入;
二、alert:彈窗警告
三、confirm:帶有確認/取消按鈕的提示框;
四、close:關閉當前瀏覽器選項;
五、open:從新打開一個窗口,傳入數據:URL/窗口名稱/窗口特徵
六、setTimeout:設置延時執行,只會執行一次
七、setInterval:設置定時器,循環每N毫秒執行一次
兩個參數:須要執行的function/毫秒數(用逗號分隔)
八、clearTimeout:清除延時
九、clearInterval:清除定時器
傳入參數:調用setInterval時返回一個ID,經過變量接收ID,傳入clearInterval。spa

相關文章
相關標籤/搜索