學習JavaScript的過程,我相信不少人都有這個疑惑 ,return是什麼,只知道他是一個返回,可是他能返回什麼,他有用什麼做用呢 ,至此我看了不少博客,也蒐集了不少資料,若是有錯誤,請幫忙更正瀏覽器
return:閉包
第一返回函數值:函數
返回函數中的值,外部調用函數時,則會調用這個值。閉包中就是運用這個屬性,調用函數內部的局部變量,以不影響全局變量。學習
下面來看一個例子吧:對象
當執行的時候,函數fn()執行了,頁面會輸出5,可是console出來的倒是一個undefined,不管你在fn()函數中寫任何東西,變量獲取彈出的都是undefined,blog
若是你須要他可以賦值給變量,這時候就須要用到return,事件
X變量獲得的就是10;圖片
任何數據都可以被returnip
咱們來return一個函數試試博客
var x=fn();
console.log(x);
function fn() {
var output=10;
document.write(output);
return function () {
alert(1);
}
}
猜猜這時候變量x會獲得什麼 ,
由於 return返回的是
function () {
alert(1);
}
因此X獲得的也是函數體
如何獲得函數裏面的內容,
那就得給x加個括號讓他執行,
X();
var x=fn();
x();
console.log(x);
function fn() {
var output=10;
document.write(output);
return function () {
alert(1);
}
}
固然若是沒有賦值變量,咱們也能夠直接
fn()();
讓他進行兩次執行,執行的春旭會先執行第一個fn()函數,在執行fn函數裏面的第二個函數..
fn()();
function fn() {
var output=10;
document.write(output);
return function () {
alert(1);
}
}
獲得的結果也是一樣的..
咱們再來舉一個例子.
var y=sum(7,8,2,7,2,1,5);
document.write(y);
function sum() {
var x=0;
for (var i=0; i<arguments.length; i++) // 獲取被傳遞參數的數值。
{
x+=arguments[i];
}
return x
}
一個簡單的參數加法運算, 若是你想取得函數內部的值,並將它賦予新的變量,那能夠經過return在外部訪問到內部的值.
第二當函數執行到return,函數後面將不會在執行後面的代碼
alert( person(15));
function person(age) {
if (age<="16")
{
return age+ "你還年輕";
}
else {
return age +"你老了";
}
alert("這裏的代碼講不會執行");
這裏的return有點像break,做用都有截斷後面代碼的做用,可是return的功能殊不知是截斷代碼.
在js中return false的做用通常是用來取消默認動做的。好比你單擊一個連接除了觸發你的
onclick時間(若是你指定的話)之外還要觸發一個默認事件就是執行頁面的跳轉。因此若是
你想取消對象的默認動做就能夠return false。
<body onselectstart="return false"> </body> //這裏的onselectstar 實際是一個時間,設置return false 禁止裏面的文字圖片被選中$("a.toggle").click(function () { $("#mydiv").toggle(); return false; // Prevent browser from visiting `#` }); //這個函數使用toggle來顯示或者隱藏#mydiv,而後阻止瀏覽器繼續訪問href中指定的連接。