最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

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

我發(fā)現(xiàn)一個(gè)蛋疼的問(wèn)題,sum難道是javascript的關(guān)鍵字不成?

我發(fā)現(xiàn)一個(gè)蛋疼的問(wèn)題,sum難道是javascript的關(guān)鍵字不成?

我吃炸土豆 2016-02-22 11:28:32
今天寫(xiě)三個(gè)數(shù)求和的時(shí)候,發(fā)現(xiàn)函數(shù)名字是sum的時(shí)候,那個(gè)函數(shù)只能調(diào)用一次,兩次以上就有問(wèn)題;而改函數(shù)名字之后,就對(duì)了??!醉了醉了。問(wèn)題代碼如下<!DOCTYPE?HTML> <html> <head> <meta?http-equiv="Content-Type"?content="text/html;?charset=gbk"?/> <title>函數(shù)傳參</title> <script?type="text/JavaScript"> ???function?sum(x,?y,?z)???????????????? { ??sum?=?x?+?y?+z; ??document.write(x+"、"+y+"、"+z+"和:"+sum+"<br/>"); } ????sum(5,8,3); ????//下面一行會(huì)報(bào)錯(cuò) ????sum(7,1,4); </script> </head> <body> </body> </html>難道是因?yàn)楹瘮?shù)名字與變量名字不能相同?但應(yīng)該是可以的吧
查看完整描述

4 回答

已采納
?
Caballarii

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

js中函數(shù)也是變量,sum原來(lái)是個(gè)函數(shù),但執(zhí)行一次以后,sum被賦值x+y+z,變成了一個(gè)數(shù)值型變量,所以再把它當(dāng)函數(shù)用就報(bào)錯(cuò)了。

查看完整回答
1 反對(duì) 回復(fù) 2016-02-22
  • 我吃炸土豆
    我吃炸土豆
    我試了,確實(shí)改了里面的變量名就行了。但是不太科學(xué)啊,不區(qū)分函數(shù)和變量,難道調(diào)用函數(shù)的時(shí)候可以不加括號(hào)哈
  • Caballarii
    Caballarii
    函數(shù)名不加括號(hào)就只是一個(gè)變量,可以賦值,比如function sum(){}, 你可以用var sum1=sum;這樣就可以用sum1()來(lái)調(diào)用函數(shù)
  • 我吃炸土豆
    我吃炸土豆
    ...這也太隨意了,可以賦值,又不能調(diào)用。因?yàn)榭梢韵駍um;調(diào)用的時(shí)候,又和變量定義混淆了
點(diǎn)擊展開(kāi)后面2
?
ruibin

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

你最主要問(wèn)題是沒(méi)有搞清楚什么是局部變量,什么是全局變量。什么時(shí)候創(chuàng)建的變量是局部變量,什么時(shí)候創(chuàng)建的是全局變量。這個(gè)問(wèn)題的核心是:在函數(shù)內(nèi)部如果我們穿件變量時(shí)不使用var,并且這個(gè)變量不是參數(shù),那么這個(gè)創(chuàng)建的變量會(huì)成為全局變量。而這個(gè)函數(shù)其實(shí)就相當(dāng)于var sum = function(){};你在內(nèi)部創(chuàng)建一個(gè)全局變量,就相當(dāng)于把這里的var sum 賦值為

x + y +z了。所以這并不是隨意不隨意的問(wèn)題。

查看完整回答
1 反對(duì) 回復(fù) 2016-02-22
  • ruibin
    ruibin
    這里并不是指針,js中沒(méi)有就不存在指針這個(gè)概念。在java中你可以不聲明就使用變量?這里卻可以,但是不聲明的結(jié)果就是全局變量。
  • ruibin
    ruibin
    不加var會(huì)引起很多問(wèn)題,特別是框架里面,很多會(huì)直接報(bào)錯(cuò)。嚴(yán)格模式也是不允許的,在非嚴(yán)格模式下,使用(注意這里是使用)為聲明的變量會(huì)報(bào)Reference Error
  • 我吃炸土豆
    我吃炸土豆
    誰(shuí)知道他內(nèi)部有沒(méi)有用指針?java還自稱沒(méi)有指針呢,我也不是說(shuō)我用java/c的思想來(lái)看待js就有多正確。只是以前沒(méi)有接觸過(guò)這種弱類型的語(yǔ)言,難免思維遷移,理解出錯(cuò)嘛
點(diǎn)擊展開(kāi)后面4
?
merry_離

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

確切的說(shuō)是同一作用域函數(shù)名和變量名不能相同的,你這么寫(xiě),sum函數(shù)的執(zhí)行過(guò)程中,把sum重新指向?

x?+?y?+z;
原來(lái)的sum這個(gè)時(shí)候已經(jīng)變成了x+y+z;
function?sum(x,?y,?z)?{
???	var?sum?=?x?+?y?+z;
??document.write(x+"、"+y+"、"+z+"和:"+sum+"<br/>");
}
????sum(5,8,3);
????sum(7,1,4);

如果在function sum() 里面再申明一個(gè)sum 并且沒(méi)有變量提升,就可以避免沖突。

查看完整回答
反對(duì) 回復(fù) 2016-02-24
  • 我吃炸土豆
    我吃炸土豆
    問(wèn)題的關(guān)鍵是,為什么變量名和函數(shù)名會(huì)沖突
  • ruibin
    ruibin
    js是弱類型語(yǔ)言!函數(shù)名也可以說(shuō)是變量名。function sum() {}和 var sum = function() {}如果不考慮聲明提前那么他們兩個(gè)是完全一樣的,所以現(xiàn)在有些js書(shū)寫(xiě)規(guī)范建議只寫(xiě)成var sum = function() {}這種形式,而不寫(xiě)成function sum() {}這種形式,就是為了方便其他語(yǔ)言轉(zhuǎn)來(lái)學(xué)習(xí)js的程序員。
  • 4 回答
  • 0 關(guān)注
  • 2270 瀏覽
慕課專欄
更多

添加回答

舉報(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)