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

理解JavaScript函数(两种方式)

    博客分类:
  • js
阅读更多
需要注意的是,尽管下面两种创建函数的方法是等价的:



以下是引用片段:
function funcName(){
       //函数体
}
//等价于
var funcName=function(){
       //函数体
}

  但前面一种方式创建的是有名函数,而后面是创建了一个无名函数,只是让一个变量指向了这个无名函数。在使用上仅有一点区别,就是:对于有名函数,它可以出现在调用之后再定义;而对于无名函数,它必须是在调用之前就已经定义。例如:

以下是引用片段:
<script language="JavaScript" type="text/javascript">
<!--
func();
var func=function(){
       alert(1)
}
//-->
</script>

  这段语句将产生func未定义的错误,而:

以下是引用片段:
<script language="JavaScript" type="text/javascript">
<!--
func();
function func(){
      alert(1)
}
//-->
</script>

  则能够正确执行,下面的语句也能正确执行:

以下是引用片段:
<script language="JavaScript" type="text/javascript">
<!--
func();
var someFunc=function func(){
      alert(1)
}
//-->
</script>

  由此可见,尽管JavaScript是一门解释型的语言,但它会在函数调用时,检查整个代码中是否存在相应的函数定义,这个函数名只有是通过function funcName()形式定义的才会有效,而不能是匿名函数。


 
6
3
分享到:
评论

相关推荐

    深入理解JavaScript 箭头函数

    通常,在JavaScript中,可以通过两种方式创建函数: 函数语句。 函数表达式。 可以如下所示创建函数语句: function add(num1, num2) { var res = num1 + num2; return res; } var sum = add(7, 2); console.log...

    JavaScript中的函数的两种定义方式和函数变量赋值

    函数名当参数,传递给另一个函数 */ //==================js中函数的两种定义方式和函数变量赋值================ //在javascript中定义一个函数就可以理解成定义了一个变量 //js中的变量时弱类型的哦。 //———-1 ...

    深入理解javascript中的立即执行函数(function(){…})()

    ( function(){…} )()和( function (){…} () )是两种javascript立即执行函数的常见写法,最初我以为是一个括号包裹匿名函数,再在后面加个括号调用函数,最后达到函数定义后立即执行的目的,后来发现加括号的原因...

    理解JavaScript作用域和作用域链

    作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理。今天这篇文章对JavaScript作用域和作用域链作简单的介绍,希望能帮助大家更好的学习JavaScript。任何程序...

    01 JavaScript基本语法.ppt

    网页中嵌入脚本有两种方式:使用标签或外部 *. js文件 理解变量、数据类型和运算符 JavaScript 中声明变量:var 变量名 "+"可以用于两个数相加,还可以用于连接字符串 parseInt() 和 parseFloat() 函数将字符串分别...

    【JavaScript源代码】详解JavaScript闭包问题.docx

     一、变量的作用域 在介绍闭包之前,我们先理解JavaScript的变量作用域。变量的作用域分为两种:全局变量和局部变量。 var n = 999; //全局变量 function f1() { a = 100; //在这里a也是全局变量 alert(n); }...

    JavaScript创建闭包的两种方式的优劣与区别分析

    通常JavaScript创建闭包比较常用的有两种方式。 构造函数方式: new function() { var 变量... } 内联执行方式: (function() { var 变量... })(); 在JavaScript内部运行机制下他们有什么区别?用哪种方式创建...

    02 函数与事件.ppt

    网页中嵌入脚本有两种方式:使用标签或外部 *. js文件 理解变量、数据类型和运算符 JavaScript 中声明变量:var 变量名 "+"可以用于两个数相加,还可以用于连接字符串 parseInt() 和 parseFloat() 函数将字符串分别...

    JavaScript回调(callback)函数概念自我理解及示例

    在JavaScript里什么叫Callback“回调函数”,用我的话来讲就是把方法b当做一个参数传递个方法a,当方法a执行完后执行另外一个指定函数(这里是b函数)。来看个列子: 代码如下: <html> <head> <...

    理解JavaScript变量作用域更轻松

    一、JavaScript作用域分类 JavaScript就两种作用域:全局(window)、函数级(function)。函数级(function)不要理解为“块级(大括号{}级)”。 二、区分及定义JavaScript全局变量与局部变量 1.1定义在所有函数...

    深入理解JavaScript作用域和作用域链

    作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理。今天这篇文章对JavaScript作用域和作用域链作简单的介绍,希望能帮助大家更好的学习JavaScript。 ...

    谈谈JavaScript中的函数

    JS中函数定义,有如下两种形式: 方式1 function f1(){} //函数声明,f1为函数名,可以将其理解为变量f1指向一个函数 function f2(){return 100;}//函数允许有返回值 function f3(a,b){}//函数中可以定义多个参数,...

    javascript深入理解js闭包

    要理解闭包,首先必须理解Javascript特殊的变量作用域。 变量的作用域无非就是两种:全局变量和局部变量。 Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。 var n=999;  function f1(){  alert&...

    分页的详解源代码

    该项目使用了两种方式实现分页功能。第一种使用了Jsp中的JSTL标签与后台的连接,数据库返回数据,Jsp负责绘制表格,充分展现了前端与后台的分工职能,有利于理解MVC的架构模式。第二种使用了Jsp中的JavaScript的函数...

    javascript闭包的理解

    变量的作用域分两种:全局变量和局部变量。没有定义到任何函数中的变量为全局变量,在函数中定义的变量为局部变量,注意在函数内部定义变量时一定要使用var关键字,不带var关键字的变量为全局变量。 javascript中每...

    javascript高级教程

    另外,再提醒一下:Javascript对大小写是敏感的,特别是一些对象、方法、属性的大小写一定要一致,要养成一种良好的习惯,否则在调试程序时可要累死你了。  7、变量  如 var myVariable = "some value";  变量有...

    深入理解javascript作用域第二篇之词法作用域和动态作用域

    这实际上是由两种作用域工作模型导致的,作用域分为词法作用域和动态作用域,分清这两种作用域模型就能够对变量查找过程有清晰的认识。本文是深入理解javascript作用域系列第二篇——词法作用域和动态作用域 词法...

    Javascript 链式作用域详细介绍

    Javascript 链式作用域 其实对于Javascript链式作用域的描述,包括,JS权威指南,都有些太冗长了–但是很准确:JavaScript中的函数运行在他们被...另外补充一下,函数定义有两种方式,其实略有差别: var a=functio

    JavaScript作用域示例详解

    作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理。今天这篇文章对JavaScript作用域示例详解的介绍,希望能帮助大家更好的学习JavaScript。 任何程序设计...

Global site tag (gtag.js) - Google Analytics