易截截图软件、单文件、免安装、纯绿色、仅160KB

《悟透javascript》学习笔记:四、函数的魔力

引言
 
JavaScript的代码就只有 function 一种形式,function 就是函数的类型。也许其他编程语言还有 procedure 或 method 等代码概念,但在 JavaScript 里只有 function 一种形式。当我们写下一个函数的时候,只不过是建立了一个function类型的实体而已。
 
函数类型
 
1.       定义型函数,如下:
<script language="javascript">
function func(){
      alert("hello");
}
func();
</script>
 
2.       参数型函数,如下:
<script language="javascript">
func = function(){
      alert("hello");
}
func();
</script>
 
预编译
 
想想下下面的代码,然后执行看结果
 
      <script language="javascript">
function func(){
      alert("hello");
}
func();
function func(){
      alert("hi~~");
}
func();
</script>
 
上面的代码,结果两次都弹出“hi~~”,这是为什么?原来,JavaScript 执行引擎并非一行一行地分析和执行程序,而是一段一段地分析执行的。而且,在同一段程序的分析执行中,定义式的函数语句会被提取出来优先执行。函数定义执行完之后,才会按顺序执行其他语句代码。也就是说,在第一次调用func之前,第一个函数语句定义的代码逻辑,已被第二
个函数定义语句覆盖了。所以,两次都调用都是执行最后一个函数逻辑了。(这实际上就是因为只有一个函数变量,却多次赋值,所以当然只会保留最后一次的赋值了)
 
上面的情况出现的前提是js必须在同一代码快中,如果两个同样的函数在不同的代码块中就不会出现上面的状况了,如下:
 
<script language="javascript">
function func(){
      alert("hello");
}
func();
</script>
<script language="javascript">
function func(){
      alert("hi~~");
}
func();
</script>
 
试一试
 
1.       先用脑袋运行出结果,然后再执行比较
<script language="javascript">
func = funct


相关文档:

javascript with用法(转)

with
(object)
   statements
参数
object
新的默认对象。
statements
一个或多个语句,object 是该语句的默认对象。
说明
with
语句通常用来缩短特定情形下必须写的代码量。在下面的例子中,请注意 Math 的重复使用:
x = Math.cos(3 * Math.PI) + Math.sin(Math.LN10)
y = Math.tan(14 * ......

理解Javascript闭包(closure)

一、什么是闭包?
“官方”的解释是:所谓“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。
相信很少有人能直接看懂这句话,因为他描述的太学术。我想用如何在Javascript中创建一个闭包来告诉你什么是闭包,因为跳过闭包的创 ......

高效JavaScript 字符串替换函数的benchmark

版权声明
:可以任意转载,但转载时必须标明原作者charlee、原始链接http://tech.idv2.com/2006/11/23/javascript-strreplace-benchmark/
以及本声明。
感谢Clear为我们提供了这个效率更高的字符串替换函数
。这是经常使用的HTML特殊字符替换函数,即将 &、<、>、" 等函数替换成 &、<、>、&qu ......

JavaScript 用到alert出乱码问题

             response.write "<script language='javascript'>"
             response.write "alert('用户名或密码错误!');"
             response.write "hist ......

IE和FireFox的兼容的javascript回车事件

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="login.aspx.cs" Inherits="login" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="serve ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号