Rumah > Soal Jawab > teks badan
`alert(jumlah(10,10));
var sum=function(num1,num2){
return num1+num2;
};`
Kenapa ralat dilaporkan tidak ada promosi berubah-ubah?
phpcn_u15822017-07-05 10:57:27
Apabila kita menulis kod js, kita mempunyai dua cara menulis, satu ialah ekspresi fungsi, dan satu lagi ialah pengisytiharan fungsi.
Apa yang perlu kita fokus ialah:
Hanya borang pengisytiharan fungsi boleh dinaikkan pangkat.
1. Borang pengisytiharan fungsi [Berjaya]
function myTest(){
foo();
function foo(){
alert("我来自 foo");
}
}
myTest();
2. Kaedah ekspresi fungsi [Kegagalan]
function myTest(){
foo();
var foo =function foo(){ // 看这里
alert("我来自 foo");
}
}
myTest();
Baca artikel saya: http://www.jianshu.com/p/85a2...
扔个三星炸死你2017-07-05 10:57:27
Ekspresi fungsi tidak dinaikkan.
Baca "Javascript Advanced Programming" sekali lagi.
phpcn_u15822017-07-05 10:57:27
Pengisytiharan dan ungkapan adalah berbeza Jika anda mengisytiharkan, bukan sahaja definisi akan dilakukan lebih awal, tetapi tugasan juga akan dilakukan terlebih dahulu, tetapi ungkapan itu tidak akan
a();
function a(){}; //等同于
var a = function(){};
a();
///////对于表达式有
a();
var a = function(){}; //等同于
var a;
a();
a = function(){}; //简单来讲就是表达式的赋值必须要等程序运行到相关行的时候才会进行
ringa_lee2017-07-05 10:57:27
Sama seperti di atas, kaedah penciptaan fungsi anda adalah dalam bentuk literal fungsi, tukar kepada
alert(sum(10,10));
function sum(num1,num2){
return num1+num2;
}
Itu sahaja