`

JavaScript 学习笔记 五 函数作用域

 
阅读更多

 

//函数作用域
//JavaScript 的作用域为词法作用域,所谓词法作
//用域是说,其作用域为在定义时(词法分析时)就确定下来的,而并非在执行时确定
//作用域链是关于作用域的链,通常实现为一个链表,链表的每个项都是一个对象,在全局作用域中,该链
//中有且只有一个对象,即全局对象。对应的,在一个函数中,作用域链上会有两个对象,第
//一个(首先被访问到的)为调用对象,第二个为全局对象。

//JavaScript 中,函数也是一种对象,并非其他任何对象的一部分
//函数本身是独立的。可以通过Function 对象上的 call 或者 apply 函数来修改函数的上下
var str = "global";
function scopeTest(){
    alert(str);// 由于在局部作用域是能找到str的定义,而此处使用是在局部定义之前,所以打印的是  undefined
    var str = "local";
    alert(str);
    alert(window.str);// 利用全局对象,来引用全局变量
}
scopeTest();
function scopeTest2(){
    alert(str);//由于在局部作用域上未能找到定义,而此处是继续在链接上查询,最终找到的是全局变量
}
scopeTest2();
function adPrint2(str, handler){
print(handler(str));
}
//将字符串转换为大写形式,并返回
function up(str){
return str.toUpperCase();
}
//将字符串转换为小写形式,并返回
function low(str){
return str.toLowerCase();
}
adPrint2("Hello, world", up);
adPrint2("Hello, world", low);
//想要处理一些对象,但是又不确定以何种形式来处理,则完全可以将“处理方
//式”作为一个抽象的粒度来进行包装(即函数)。

 

 

分享到:
评论
1 楼 sblig 2012-04-16  
//作为函数的返回值
function currying(){
return function(){
print("curring");
}
}
//调用 currying 返回的这个匿名函数,需要这样
currying()();


相关推荐

    javascript学习笔记整理知识点整理

    这份“javascript学习笔记整理知识点整理”是针对初学者的一份宝贵资料,涵盖了JavaScript的基础知识,旨在帮助新手快速入门并掌握这门语言的核心概念。 一、变量与数据类型 在JavaScript中,变量用于存储数据。...

    JavaScript学习笔记

    本学习笔记旨在帮助初学者快速掌握JavaScript的核心概念和技术,实现从入门到精通的过渡。 1. **基础语法** - 变量声明:JavaScript支持var、let和const关键字声明变量,理解它们的作用域和提升特性至关重要。 - ...

    js 笔记 javascript 学习笔记

    本学习笔记将深入探讨JavaScript的核心概念,包括变量、数据类型、操作符、控制流程、函数、对象、数组、原型链、闭包等,并结合实际示例,如my.js、order.js、login.js等文件,来讲解其在实际项目中的应用。...

    javascript入门学习笔记

    这些只是JavaScript学习笔记的一部分,深入理解并熟练运用这些概念,将为JavaScript编程打下坚实的基础。随着学习的深入,还会接触到更多高级特性和框架,如闭包、原型链、AJAX、jQuery、Vue.js、React.js等,这些都...

    javascript学习笔记发放2

    在这篇学习笔记中,我们将深入探讨JavaScript中的数据操作和函数作用域。 首先,我们要明白JavaScript中的数据类型分为基本数据类型(如Number、String、Boolean、Null、Undefined和Symbol)和对象数据类型(如...

    Javascript学习笔记(传智播客视频学习笔记+代码)

    "Javascript学习笔记(传智播客视频学习笔记+代码)"是一份全面介绍JavaScript基础知识的学习资源,适用于初学者。这份笔记结合了传智播客的web前端培训视频内容,提供了丰富的理论讲解和实践代码,帮助读者从零开始...

    JavaScript-学习笔记.pdf

    以上是JavaScript学习笔记中提到的一些核心知识点,通过对这些知识点的理解和熟练应用,可以为进一步学习和掌握JavaScript打下坚实的基础。在实际开发过程中,结合具体的项目需求,这些知识会得到更深入的拓展和应用...

    Javascript学习笔记___自学实用

    JavaScript学习笔记——深入理解基础与函数 在JavaScript中,学习基础知识是至关重要的,因为它是所有进一步编程技巧的基础。首先,我们需要了解JavaScript中的数据类型。在JavaScript中,有五种简单的数据类型:...

    Javascript学习笔记之函数篇(六) : 作用域与命名空间

    例如,以下代码展示了JavaScript的函数作用域: ```javascript function test() { // a scope for(var i = 0; i ; i++) { // not a scope // count } console.log(i); // 10 } ``` 在这个例子中,尽管`for`...

    Javascript学习笔记

    ### JavaScript学习笔记知识点详解 #### 一、JavaScript基础篇:数据类型 JavaScript是一种弱类型语言,它具有自动类型转换的特点,使得开发过程中更加灵活但也容易出现类型错误。本节主要介绍JavaScript中的基本...

    javascript权威指南 学习笔记之变量作用域分享

    在《JavaScript权威指南》第五版中,对变量作用域进行了深入的介绍,通过对作者的学习笔记梳理,我们可以系统地了解变量作用域相关的知识点。 首先,我们需要明确变量作用域的两个基本类型:全局作用域和局部作用域...

    Javascript学习笔记之函数篇(六) : 作用域与命名空间

    - **函数作用域**:在JavaScript中,只有函数可以创建新的作用域。在函数内部定义的变量和函数仅在其所在函数内部可见,不能被外部访问。如示例所示,`test`函数内的`i`变量仅在函数内部有效,全局的`console.log(i...

    JavaScript学习笔记 概括了所有的javaScript语法 用法

    闭包是JavaScript中一个重要的概念,它允许函数访问并操作外部作用域的变量,常用于封装和数据隔离。异步编程在JavaScript中尤为重要,包括回调函数、Promise、async/await等,它们解决了JavaScript单线程环境下处理...

    Javascript学习笔记3 作用域

    函数作用域的创建是在函数调用时,每个函数都有自己的作用域链,这个链指向当前作用域(函数内部)以及它的父作用域(通常是全局作用域)。在函数内部,如果无法找到某个变量,JavaScript会沿着作用域链向上查找,...

    javaScript学习笔记.rar

    学习JavaScript,首先要掌握基础语法,包括变量、数据类型(如字符串、数字、布尔值、数组、对象等)、控制流(如条件语句、循环结构)、函数和作用域。了解闭包和原型链是深入理解JavaScript的关键,它们对于函数的...

    JavaScript-学习笔记.docx

    JavaScript是一种广泛应用...以上就是JavaScript学习笔记中的主要知识点,理解和掌握这些内容对于深入学习JavaScript至关重要。在实际编程中,还需要结合具体的场景灵活运用,并不断实践和探索更高级的特性和最佳实践。

    JavaScript 入门 新手学习笔记

    8. **闭包**:理解闭包的概念及其在内存管理、模块化和函数作用域中的应用,是进阶学习的重要部分。 9. **面向对象编程**:JS支持基于原型的面向对象,包括构造函数、原型链、继承等概念。 10. **JavaScript框架和...

Global site tag (gtag.js) - Google Analytics