JavaScript函数定义的常见注意事项小结_javascript技巧
程序员文章站
2022-04-25 11:19:59
...
本文就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程序设计的学习有一定的借鉴价值。
推荐阅读
-
js定义对象或数组直接量时各浏览器对多余逗号的处理(json)_javascript技巧
-
jquery对单选框,多选框,文本框等常见操作小结_javascript技巧
-
详细分析JavaScript函数定义_javascript技巧
-
JavaScript下申明对象的几种方法小结_javascript技巧
-
深入理解JavaScript系列(4) 立即调用的函数表达式_javascript技巧
-
javascript中bind函数的作用实例介绍_javascript技巧
-
JS中setInterval、setTimeout不能传递带参数的函数的解决方案_javascript技巧
-
Firefox/Chrome/Safari的中可直接使用$/$$函数进行调试_javascript技巧
-
深入认识javascript中的eval函数_javascript技巧
-
JavaScript下的时间格式处理函数Date.prototype.format_javascript技巧