资讯专栏INFORMATION COLUMN

【JavaScript】核心语法之作用域

huashiou / 2657人阅读

摘要:作用域一作用域是什么就是变量和函数所被访问范围,控制变量和函数的可见性和生命周期作用域分为全局作用域和局部作用域全局作用域是指在所有函数之外声明的变量,因为当前文档中的其他代码可以访问它局部作用域是指在函数内部声明的变量,因为该函数只能在它

JS(JavaScript)
作用域;
一.作用域是什么;
就是变量和函数所被访问范围,控制变量和函数的可见性和生命周期
作用域分为全局作用域和局部作用域
全局作用域;是指在所有函数之外声明的变量,因为当前文档中的其他代码可以访问它
局部作用域;是指在函数内部声明的变量,因为该函数只能在它内部访问
二.变量的作用域;
1.全局变量和局部变量;
全局变量;是指在所有函数之外声明的变量,因为当前文档中的其他代码可以访问它
局部变量;是指在函数内部声明的变量,因为该函数只能在它内部访问

/*
    全局作用域(函数作用域之外的范围) - 全局变量
    * 全局变量的作用域 - 全局作用域 + 函数作用域
 */
var v1 = 100;
console.log(v1);

function fun(){
    /*
        函数作用域 - 局部变量
        * 局部变量的作用域 - 当前函数作用域
     */
    var v2 = 200;

    console.log(v1);
    console.log(v2);
}

console.log(v1);

fun();
// 全局作用域不能访问局部变量
// console.log(v2);

function fn(){
    console.log(v2);
}
fn();

2.声明提前;
先调用变量而结果不会出错同时变量会返回(undefinen)值

console.log(v);// undefined
var v = 100;
console.log(v);// 100
// 当全局变量与局部变量同名时 - 在函数作用域中只能访问局部变量
function fn(){
    console.log(v);// undefined
    var v = 200;
    console.log(v);// 200
}
fn();

console.log(v);// 100

3.按值传递;
是值实参变量的值同样的值给函数的形参变量,表示相同的变量

var q = 100;/* 全局变量 */
function fn(q){
    // 参数与局部变量的用法类似 - 只能作用于当前函数的内部
    q++;
    return q;
}

var result = fn(q);

console.log(result);// 101
console.logq);// 100

三.函数的作用域;
全局函数和内部函数;
全局函数;被定义在任何位置都可以访问和调用函数
局部函数;将一个函数定义在另一个函数之内,只可在函数的内部访问,而不能访问全局作用域中访问

function fn(){
    console.log("this is fn");
    /* 函数作用域 - 内部/私有函数 */
    function n(){
        console.log("this is n");
    }
    n();
}
/* 全局作用域 */
fn();

// n();// n is not defined

function fun(){
    /* 另一个函数作用域 */
    fn();

    n();// n is not defined
}
fun();

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

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

相关文章

  • JavaScript 核心语法 [ 函数和作用 ]

    摘要:函数描述表示定义一段代码,并且可重复使用函数的定义函数声明方式字面量表达方式函数声明方式语法函数名称小括号不可省去函数体函数声明方式在定义函数时,函数体中的内容不会被执行哑吼吼调用函数使用函数名称调用函数的时候会执行函数体中的内容字面量方 函数 描述 表示定义一段JavaScript代码,并且可重复使用 函数的定义 函数声明方式 字面量表达方式 函数声明方式 语法 function...

    joy968 评论0 收藏0
  • JavaScript 闯关记

    摘要:对象数组初始化表达式,闯关记之上文档对象模型是针对和文档的一个。闯关记之数组数组是值的有序集合。数组是动态的,根闯关记之语法的语法大量借鉴了及其他类语言如和的语法。 《JavaScript 闯关记》之 DOM(下) Element 类型 除了 Document 类型之外,Element 类型就要算是 Web 编程中最常用的类型了。Element 类型用于表现 XML 或 HTML 元素...

    mj 评论0 收藏0
  • 这一次,我们换种姿势学习 javascript

    摘要:操作符或调用函数时传入参数的操作都会导致关联作用域的赋值操作。此外可以使用和来设置对象及其属性的不可变性级别。忽视这一点会导致许多问题。使用调用函数时会把新对象的属性关联到其他对象。 前言 《你不知道的 javascript》是一个前端学习必读的系列,让不求甚解的JavaScript开发者迎难而上,深入语言内部,弄清楚JavaScript每一个零部件的用途。本书介绍了该系列的两个主题:...

    zone 评论0 收藏0
  • 谈谈javascript语法里一些难点问题(一)

    摘要:引子前不久我建立的技术群里一位问了一个这样的问题,她贴出的代码如下所示执行结果如下所示第一个第二个这是一个令人诧异的结果,为什么第一个弹出框显示的是,而不是呢这种疑惑的原理我描述如下一个页面里直接定义在标签下的变量是全局变量即属于对象的变量 1) 引子 前不久我建立的技术群里一位MM问了一个这样的问题,她贴出的代码如下所示: var a = 1; function hehe...

    huaixiaoz 评论0 收藏0
  • JS核心作用

    摘要:作用域链在执行上下文创建的时候,在变量对象之后创建作用域链,作用域链本身就包含变量对象,当函数被调用的时候,作用域链包含的是激活对象。我们可以用这个属性来假定作用域链的连接,它指的是链中的下一个对象。 什么是作用域 作用域是运行代码中某些特定部分的变量,函数和对象的可访问性及生命周期 javascript中的作用域 在javascript中有两种类型的作用域1.全局作用域2.局部作用域...

    Alan 评论0 收藏0

发表评论

0条评论

huashiou

|高级讲师

TA的文章

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