`
robinqu
  • 浏览: 90288 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JavaScript 函数Function 基础

阅读更多
函数是JS的引用数据类型

匿名函数
function() {
    //Code here
}


给一个函数名
function foo() {
   //code here
}

或者
var foo = function() {
   //Code here
}


执行一个匿名函数
(function() {
//code here
})();

When a function is invoked with fewer arguments than are declared, the additional arguments have the undefined value.

如果函数被调用时,所给的参数不够,缺少的参数将传递undefined

// Append the names of the enumerable properties of object o to the
// array a, and return a.  If a is omitted or null, create and return
// a new array
function copyPropertyNamesToArray(o, /* optional */ a) {
    if (!a) a = [];  // If undefined or null, use a blank array
    for(var property in o) a.push(property);
    return a;
}


以上这个函数,我们在调用的时候有很灵活的方式

// Get property names of objects o and p
var a = copyPropertyNamesToArray(o); // Get o's properties into a new array
copyPropertyNamesToArray(p,a);       // append p's properties to that array


若提供第二参数,则直接在第二个参数的数组中操作


之前那段判断是否为空的语句可以简化成:
a = a || [];
//it returns a if a is defined and non-null, even if a is empty. Otherwise, it returns a new, empty array.


aruguments对象
引用
Within the body of a function, the identifier arguments has special meaning. arguments is a special property that refers to an object known as the Arguments object.

The Arguments object allows full access to these argument values, even when some or all are unnamed.
Furthermore, like true arrays, arguments has a length property that specifies the number of elements it contains.

the Arguments object defines a callee property that refers to the function that is currently being executed.
This property is rarely useful, but it can be used to allow unnamed functions to invoke themselves recursively.


arguments对象包含函数调用时传递的所有参数;
aruguments对象像数组一样,包含length属性
aruguments的callee属性持有对当前函数的引用

function(x) {
    if (x <= 1) return 1;
    return x * arguments.callee(x-1);
}


Function Properties and Methods
函数的属性和方法

The length Property
引用
The length property of the Function object specifies exactly how many declared parameters a function has. Note that unlike arguments.length, this length property is available both inside and outside of the function body.


length属性可以告诉你这个函数定了多少参数,与arguments.length不同,它在函数内外都有用

The apply() and call() Methods
引用
These methods allow you to invoke a function as if it were a method of some other object.


f.call(o, 1, 2);

和一下代码等效:
o.m = f;
o.m(1,2);
delete o.m;


apply()和call()类似,只是apply()第二个参数是传递给函数的参数数组

Javascript 1.2实现apply()了,但直到Javascript 1.5才实现call()

JSGD里面给出了一些对象的工具函数

// Return an array that holds the names of the enumerable properties of o
//返回包含对象中所有属性名的数组
function getPropertyNames(/* object */o) {
    var r = [];
    for(name in o) r.push(name);
    return r;
}

// Copy the enumerable properties of the object from to the object to.
// If to is null, a new object is created.  The function returns to or the
// newly created object.
// 将一个对象的属性复制到另一个对象中
function copyProperties(/* object */ from, /* optional object */ to) {
    if (!to) to = {};
    for(p in from) to[p] = from[p];
    return to;
}

// Copy the enumerable properties of the object from to the object to,
// but only the ones that are not already defined by to.
// This is useful, for example, when from contains default values that
// we want to use if they are not already defined in to.
// 求两个对象的并集,且赋给to对象
function copyUndefinedProperties(/* object */ from, /* object */ to) {
    for(p in from) {
        if (!p in to) to[p] = from[p];
    }
}

分享到:
评论
2 楼 robinqu 2009-09-01  
menzi_love 写道
function foo() {  
   //code here  
}

var foo = function() {  
   //Code here  
}

两都之间有什么区别?


最大区别是在代码域的作用范围不同;
自行验证这段代码:

a();
		b();
		
		function a() {
			alert("a");
		}
		
		var b = function() {
			alert("b");
		}
		
		b();
1 楼 menzi_love 2009-08-25  
function foo() {  
   //code here  
}

var foo = function() {  
   //Code here  
}

两都之间有什么区别?

相关推荐

    javascript函数速查手册

    JavaScript函数是编程语言的核心组成部分,尤其在Web开发中起着至关重要的作用。这份"JavaScript函数速查手册"涵盖了JavaScript函数的各个方面,旨在帮助开发者快速查找和理解各种函数的用法和特性。 一、函数基础 ...

    javascript指南和函数式编程

    而《JavaScript函数式.zip》可能是一份关于JavaScript函数式编程的资料集合,函数式编程是一种编程范式,强调使用函数和避免改变状态。其中可能涵盖以下知识点: 1. **纯函数**:理解纯函数的定义,即给定相同的...

    javascript函数速查

    JavaScript函数是编程语言的核心组成部分,它是一段可重复使用的代码块,可以接受参数并返回值。在JavaScript中,函数不仅可以作为表达式,还能作为变量赋值、作为参数传递以及作为返回值。本速查指南将深入探讨...

    javascript函数式编程

    JavaScript函数式编程是一种编程范式,它强调将计算视为数据处理,通过函数操作来避免改变状态和可变数据。在JavaScript中,函数式编程能够帮助我们编写更简洁、可读性更强、易于测试和维护的代码。下面我们将深入...

    javascript 函数教程(由浅入深)

    JavaScript 函数是编程语言的核心部分,它是一种组织代码的方式,使得代码...了解并熟练掌握JavaScript函数的使用,是成为一名合格的前端开发人员的基础。通过实例练习,可以更好地理解和应用这些概念,提升编程能力。

    JS function函数 基础案例

    以上就是JavaScript函数的基础知识,包括定义、调用、返回值、匿名函数、箭头函数、作为值的函数、作用域、闭包以及默认参数。通过这些基础知识,你可以构建复杂的程序逻辑,并实现代码的复用。在实际编程中,深入...

    几个常用javascript函数

    本篇文章将深入探讨几个常用的JavaScript函数,这些函数在实际开发中非常常见且实用。 1. `console.log()` 这是开发者调试代码时最常用的函数之一。它用于在浏览器的控制台输出信息,帮助开发者查看程序执行过程中...

    QT和网页中的JavaScript函数进行相互调用的实现

    - 这里的回调函数用于处理JavaScript函数的异步返回结果,如果需要同步获取结果,可以使用`QWebEngineScript`来注册一个全局JavaScript对象,然后通过该对象调用JavaScript函数。 2. **JavaScript调用QT函数**: ...

    【JavaScript源代码】JavaScript的function函数详细介绍.docx

    首先,JavaScript函数的声明方式非常直观,例如: ```javascript function fun(x, y) { // 函数体 } ``` 这里的`fun`是函数名,`x`和`y`是参数,它们不需要像C语言那样指定数据类型。在函数内部,可以访问并操作...

    javascript 函数式编程

    JavaScript 函数式编程是一种编程范式,它将函数视为第一类公民,允许它们作为其他函数的参数、返回结果,甚至可以存储在变量中。在JavaScript中,函数式编程提供了更高级别的抽象,使得代码更简洁、可读性更强,...

    javascript函数大全

    以下是一些关于JavaScript函数的关键知识点: 1. **定义函数**:函数通过`function`关键字定义,后面跟着函数名和一组参数列表,参数之间用逗号分隔,然后是花括号内的函数体。例如: ```javascript function ...

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

    在JavaScript编程中,有时会遇到需要根据函数名的字符串形式来动态执行对应函数的场景。这类技术能够提供一种灵活的方式来执行代码,尤其在进行插件化开发、事件驱动编程或实现钩子函数时非常有用。为了实现这一功能...

    javascript强制函数自动执行.pdf

    ### JavaScript中的函数声明与函数表达式 在JavaScript中,函数是一种非常重要的编程构造,它可以被定义为函数声明或函数表达式。这两种定义方式各有特点,并且在不同的上下文中有着不同的行为。 #### 函数声明...

    JavaScript函数的调用以及参数传递

    JavaScript 函数调用 JavaScript 函数有 4 种调用方式。 每种方式的不同方式在于 this 的初始化。 this 关键字 一般而言,在Javascript中,this指向函数执行时的当前对象。 Note 注意 this 是保留关键字,你不能...

    Javascript函数帮助手册

    一、JavaScript函数基础 1. 函数定义:在JavaScript中,函数是一种可重复使用的代码块,可以通过调用函数名来执行。函数通过`function`关键字定义,例如: ```javascript function greet(name) { console.log('...

    javascript函数详解!

    JavaScript函数详解 JavaScript是一种强大的、基于原型的、动态类型的脚本语言,广泛应用于网页和网络应用开发。在JavaScript中,函数扮演着核心角色,它们不仅可以作为可执行的代码块,还可以作为值进行传递和存储...

    javascript函数自制手册

    JavaScript函数是编程语言的核心组成部分,尤其在Web开发中起着至关重要的作用。这份"JavaScript函数自制手册"将深入探讨这个主题,帮助你更好地理解和掌握JavaScript中的函数。 首先,JavaScript函数是一种可重复...

    JavaScript函数-深入解析与使用指南(很详细)

    ### JavaScript函数-深入解析与使用指南 #### 一、JavaScript函数的基本...通过以上内容的学习,您不仅可以更好地理解JavaScript函数的基础知识,还能掌握一些更高级的概念和技术,这对于提高编程技能是非常有帮助的。

Global site tag (gtag.js) - Google Analytics