第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

為什么這段函數(shù)不需要return返回值也能運(yùn)行

為什么這段函數(shù)不需要return返回值也能運(yùn)行

哈哈哈蜜瓜 2016-09-18 09:08:54
function?square(num){ ??sun=num*num; } var?num?=?square(2); alert(sum);把var num換成var sum反而undefind,為什么會(huì)這樣?
查看完整描述

4 回答

已采納
?
小白師兄

TA貢獻(xiàn)55條經(jīng)驗(yàn) 獲得超37個(gè)贊

第一:var num = square(2);執(zhí)行是因?yàn)閖s中可以把方法當(dāng)做參數(shù)一樣來(lái)使用,但是因?yàn)槟愕膕quare方法沒(méi)有return,所以var num是無(wú)法接收到square(2)執(zhí)行后的值,square(2)執(zhí)行得到的結(jié)果就是sun = 4;


所以你alert(num);還是得到的undified,至于你alert(sum),就錯(cuò)誤的更離譜了,你的代碼壓根就沒(méi)sum這個(gè)變量,你是把sun看成sum了吧??!


第二:函數(shù)如果沒(méi)有返回值,在執(zhí)行的時(shí)候,無(wú)法用變量來(lái)接收,沒(méi)返回何來(lái)接受!


第三:給你更改了一下:

function?square(num)?{
????return?num?*?num;
}
var?num?=?square(2);
alert(num);

這樣,你只要用變量接收?qǐng)?zhí)行的結(jié)果,就可以得到想要的值!

查看完整回答
3 反對(duì) 回復(fù) 2016-09-18
  • 哈哈哈蜜瓜
    哈哈哈蜜瓜
    sun是打錯(cuò)了,我webstorm上一樣是sum=num*num
  • 哈哈哈蜜瓜
    哈哈哈蜜瓜
    function square(num) { sum=num*num; } var num =square(2); alert(sum); 正確是這個(gè),為什么sum還可以繼續(xù)輸出
  • 小白師兄
    小白師兄
    因?yàn)槟鉺quare方法里面執(zhí)行的結(jié)果就是sum=4;因?yàn)闆](méi)有返回值,他永遠(yuǎn)是這個(gè)結(jié)果,你用var num =square(2);var num其實(shí)是沒(méi)用的,因?yàn)榻Y(jié)果還是sum = 4,所以你alert(sum)相當(dāng)于彈出的是square的結(jié)果,因此可以得到,別的變量就不可以??!
點(diǎn)擊展開(kāi)后面2
?
phpmadman

TA貢獻(xiàn)2條經(jīng)驗(yàn) 獲得超0個(gè)贊

  1. ?sun和sum的問(wèn)題不多說(shuō)了

  2. var num=square(2) ?這句從右往左執(zhí)行,執(zhí)行效果是,電腦確實(shí)進(jìn)行了2*2的運(yùn)算,并且把運(yùn)算結(jié)果4傳給了sum,但是square函數(shù)并沒(méi)有return,所以不返回值,也就無(wú)法給var num賦值。

  3. 所以不管賦值成不成功,alert(sum)中的sum的值都是square(2)的運(yùn)行結(jié)果,但是你把var num改成var sum就等于在square(2)執(zhí)行完成后,重新定義了一個(gè)sum,這個(gè)重新定義的sum是沒(méi)有值的,因?yàn)閟quare(2)沒(méi)有return.

查看完整回答
反對(duì) 回復(fù) 2016-09-18
  • phpmadman
    phpmadman
    另外,建議不管是全局變量還是局部變量最好都用var 聲明一下,這樣不容易亂
  • 哈哈哈蜜瓜
    哈哈哈蜜瓜
    就是說(shuō)如果沒(méi)有設(shè)置局部變量有沒(méi)有return都能輸出,如果設(shè)置了var sum的話就需要return和外部設(shè)置sum=square(5)才能輸出是嗎
?
hulukid

TA貢獻(xiàn)190條經(jīng)驗(yàn) 獲得超40個(gè)贊

function?square(num){
????var?sum?=?num*num;
????return?sum;
}
var?sum?=?square(2);
alert(sum);


查看完整回答
反對(duì) 回復(fù) 2016-09-18
?
stone310

TA貢獻(xiàn)361條經(jīng)驗(yàn) 獲得超191個(gè)贊

函數(shù)沒(méi)有返回值時(shí),square(2)===undefined;

函數(shù)內(nèi)部的sum并未加上var聲明,因此當(dāng)做全局函數(shù)看待,所以suqare(2)執(zhí)行完畢后,雖然沒(méi)有返回值,但是sum===4,外部是可以訪問(wèn)到的,你如果加上var 外部就無(wú)法訪問(wèn)到了;

所以alert(sum)===4;

alert(num),即alert(square(2))===undefined


查看完整回答
1 反對(duì) 回復(fù) 2016-09-18
  • 哈哈哈蜜瓜
    哈哈哈蜜瓜
    就是說(shuō)當(dāng)函數(shù)內(nèi)沒(méi)有設(shè)置局部變量的時(shí)候有沒(méi)有return外部都能接收sum的值,如果設(shè)置了局部變量那外部也要同時(shí)設(shè)置局部變量是嗎?
  • 4 回答
  • 0 關(guān)注
  • 2020 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)