`
jiangzhenwei6
  • 浏览: 34516 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

javascript入门(函数)

    博客分类:
  • jsp
阅读更多
准备写下一系列javascript入门的文章,一方面算是自己对javascript知识的稳固,一方面也希望对初学javascript的朋友有所帮助。javascript的基本类型和语法其实跟java是非常相似的,对于javaeye的朋友我想都清楚,今天就从javascript的函数写起:
1、js函数声明:  
function fun1(arg){   
 alert(arg+",This is my first js function !"); }    
var fun2 = new Function("arg","alert(arg);");   
//尽管可用Function构造函数创建函数,但最好不要使用它,因为它比第一种传统方式定义函数要慢得多!    
//不过所有函数都应该看作为是Function类的实例! fun1("Jesen"); fun2("Jesen");   
 
function fun1(arg){
 alert(arg+",This is my first js function !"); } 
var fun2 = new Function("arg","alert(arg);");
//尽管可用Function构造函数创建函数,但最好不要使用它,因为它比第一种传统方式定义函数要慢得多! 
//不过所有函数都应该看作为是Function类的实例! fun1("Jesen"); fun2("Jesen"); 

2、和java不同,js是无重载的:
   
function fun1(arg){   
alert(arg+100); }    
function fun1(arg,arg2){   
alert(arg+10); }    
//第二个fun1将覆盖第一个的定义,在下面讲到的arguments中可以解决重载问题。    
fun1(10);   
 
function fun1(arg){
alert(arg+100); } 
function fun1(arg,arg2){
alert(arg+10); } 
//第二个fun1将覆盖第一个的定义,在下面讲到的arguments中可以解决重载问题。 
fun1(10); 

3、arguments对象
    
//arguments对象是传给函数的参数数组    
function fun1(){ alert(arguments.length); }    
fun1(); fun1(2); fun1(2,3);    
//模拟函数重载    
function fun3(){    
if(arguments.length==1)   
{ alert(arguments[0]+10); }   
else{ alert(arguments[0]+arguments[1]); } }    
fun3(100); fun3(10,20);   
 
//arguments对象是传给函数的参数数组 
function fun1(){ alert(arguments.length); } 
fun1(); fun1(2); fun1(2,3); 
//模拟函数重载 
function fun3(){ 
if(arguments.length==1)
{ alert(arguments[0]+10); }
else{ alert(arguments[0]+arguments[1]); } } 
fun3(100); fun3(10,20); 

[color=blue]4、闭包

     对于闭包,理解的不是很透彻,也请了解的朋友解释下。

     有说函数内部使用全局变量就是一个简单的闭包的:
   
var g_arg = "ok"; function fun1(){ alert(g_arg); }   
fun1();   
 
var g_arg = "ok"; function fun1(){ alert(g_arg); }
fun1(); 


    也有一种是函数外部调用函数内部变量的闭包:
   
function a(){ var i=0; function b(){ alert(++i); } return b; }   
var c = a(); c(); c();   
 
function a(){ var i=0; function b(){ alert(++i); } return b; }
var c = a(); c(); c(); 

不是很理解javascript中闭包的作用,大家可讨论下。

严格意义上讲任何一个function在执行时就构成一个闭包,闭包的实质是作用域。


普通的function,内部声明的变量在执行完会全被回收掉,这时闭包也被回收了,所以这种闭包对我们没有用处,他只是个作用域。

如果一个function的局部变量在执行时被生命周期更长的变量引用,那么这个function执行完时就不能回收掉这个局部变量,这个局部变量的生命周期超出了他的作用域,这时的作域也不能被回收掉,就形成了典型的闭包。

闭包的作用就是使局部变量拥有更大的生命周期,甚至全局的生命周期,这使得闭包可以保存function执行时的状态,特别是那种function中又返回一个function时,被返回的function就可以访问父function执行时的所有局部变量(典型的带状态函数)。因为JS中回收一个变量不是看作用域是否结束,而是看引用数。
[/color]

5、匿名函数

     js实现匿名函数有三种方式:

     a、函数字面量:首先声明一个函数对象,然后执行它。
(function(arg){ alert(arg); } ) (1);   
 
     (function(arg){ alert(arg); } ) (1); 



   b、优先表达式:由于Javascript执行表达式是从圆括号里面到外面,所以可以用圆括号强制执行声明的函数。
( function(arg){ alert(arg); } (2) );   
 
    ( function(arg){ alert(arg); } (2) ); 


c、Void操作符:用void操作符去执行一个没有用圆括号包围的一个单独操作数。

void function(arg){ alert(arg); }(3)   
 
    void function(arg){ alert(arg); }(
3)
我们一般通常用第一种方法,在扩展jquery的时候我们也经常会用到这种匿名函数的写法:
  
 
(function($) { $.fn.pluginName = function() { // Our plugin implementation code goes here. }; })(jQuery);   
  
(function($) { $.fn.pluginName = function() { // Our plugin implementation code goes here. }; })(jQuery); 

上面定义了一个jQuery函数,形参是$,函数定义完成之后,把jQuery这个实参传递进去.立即调用执行。这样的好处是,我们在写jQuery插件时,也可以使用$这个别名,而不会与prototype引起冲突.

引用http://www.iteye.com/topic/976562
分享到:
评论

相关推荐

    JavaScript ES6函数式编程入门经典_javascript_

    JavaScript ES6函数式编程是现代Web开发中的重要概念,它为开发者提供了更高效、更简洁的...通过阅读《JavaScript ES6函数式编程入门经典》这本书,你将能深入学习这些概念,并逐步成为一名熟练的JavaScript开发者。

    JavaScript ES6函数式编程入门经典

    《JavaScriptES6函数式编程入门经典》使用JavaScriptES6带你学习函数式编程。你将学习柯里化、偏函数、高阶函数以及Monad等概念。  目前,编程语言已经将焦点从对象转移到函数。JavaScript支持函数式编程,并允许...

    JavaScript ES6函数式编程入门经典_javascript_tall7cj_

    JavaScript ES6函数式编程入门经典是一本针对JavaScript开发者,尤其是初学者的教程,旨在帮助他们掌握ES6(ECMAScript 2015)的新特性,并深入理解函数式编程的概念和实践。函数式编程是一种编程范式,它强调将计算...

    JavaScript 入门与提高

    首先,入门阶段,你需要理解JavaScript的基本语法,包括变量声明、数据类型(如字符串、数字、布尔值、对象、数组等)、控制流程(如条件语句、循环结构)以及函数的使用。这些构成了JavaScript的基础骨架,是编写...

    javascript实现根据函数名称字符串动态执行函数的方法示例

    此外,关于JavaScript的其它编程技巧,本篇介绍了多个专题,包括常用函数技巧、面向对象入门、json操作、切换特效、查找算法、错误与调试、数据结构与算法、遍历算法以及数学运算的用法总结。这些内容都是非常实用的...

    javascript的函数 入门详解

    JavaScript中的函数是编程的核心元素,它是可重复使用的代码块,能够根据输入参数执行特定任务。在JavaScript中,函数既是数据类型,也是第一级公民,这意味着它们可以被赋值给变量、作为参数传递以及作为其他函数的...

    javascript入门经典第6版

    资源名称:JAVAscript入门经典 第6版内容简介:本书是学习Javascript编程的经典教程。全新的第6版涵盖了ECMAscript 6。全书分为8个部分,共26章。首部分“Javascript基础”,包括第1章到第4...

    javascript入门实用例子

    本资源“javascript入门实用例子”是一个针对初学者的实践教程,旨在帮助你快速理解并掌握JavaScript的基础知识和实际应用。通过使用Eclipse这样的集成开发环境(IDE),你可以更方便地管理和调试代码。 首先,让...

    javascript入门参考资料.rar

    作为“javascript入门参考资料”这个压缩包,它包含了帮助初学者踏入JavaScript世界的必备资料。 首先,"javascript入门参考资料.ppt"很可能是一个PowerPoint演示文稿,这种格式通常用于教学或讲座,以图文并茂的...

    JavaScript入门经典(第五版)

    《JavaScript入门经典(第五版)》由Paul Wilton编著,是一本深受读者喜爱的JavaScript学习资源,尤其适合初学者。本书旨在帮助读者快速掌握JavaScript的基础知识,并逐步提升编程能力。 在JavaScript的世界里,你...

    《JavaScript入门经典(第6版)》┊ Phil Ballard PDF

    JavaScript的异步编程是其一大特色,因此在《JavaScript入门经典》中,作者也详细讲解了回调函数、Promise和async/await等异步处理方式,帮助读者应对复杂的并发问题。 最后,本书还涉及了一些现代JavaScript特性,...

    JavaScript入门经典(源代码).rar

    "JavaScript入门经典"是一本旨在帮助初学者掌握JavaScript基础知识的教程,源代码提供给学习者实践和探索。 在"jc_wyzz-JavaScript_rmjd"这个压缩包中,很可能包含了与《JavaScript入门经典》书中的各个章节对应的...

    JavaScript入门学习资料包

    总之,这个"JavaScript入门学习资料包"为初学者提供了一个全面学习JavaScript的平台,从基础到高级,从理论到实践,逐步建立起扎实的JavaScript知识体系。通过系统学习和不断实践,你将能够熟练掌握这门强大的编程...

    JavaScript入门经典源代码

    这个"JavaScript入门经典源代码"压缩包很可能是包含了一系列用于初学者学习JavaScript编程的示例代码。通过这些源代码,学习者可以深入理解JavaScript的基础概念、语法结构以及常见功能的实现方式。 1. **基础语法*...

    JavaScript从入门到精通(第4版)(示例源码+习题答案).7z

    "JavaScript从入门到精通(第4版)"是一本旨在帮助初学者掌握这门语言的教材,通过详细的示例源码和习题答案,让学习者能够逐步深入理解JavaScript的核心概念和实际应用。 1. **基础语法**:JavaScript的基础包括...

    JavaScript入门教程_适合初学者

    JavaScript,一种广泛应用于网页和网络应用的编程语言,是互联网上实现动态交互的关键技术。...通过阅读《JavaScript入门教程.ppt》这个压缩包中的内容,初学者可以逐步深入到JavaScript的世界,开启编程之旅。

    663752 JavaScript ES6函数式编程入门经典.zip

    本资料“663752 JavaScript ES6函数式编程入门经典”将引导初学者深入理解这一概念。 在函数式编程中,"纯函数"是核心概念之一。纯函数是指没有副作用且对相同的输入总是返回相同输出的函数。它们不依赖外部状态,...

    JavaScript 入门 新手学习笔记

    这篇"JavaScript入门新手学习笔记"提供了全面的学习资源,适合初学者系统性地掌握这一技术。 笔记可能包含了以下关键知识点: 1. **基础语法**:JS的基础包括变量(var、let、const)、数据类型(如字符串、数字、...

    JavaScript入门教程(清晰PDF)

    此"JavaScript入门教程(清晰PDF)"提供了一个良好的起点,帮助初学者理解这一强大的编程工具。本教程涵盖了JavaScript的基本概念、语法以及实际应用,旨在使读者能够熟练地在浏览器环境中编写代码。 一、JavaScript...

    javascript入门视频教程(比较不错的)

    "javascript入门视频教程(比较不错的)" 提供了一个全面学习JavaScript的基础路径,帮助新手逐步掌握这门语言。 本教程可能包含以下核心知识点: 1. **基础语法**:讲解JavaScript的基础,包括变量、数据类型(如...

Global site tag (gtag.js) - Google Analytics