❶ js函數返回值獲取
裡面的抄return,返回的只是裡面的襲匿名函數,
即返回值作為local.setSearch...callback()這個函數的參數執行
而不是返回給最外面的searchBystationName()這個函數
實際上searchBystationName這個函數並沒有返回值。。
補充:當coordinate=searchBystationName(keyword);即給coordinate賦值的時候,searchBystationName(keyword)執行完就銷毀了,所以coordinate最後得到的應該是一個空值(猜測)
alert()的時候就為null或者「」或者undefined。。
不知道理解我的意思了沒
❷ js中的函數返回值是什麼
返回值
就是return後的東西,比如function
a(){return
true;}這樣用一個變數接收a返回的值就是true,如果直接調用也可以,返回值可以不處理的,看情況的。
❸ js return一個 函數嗎
首先要說明的一點,JS術語前端程序,php屬於後端程序 ,前端程序和後端程序要交貨,必須通過「請求」操作來進行。js代碼里可以通過Ajax或者表單來提交給後端的php程序。 如果你使用JQuery的話可以使用
$.get("123.php?pos="+"{'x':"+e.screenX+",'y':"+screenY+"}" )
來進行Ajax提交。因為你的函數為事件綁定的函數,所以在觸發事件以外的其他地方使用時,這個函數是獲取不到其參數event的。要提交到php程序的話需要把提交請求的代碼放到時間的函數裡面。你的函數得改為:
function getMousePos(event) { var e = event || window.event;
$.get("123.php?pos="+"{'x':"+e.screenX+",'y':"+screenY+"}" ); return true;}
123.php中可以使用 json_decode來對傳入的pos參數進行解析即可。
另:建議不要在滑鼠移動事件里綁定getMousePos這個函數,因為你稍稍移動一下滑鼠,就要對php程序進行一次請求,這樣會造成對後端程序服務的大量訪問。
總體上來說,return一般是用在函數中的用來向解析器表達退出函數並返回調用函數空間的命令。
在JS這個專門用於web的程序設計語言來講,其使用環境最為廣泛的就是在瀏覽器環境下使用。W3C規定了一些供JS程序和頁面代碼進行交互的介面,如瀏覽器級別的BOM(BrowserObjectModel,瀏覽器對象模型)和DOM(Document Object Model,文檔對象模型)。通過這些介面,JS程序就可以暢快淋漓地和頁面進行開心的「交談」和「合作」了。
在函數中,表示返回:
1)退出函數空間。
1
2
3
4
5
function a(){
var aa=0;
return ;
var bb=0;
}
解析:函數執行到return就返回了調用函數的空間,返回值為undefined,後面的代碼將不會被執行,即var bb=0是不會被執行的。當然,這種情況下不寫return也是可以的,因為沒有返回任何值。
2)退出函數空間並返回函數計算結果。
1
2
3
4
5
function b(){
var aa=0;
aa=aa+1;
return aa;
}
解析:b函數別調用後返回了內部的變數aa經過計算過後的值,即1。此時調用函數b(),就會返回一個值1,可以使用變數賦值的形式獲取函數的返回值,如cc=b(),就將b函數的計算結果賦值給了cc這個變臉;
3) 函數返回的綜合使用。
1
2
3
4
5
6
7
8
9
//根據得分折算出用「優、良、中、差」表示的成績
fucntion zhesuan(var defen){
if(defen<60){ return "差";}
if(defen<80){ return "中";}
if(defen<90){ return "良";}
if(defen<=100){ return "優";}
return;
var jieguo="return 使用實例";
}
解析:zhesuan函數通過傳入的得分參數defen來折算出「優、良、中、差」表示的成績。正常情況下,我們通過顯示折算演算法的直接代碼化,需要進行多重判定才能達到效果:
60分以下為差
60至79分為中
80至89分為良
90以上為優
轉換為程序代碼就要分別寫if …else if ....else if 代碼:
1
2
3
4
5
6
7
8
9
10
11
if(defen<60) {
zhesuanjieguo="差";
else if (defen>60 && defen<80){
zhesuanjieguo="中";
}
else if (defen>=80 && defen<90){
zhesuanjieguo="良";
}
else if (defen>90 && defen<=100){
zhesuanjieguo="優";
}
這樣寫代碼量大,編寫和閱讀都容易對分段搞錯。
如果這樣寫:
1
2
3
4
if(defen<60){ zhesuanjieguo= "差";}
if(defen<80){ zhesuanjieguo= "中";}
if(defen<90){ zhesuanjieguo= "良";}
if(defen<=100){ zhesuanjieguo="優";}
上面的代碼無論怎樣執行,結果都是"優",就不能達到效果。
因為return具有停止執行後續代碼並返回退出函數的作用,所以通過函數來進行折算就不需要作多重判定了,是不是很省事?
2. 與DOM或者DOM結合使用
例如在點擊事件中:
onClick='return add_onclick()'與 onClick='add_onclick()'
javaSCRIPT在事件中調用函數時用return返回值實際上是對window.event.returnvalue進行設置。
而該值決定了當前操作是否繼續。
當返回的是true時,將繼續操作。
當返回是false時,將中斷操作。
而直接執行時(不用return)。將不會對window.event.returnvalue進行設置
所以會默認地繼續執行操作
詳細說明如下:
例如:
當在 <a href="abc.htm" onclick="return add_onclick()">Open</a> 中
如果函數 add_onclick() 返回 true, 那麼 頁面就會打開 abc.htm
否則, (返回 false), 那麼頁面不會跳轉到 abc.htm, 只會執行你的 add_onclick() 函數里的內容. (add_onclick函數中控制頁面轉到 abc.htm除外
)
而 <a href="abc.htm" onclick="add_onclick()">Open</a>
不管 add_onclick() 返回什麼值, 都會在執行完 add_onclick 後打開頁面 abc.htm
❹ javascript 函數 怎麼返回值
使用return語句
return的內容可以是值、變數、表達式、函數~~版~(如下案例為返回一個表達式,返回的是str和權str2連接的結果)
<script>
functionh5course(){
varstr='HTML5學堂';
varstr2='原創技術文章分享';
returnstr+str2;
}
console.log(h5course());
</script>
❺ js 如何創建帶返回值的函數
首先說一下帶參數的函數:
這樣我們就可以只用add(m,n)這個函數來運行加法,而不需要知道裡面是什麼情況。
❻ js里的返回值怎麼獲取到
1、首先,新建一個html5文件,輸入初始化代碼。
❼ js:一個函數怎麼獲得另一個函數的返回值呢
有兩個函數a和b
functiona(){return1;}
functionb(){returna();}
這就是一個簡單的獲取,執行b()的時候,返回結果是1,即a()的返回值,但是顯然上面這種寫法沒有多大的意義,在實際應用中,寫的可能要復雜一些,同時也便捷一些。
❽ js javascript 請問 在函數里調用一個函數 怎麼叫他返回一個值和 return
"叫 上面的函數直接停止運行 "你想讓哪個函數停止運行?
reutrn alert(1) return false;這句要改成:alert("1"); return false;語法才是對的。
但是,從邏輯上來說,此時b(1,2)不會返回任何值,因為1!=2,b函數中的if語句不會執行。
❾ js只返回一個函數名是什麼意思
首先,這個例子是為了讓你理解閉包,沒有實際使用價值。其次,返回b不是返回函數值,而是返回了函數定義,你可以
var
c
=
a();這個時候c就等於b了,你可以繼續c();看到alert(1)
這個東西一般用在多態的處理上,根據外層的不同方法返回一個子方法以便下一步的操作。
例如function
獲取一個周長演算法(類型)
{
switch(類型)
case
'方':
return
function(l)
{return
4*l;}
case
'圓':
return
function(r)
{return
3.14
*
2
*
r;}
}
}
var
周長=(獲取一個周長演算法(方))(5);
周長得到20
❿ js 調用自己一個函數 返回值問題
ajax是非同步的請求,success里的函數會在請求成功後才會執行,也就是flag只會在請求完成後才會將data.total賦值給flag。而returnflag是在確認要發起請求後就執行了。所以除非請求完成,否則就是null
不知道你的HdUtils是什麼封裝的,jqurey的加async: false參數,純ajax就加asyn: false,這樣試試
varsearchReportByld=function(shipreportdocId){
varflag=null;
varbuilderShipReport=newHdEzuiQueryParamsBuilder();
if(shipreportdocld!=""){
builderShipReport.setAndClause("shipreportdocId",shipreportdocId,"=","and");
}
HdUtils.ajax.post({
url:"../webresources/login/work/ShipReport/find",
data:buildershipReport.build(),
success:function(data){
flag=data.total;
},
async:false
});
returnflag;
};