首頁  >  文章  >  web前端  >  JavaScript函數定義的常見注意事項小結_javascript技巧

JavaScript函數定義的常見注意事項小結_javascript技巧

WBOY
WBOY原創
2016-05-16 16:36:221200瀏覽

本文就javascript函數定義的常見問題進行了總結。包含了初學者常犯的錯誤。分享給大家供大家參考。具體總結如下:

1. 函數宣告的同時JS引擎也定義了一個與函數名稱同名的變量,我們在調用這個函數的時候實際上是在使用這個變量,並且它可以在函數聲明之前調用,例如

foo(); //这里实际上是使用了一函数变量 
function foo() { 
  alert('hello'); 
} 

2. 函數表達式,此時匿名函數賦值給了一變量,此變數需在定義後使用,例如

foo(); //报错,未定义 
var foo = function() { 
  alert('hello'); 
} 

3. 函數表達式(with函數名),這種用法最好避免,此時非IE瀏覽器中該函數名稱只在內部可用,例如

bar(5); //报错,未定义 
var bar = function foo(n) { 
  if (n == 1) 
    return 1; 
  else 
    return n * foo(n - 1); 
} 
foo(5); //非IE报错,未定义 
bar(5); //正确 

4. 用Function建構函式定義,這種方式效率低,每次執行函式的時候,其函式體都會被解析一次。另外這樣宣告的函數是不會繼承目前宣告位置的作用域,它預設只會擁有全域作用域,例如

function foo() { 
  var bar = 'hello'; 
  return Function('alert(bar)'); //报错,全局变量bar未定义 
} 
foo()();

相信本文所述對大家javascript WEB程式設計的學習有一定的借鏡價值。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn