1.函数定义在解析时发生,而不是在运行时发生
alert(f(4)); // Displays 16. f( ) can be called before it is defined.
var f = 0; // This statement overwrites the property f.
function f(x) { // This "statement" defines the function f before either
return x*x; // of the lines above are executed.
}
alert(f); // Displays 0. f( ) has been overwritten by the variable f.
上面这个例子也说明了,只要在同一个作用域定义了的函数或者变量,在同一个作用域里任何位置都是可以调用的
2.调用对象:
调用对象将作为函数的一个属性
3.调用函数的特殊属性:
arguments
function f(x) {
print(x); // Displays the initial value of the argument
arguments[0] = null; // Changing the array element also changes x!
print(x); // Now displays "null"
}
arguments的属性callee:用来引用当前正在执行的函数
计算阶乘的函数:
function(x) {
if (x <= 1) return 1;
return x * arguments.callee(x-1);
}
4.Function 的属性:
length:(同arguments.callee.length)
下面一个函数实现了校验函数的实际参数个数是否满足需要:
function check(args) {
var actual = args.length; // The actual number of arguments
var expected = args.callee.length; // The expected number of arguments
if (actual != expected) { // Throw an exception if they don't match
throw new Error("Wrong number of arguments: expected: " +
expected + "; actually passed " + actual);
}
}
function f(x, y, z) {
// Check that the actual # of args matches the expected # of args
// Throw an exception if they don't match
check(arguments);
// Now do the rest of the function normally
return x + y + z;
}
等同于(在某一个特定函数,知道形参的情况下):
function f(x, y, z)
{
// First, verify that the right number of arguments was passed
if (arguments.length != 3) {
throw new Error("function f called with " + arguments.length +
"arguments, but it expects 3 arguments.");
}
// Now do the actual function...
}
5.函数“静态”属性
不用全局变量得到一个递增的数
// Create and initialize the "static" variable.
// Function declarations are processed before code is executed, so
// we really can do this assignment before the function declaration.
uniqueInteger.counter = 0;
// Here's the function. It returns a different value each time
// it is called and uses a "static" property of itself to keep track
// of the last value it returned.
function uniqueInteger() {
// Increment and return our "static" variable
return uniqueInteger.counter++;
}
6.方法apply()和call()
call和apply函数的第一个参数都是要调用的对象
f.call(o, 1, 2);
等同于
o.m = f;
o.m(1,2);
delete o.m;
apply和call相似,区别是参数变成数组的形式了
f.apply(o, [1,2]);
JavsScript1.2实现了apply,JavaScript1.5才实现 call
分享到:
相关推荐
这份"JavaScript学习指南"高清PDF,无疑为想要深入理解JavaScript的初学者或有一定基础的开发者提供了宝贵的资源。下面,我们将深入探讨JavaScript的一些关键知识点。 1. **基础语法**:JavaScript的基础包括变量、...
#### JavaScript 运行三部曲 1. **语法分析**:检查语法错误,但不执行代码。 2. **预编译**: - 在此阶段,JavaScript引擎会创建变量和函数的作用域链,并进行变量提升。 3. **执行**:根据预编译的结果执行代码...
JavaScript学习指南第三版,学习JavaScript的同学欢迎来下载
本书“JavaScript学习指南”旨在帮助初学者和有经验的开发者深入理解和掌握JavaScript的核心概念和技术。 首先,JavaScript在网页中的主要作用是处理用户交互、操作DOM(文档对象模型)、进行AJAX(异步JavaScript...
JavaScript学习指南(第3版)》系统地介绍了JavaScript的基本语法、基本对象、调试工具与排错技术、事件处理机制、浏览器对象模型/文档对象模型(BOM/DOM)等方面的知识,并通过一个复杂的示例深入探讨了Ajax应用。...
本“JavaScript学习指南”源代码包含了深入理解并掌握JavaScript编程的关键知识点。 一、基础语法 JavaScript的基础语法包括变量声明(var、let、const)、数据类型(如字符串、数字、布尔值、null、undefined、...
本压缩包文件名为“JavaScript实例自学手册”,意味着它包含了一套详细的教学材料,帮助学习者通过实例来掌握JavaScript的基础知识。JavaScript的学习通常分为几个阶段,从基本语法到高级特性,逐步深入。 首先,...
JavaScript学习是一个持续的过程,随着技术的发展,新的API和最佳实践不断涌现。因此,保持学习和关注最新的前端趋势至关重要。同时,实践是检验知识的最好方式,多做项目、参与开源社区,可以提升你的技能并积累...
JavaScript学习指南
三、模板字符串 ES6引入了模板字符串(Template literals),用反引号(``)定义,支持内联表达式和多行书写: ```javascript var name = 'John'; var message = `你好,${name}!`; ``` 四、字符串遍历 JavaScript提供...
综上所述,"JavaScript学习指南"涵盖了从基础语法到高级特性的全面内容,无论你是初学者还是有经验的开发者,都能从中获益匪浅。通过阅读《JavaScript学习指南》这本书,你可以系统地学习和掌握JavaScript的各个方面...
14.2.6 三维相册 433 14.3 时间特效 442 14.3.1 时钟提示自动关闭 442 14.3.2 日历生成器 444 14.4 窗口特效 450 14.4.1 窗口拖动 451 14.4.2 图层受标签控制显示 457 14.5 鼠标特效 460 14.5.1 鼠标方向提示 460 ...
《PHP、MySQL与JavaScript学习手册 第4版》是一本针对初学者和进阶者全面讲解这三种技术的权威指南。本书旨在帮助读者掌握Web开发的核心技能,通过理论结合实践,深入理解PHP、MySQL和JavaScript之间的协作关系,...
以上是JavaScript学习笔记中提到的一些核心知识点,通过对这些知识点的理解和熟练应用,可以为进一步学习和掌握JavaScript打下坚实的基础。在实际开发过程中,结合具体的项目需求,这些知识会得到更深入的拓展和应用...
这篇教程——"JavaScript学习手册十四:HTML DOM-文档元素的操作(二)"深入探讨了如何使用JavaScript来操纵HTML文档中的元素,进一步提升网页动态性和交互性。 DOM是HTML和XML文档的一种结构化表示,它将网页内容...
学习HTML、CSS、JavaScript是成为一名前端开发工程师的基本功。HTML负责构建网页的骨架,CSS负责装饰这个骨架,使其美观,而JavaScript则赋予网页生命,使其具有交互性。这三者相辅相成,共同创造出丰富多彩的互联网...
目录: 第一章 javascript语言概述 第二章 JavaScript语言基础 第三章 JavaScript事件处理 第四章 JavaScript基于对象编程 第六章 string,math,array等数据对象 第七章 window及相关顶级对象 第八章 document对象