程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> javascript-js function 的一些疑問

javascript-js function 的一些疑問

編輯:編程解疑
js function 的一些疑問

function m1(){
console.log('m1 one');
}
m1();
var m1 = function(){
console.log('m1 two');
}
m1();
這樣執行的結果是 先輸出m1 one 然後在m1 two;
function m1(){
console.log('m1 one');
}
m1();
function m1(){
console.log('m1 two');
}
m1();
這個輸出卻2次都是m1 two。
function m1(){}和var m1 = function(){} 這2種聲明有什麼不同?
請高手賜教

最佳回答:


在js加載時,會對方法名和變量名先進行解析和加載

第一個過程
var m1;//掃描到變量,把申明提前了,但變量的初始值還是再原來的位置進行賦值,也就是初始時是函數的定義
 function m1(){
console.log('m1 one');
}
m1();
m1 = function(){//這裡才對變量進行覆蓋
console.log('m1 two');
}
m1();
第二個過程中,js加載會先掃描function,一次掃描完在執行,m1就被後面的覆蓋了
 function m1(){
console.log('m1 one');
}
m1();
function m1(){
console.log('m1 two');
}
m1();
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved