Nama fungsi dalam ungkapan fungsi tidak boleh diubah dan hanya boleh dipetik dan tidak boleh diberikan. Jika anda menambah 'use strict' anda boleh melihat ralat dalam mod ketat.
@Kod cepat kekunci ringan 10 memerlukan koma bertitik selepasnya
Tiada promosi fungsi di sini Promosi fungsi hanya wujud dalam kes "pengisytiharan fungsi", bukan dalam kes "ungkapan fungsi". Mengenai perbezaan antara "pengisytiharan fungsi" dan "ungkapan fungsi", banyak artikel di Internet menerangkannya dengan sangat jelas. Anda boleh mencari dan belajar sendiri.
Apa yang dikatakan oleh tingkat dua ialah tidak boleh mengubah suai nama fungsi dalam fungsi, contohnya:
(function a(){
a = 10; //这个表达式不会成功,函数a依旧是函数a,至于这里面的a = 10等同于被废弃了,也不会生成相应的全局变量
})();
Mengapa fungsi a adalah output dan bukannya 20, perkara mudahnya ialah pernyataan itu dilangkau terus, yang bersamaan dengan
var b = 10;
(function b(){
console.log(b);
})();
Supplement: Saya baru diingatkan bahawa fungsi laksana sendiri juga adalah ungkapan fungsi. Saya minta maaf kerana mengelirukan anda apabila saya mula menulis jawapan.
var b = 10;
var b = (function(){
b = 10;
console.log(b); //输出:10
})();
console.log(b); //输出:undefined 。 b在自执行函数那里没有获取到返回值
Nama fungsi dalam ungkapan fungsi tidak boleh diubah dan hanya boleh dipetik dan tidak boleh diberikan. Jika anda menambah
'use strict'
anda boleh melihat ralat dalam mod ketat.@Kod cepat kekunci ringan 10 memerlukan koma bertitik selepasnya
Tiada promosi fungsi di sini Promosi fungsi hanya wujud dalam kes "pengisytiharan fungsi", bukan dalam kes "ungkapan fungsi".
Mengenai perbezaan antara "pengisytiharan fungsi" dan "ungkapan fungsi", banyak artikel di Internet menerangkannya dengan sangat jelas. Anda boleh mencari dan belajar sendiri.
Apa yang dikatakan oleh tingkat dua ialah tidak boleh mengubah suai nama fungsi dalam fungsi, contohnya:
Mengapa fungsi a adalah output dan bukannya 20, perkara mudahnya ialah pernyataan itu dilangkau terus, yang bersamaan dengan
Supplement:
Saya baru diingatkan bahawa fungsi laksana sendiri juga adalah ungkapan fungsi. Saya minta maaf kerana mengelirukan anda apabila saya mula menulis jawapan.