Function是javascript里最常用的一个概念,javascript里的function是最容易入手的一个功能,但它也是javascript最难理解最难掌握的一个概念。
一、我的第一个javascript代码
1 function test()
2 {
3 alert('Hello World!');
4 }
5 window.onload = test();//Hello World!
界面加载时候就会弹出写有“Hello World!”的对话框。我对function的第一印象就和java里面方法没啥区别了。但是当我看到这样的代码我就晕乎乎了。
1 function test(num)
2 {
3 returnfunction()
4 {
5 if (num >0)
6 {
7 return'正数';
8 }elseif (num <0)
9 {
10 return'负数';
11 }else{
12 return'零';
13 }
14 }
15 }
16 window.onload = alert(test(11)());//零
二、javascript里面定义函数的方法
1. 函数声明
1 function sum(a,b)
2 {
3 return a+b;
4 }
5
6 alert(sum(10,20));//30
2. 函数表达式
1 var sum =function(a,b)
2 {
3 return a+b;
4 };
5
6 alert(sum(10,20));//30
3. 使用Function构造函数
1 var sum =new Function("a","b","return a+b");
2 alert(sum(10,20));//30
以上三种都可以定义一个函数目的。大多数javascript书籍里面不推荐使用第三种,原因第三种存在严重的性能问题,这种定义会解析两次代码,第一次是常规的解析这条语句,第二次要把函数里的字符串解析成实际的函数,但是它却传达了javascript的函数其实是对象(object),而函数名是指向对象的指针。
因此我觉得理解函数function的关键把它当作对象object。Javascript对象存储的方式:
Javascript数据是存在栈内存(stack)和堆内存(heap),堆内存存储javascript对象的具体内容,而栈内存存储对象的地址,下面的代码:
1 var ftn =function(){alert(‘hi’)};
ftn存储在栈内存,function(){alert(‘hi’)};存储在堆内存里面,ftn的记录的是function(){alert(‘hi’)};在堆内存的地址。因此下面的代码:
1 alert(ftn);// var ftn = function(){alert(‘hi’)};
弹出框显示的是function的全部定义。如果代码如下:
ftn()//hi
结果就是hi了。(一般执行函数,可以在函数名后面加上括号,传入需要传入的参数)。
三、javascript里面没有函数重载
1 function sum(num)
2 {
3 return num+10;
4 }
5 function sum(num)
6 {
7 return num+30;
8 }
9 alert(sum(10));//40
后面定义的方法会覆盖前面的方法,如果我们理解了“javascript的函数其实是对象(object),而函数名是指向对象的指针”,这个就很好理解了,上面的写法可以改写为:
1 var sum =function(num)
2 {
3 return num+10;
4 }
5 sum =function(num)
6 {
7 return num+30;
8 }
9 alert(sum(10));//40
四、函数声明和函数表达式的区别
两个的定义见本文的条目二。对于这两种方式的区别我在上一篇文章里做过测试,我觉得我的猜测还是很有道理,不过这里我还是要提供一些权威的说法:
1. 函数声明(function ftn(){}):代码执行之前,解析器就已经读取函数声明并将其添加到执行环境中,因此如下代码运行正常:
1 sayHello();
2 function sayHello()
3 {
4 alert('Hello');
5 }
2.(代码如下)函数表达式(var ftn = function(){}):这个会产生运行错误,原因在于函数位于一个初始化语句中,而不是一个函数声明,换句话说,在执行到函数所在语句之前,变量sayHello不会保存对函数引用。
1 sayHello();
2 var sayHello =function ()
3 {
4 alert('Hello');
5 }
五、函数可以当做值使用
函数名是变量,所以函数可以当作值来用,因此我开头写的那个代码就可以理解了,那是把函数作为返回值。用过jQuery的人都会知道:$(document).ready(function(){}),这就是典型的把函数当作参数使用了。
相关推荐
根据提供的文件信息,我们可以归纳出以下几个JavaScript相关的知识点: ### JavaScript基础用法 #### 内联JavaScript 内联JavaScript指的是在HTML元素中直接嵌入JavaScript代码的方式。这种方式常见于`<a>`、`...
### JavaScript基础教程笔记知识点 #### 一、JavaScript简介 - **定义**:JavaScript是一种轻量级的编程语言,主要用于Web浏览器中的网页交互控制。 - **发展历史**:1995年由Netscape公司的Brendan Eich设计并...
这份笔记是对JavaScript基础知识的总结,内容丰富且覆盖了JavaScript编程的多个核心方面,适合初学者作为入门参考或对有经验的开发者作为复习材料。在实际使用JavaScript开发中,理解和掌握这些知识点是非常重要的,...
JavaScript关键字包括 `break`、`case`、`catch`、`continue`、`default`、`delete`、`do`、`else`、`finally`、`for`、`function`、`get`、`if`、`in`、`instanceof`、`new`、`return`、`switch`、`this`、`throw`...
根据提供的文件信息,我们可以整理出一系列关于JavaScript的基础知识点,这些知识点特别适合初学者入门学习。 ### JavaScript基础概念 **JavaScript**是一种广泛使用的编程语言,它主要用于网页开发,为静态的HTML...
JavaScript 学习笔记 JavaScript 是互联网上流行的脚本语言,可以用于 HTML 和 web,广泛应用于服务器、PC、笔记本、平板电脑和智能手机等设备。JavaScript 是一种轻量级的编程语言,可以插入 HTML 页面的编程代码...
### JavaScript基础概述与核心知识点详解 #### 一、JavaScript是什么? JavaScript是一种被广泛使用的脚本语言,主要用于网页的客户端交互,提升用户体验。它能够实现动态验证、动态效果、页面元素操作以及异步...
这份学习笔记将详细解释以上各个知识点,并可能包括实例和练习,帮助初学者逐步掌握JavaScript的基础,为进一步深入学习和实际开发打下坚实基础。如果需要更深入的学习资源,如视频教程,作者表示可以提供帮助。
### JavaScript总结笔记 #### JavaScript简介 JavaScript是一种广泛使用的、基于对象和事件驱动的脚本语言。它最初由网景公司(Netscape)的布兰登·艾奇于1995年创建,并逐渐成为现代Web开发的核心技术之一。...
### JavaScript 学习笔记知识点概览 #### 一、JavaScript 的基本概念与运行方式 - **JavaScript** 是一种脚本语言,主要用于网页的交互性设计,由 Netscape 公司开发。 - **Java Applet** 是由 Sun Microsystems ...
JavaScript的笔记涵盖了从基础语法到高级特性的方方面面,旨在帮助学习者深入理解并熟练运用这门语言。 一、基础语法 JavaScript的基础语法包括变量声明(var、let、const)、数据类型(Number、String、Boolean、...
通过深入理解这些关键词、语法、值、变量、运算符、表达式、注释和标识符,开发者将能够编写出更有效、更健壮的代码,为应用程序提供强大功能。在实际项目中,不断实践和学习新的JavaScript特性,如ES6及更高版本的...
通过深入理解和实践这些基础语法,开发者能够构建出功能丰富的网页和应用程序。JavaScript的灵活性和强大功能使其成为现代Web开发不可或缺的一部分。结合实际的代码截图进行学习,将有助于更好地理解和记忆这些概念...
本学习笔记将深入探讨JavaScript的核心概念,包括变量、数据类型、操作符、控制流程、函数、对象、数组、原型链、闭包等,并结合实际示例,如my.js、order.js、login.js等文件,来讲解其在实际项目中的应用。...
这篇学习笔记主要涵盖了JavaScript的基础语法和客户端JavaScript的相关知识。 1. **JavaScript基本语法**: - **变量声明**:未声明的变量尝试读取时会产生错误,而写入未声明的变量会创建一个全局变量。 - **...
JavaScript学习笔记——深入理解基础与函数 在JavaScript中,学习基础知识是至关重要的,因为它是所有进一步编程技巧的基础。首先,我们需要了解JavaScript中的数据类型。在JavaScript中,有五种简单的数据类型:...
从给定的文件信息中,我们可以总结出一系列与JavaScript相关的知识点,这些知识点涵盖了从基本的日期时间操作、浏览器属性获取到网页导航控制、窗口管理和事件处理等多个方面。下面将对这些知识点进行详细的阐述: ...
《JavaScript高级程序...通过对这些概念的深入理解和实践,开发者可以编写出更加高效、可维护的代码。"listutil.js"文件可能展示了如何使用JavaScript实现实用的工具函数,这也是提升代码复用性和效率的一个关键实践。