资讯专栏INFORMATION COLUMN

JavaScript学习第五天笔记(作用域)

Sleepy / 920人阅读

摘要:函数的作用域也可被分为全局作用域和局部作用域函数作用域被定义在指定函数内部的函数被称为局部函数或内部函数。局部变量在函数内部声明的变量被成为局部变量,它只能在函数的内部进行访问。

作用域 概述

变量和函数都具有作用域 作用域就是变量和函数的可被访问的范围 控制着变量和函数的可见性和生命周期。
变量的作用域可被分为全局作用域和局部作用域(函数作用域) 如果变量是被定义在全局作用域的话 在JavaScript代码中的任何位置都可以访问该变量 如果变量被定义在指定函数内部 在JavaScript代码中只能在该函数内部访问该变量。
函数的作用域也可被分为全局作用域和局部作用域(函数作用域) 被定义在指定函数内部的函数被称为局部函数或内部函数。

全局变量

在所有函数之外声明的变量,叫做全局变量,因为他可被当前文档中的其他代码所访问。

局部变量

在函数内部声明的变量被成为局部变量,它只能在函数的内部进行访问。

声明提前

JavaScript变量的另一个特别之处是,可以小猴声明的变量,而不会引发异常,这一概念被称为生命提前。
示例代码

console.log(num);// undefined
var num = 100;/* 定义全局变量 */
/* 定义函数 */
function fun(){
    // 全局变量与局部变量同名时 - 在当前函数作用域中只能访问局部变量
    console.log(num);// undefined

    var num = 200;/* 定义局部变量 */
    // 就近原则
    console.log(num);// 200
}
/* 调用函数 */
fun();
// 局部变量在全局作用域中无法访问 - 只能访问全局变量
console.log(num);// 100
按置传递

按置传递就是指将实参变量的值复制一份副本给函数的形参变量。JavaScript中为函数传递参数时,都是按值传递的。如果向函数传递的参数时原始类型数据,则在函数中修稿参数变量的值,不会影响外部实参的变量。
示例代码

var num = 100;/* 定义一个全局变量 */
function fun(num){
    num++;
    console.log("函数内部的值: " + num);// 101
}
fun(num);/* 实参 */
/* 调用指定全局变量 */
console.log("全局作用域的值: " + num);// 100 101


var v = 200;
function fn(){
    v++;
}
fn();
console.log(v);// 201

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/96884.html

相关文章

  • 26天学通前端开发(配资料)

    摘要:网上有很多前端的学习路径文章,大多是知识点罗列为主或是资料的汇总,数据量让新人望而却步。天了解一个前端框架。也可以关注微信公众号晓舟报告,发送获取资料,就能收到下载密码,网盘地址在最下方,获取教程和案例的资料。 前言 好的学习方法可以事半功倍,好的学习路径可以指明前进方向。这篇文章不仅要写学习路径,还要写学习方法,还要发资料,干货满满,准备接招。 网上有很多前端的学习路径文章,大多是知...

    blair 评论0 收藏0
  • JavaScript学习笔记五天_错误处理与

    摘要:廖雪峰老师的教程学习笔记错误处理提供了像一样的错误处理机制,即例如其中不是必须的,也不是必须的,但二者必须有其一,其中是必定会被执行的。其中其中函数将在超时后执行。 廖雪峰老师的javascript教程学习笔记 1. 错误处理 JavaScript 提供了像Java一样的错误处理机制,即try catch finally.例如: try{ var s = null; s...

    levy9527 评论0 收藏0
  • JavaScript学习五天笔记(函数)

    摘要:实参函数调用时实际传入的参数是函数的实际参数,简称实参。简单来说,就是调用函数时使用的参数就是实参。函数用于执行以字符串形式出现的代码。创建的一个的源代码的字符串表示。对已编码的统一资源标识符进行解码,并返回其非编码形式。 函数 概述 函数是这样一段JavaScript代码,它只定义一次,但是可能被执行或调用多次。简单来说,函数就是一组可重复使用的代码。 定义函数 定义函数有两种方式...

    Code4App 评论0 收藏0
  • JS学习笔记7章)(函数表达式)

    摘要:递归闭包模仿块级作用域私有变量小结在编程中,使用函数表达式可以无需对函数命名,从而实现动态编程。匿名函数也称为拉姆达函数。函数声明要求有名字,但函数表达式不需要。中的函数表达式和闭包都是极其有用的特性,利用它们可以实现很多功能。 1、递归 2、闭包 3、模仿块级作用域 4、私有变量 5、小结 在JavaScript编程中,使用函数表达式可以无需对函数命名,从而实现动态编程。匿名函数也称...

    xiaokai 评论0 收藏0
  • 读书笔记:编写高质量javascript的68个方法

    摘要:第条尽量少使用全局对象避免声明全局变量尽量声明局部变量避免对全局变量增加属性第条始终声明局部变量第条避免使用语句第条熟练使用闭包的函数值包含了比调用他们时执行所需要的代码还要更多的信息。那些在其所涵盖的作用域内跟踪变量的函数称为闭包。 书还没看完。一遍看,一遍写读书笔记。 这本书的序是JavaScript之父Brendan Eich写的,作者是JavaScript标准化委员会专家。可想...

    Vicky 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<