JavaScript作用域的示例分析

技术JavaScript作用域的示例分析这篇文章给大家分享的是有关JavaScript作用域的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。作用域作用域(Scope)简单的说就是变量,

本文将与您分享关于JavaScript范围的示例分析内容。我觉得边肖很实用,就和大家分享一下作为参考。让我们跟着边肖看一看。

00-1010作用域只是变量、函数和对象定义后的可用作用域。

console.log(a)

{

vara=1;

}

function test(){ 0

varb=2;

}JavaScript作用域的示例分析

可以看出,变量B不能在外部使用。可以看出,该范围可以保护数据免受外部随机访问和修改。简单可见,作用域可以隔离彼此的变量,即不同作用域中同名的变量不会冲突。

最重要和最常用的范围是全局范围和函数范围。然而,在ES6之后,由于let和const关键字,它作为块级范围被引入。

00-1010全局作用域仅仅意味着所有的域都可以访问服务器域下的变量和方法对象。

Vara=“全局1”;

function test(){ 0

B='不带var,隐式转换为全局变量';

Window.c='直接以变量c为窗口也会变成全局';

Vard=“非全局范围”;

}

#第一步是执行测试()

Test()#这样,方法中的变量将被定义和赋值。

#第二步

console.log(a)

console.log(b)

console.log(c)

控制台日志(d)JavaScript作用域的示例分析

一般来说,window的属性是全局变量,而window.c的真实表达式将C作为window的一个属性。声明变量时注意不要带var。最好带var,这样就不会提升为全局变量,导致数据相互污染。

顺便说一下,测试方法也是全局域下的方法。

function test(){ 0

vara=function(){ 0

Console.log('文字方法')

}

b=函数(){ 0

Console.log('不带变量文字的方法')

}

function test1(){ 0

Console.log('通用声明方法')

}

}JavaScript作用域的示例分析

可以看到这种文字声明的方法,类似于将函数赋给变量并将其视为变量的方法。这也在预编译中得到了证明。

作用域

函数作用域与全局作用域相反,它不是用于所有的地方,而是用于一定的范围,一般声明的变量只在函数内部使用。

function test(){ 0

Vara=“非全局范围”;

console.log(a)

}现在

又有了一个问题,全局方法里面可以用函数作用域内部的变量。那么函数是内部是否可以有其下面的函数生成的函数作用域呢?以及其变量是否可以相互用?

function test(){
     var a="test方法作用域";
    function test1(){
         var b="test1方法作用域";
        console.log("a的值=",a);
    }
    # 调用函数内部函数
    test1();
     console.log("b的值=",b);
 }

JavaScript作用域的示例分析

这个地方可以看出作用域是分层的,内层作用域可以访问外层作用域的变量,外部访问不了内部的变量。

if,switch,for ,while

条件语句和逻辑循环,**它们不是函数同样也不像函数,也不会创建一个新的作用域。**其块定义的变量将保留在它们存在的作用域中。

function test(a){
    if(a>1){
        var b=13;
    }else{
       var b=1;  
    }
    console.log(b);
}

JavaScript作用域的示例分析

所以在使用条件语句和逻辑循环的时候,尽可能不要再全局作用域下使用。因为其方法体中的变量会影响其他的数据。

块作用域

块作用域的出现,一般需要依赖两个关键字let或const之一,不然就不会存在这个块作用域。

JavaScript作用域的示例分析

function test(a){
    const b="23";
    if (a>2){
        const c=3
        console.log("第一个人if---c-----",c)
    }
    if (a>1){
        console.log("第二个人if----b----",b)
        console.log("第二个人if----c----",c)
    }
     
}

JavaScript作用域的示例分析

可以看出如果有关键字let和const后,其变量的范围就是在其声明的那一对花括号内。所以第一个if中的c变量再第二个if的里面无法取得。当然还是遵守:内层作用域可以访问外层作用域的变量。

了解let和const看前一篇:地址

作用域链

这个看似很神奇的概念,简单的说就是作用域内有就直接用,没有找上一层,如果都没有,找到全局就结束。

var a=1
var b=3
function test(){
    var a=2
    console.log("a的值",a);
    console.log("b的值",b);
}

JavaScript作用域的示例分析

感谢各位的阅读!关于“JavaScript作用域的示例分析”这篇文章就分享到这里了,希望

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/91872.html

(0)

相关推荐

  • ASP.NET的J#和C++举例分析

    技术ASP.NET的J#和C++举例分析这篇文章主要介绍“ASP.NET的J#和C++举例分析”,在日常操作中,相信很多人在ASP.NET的J#和C++举例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法

    攻略 2021年11月29日
  • 使用ogg同步数据给kafka

    技术使用ogg同步数据给kafka 使用ogg同步数据给kafka使用ogg同步数据给kafka两榜进士2017-06-20 14:55:3123011收藏9分类专栏:大数据-Kafka大数据-Kafk

    礼包 2021年10月28日
  • 如何在Java代码中去掉烦人的“!=null”

    技术如何在Java代码中去掉烦人的“!=null”本篇文章给大家分享的是有关如何在Java代码中去掉烦人的“!=null”,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一

    攻略 2021年12月2日
  • python中定义类的方法有哪些

    技术python中定义类的方法有哪些本篇内容主要讲解“python中定义类的方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python中定义类的方法有哪些”吧!py

    攻略 2021年11月30日
  • C#内存泄露问题分析

    技术C#内存泄露问题分析这篇文章主要介绍“C#内存泄露问题分析”,在日常操作中,相信很多人在C#内存泄露问题分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#内存泄露问题分析”的疑惑有

    攻略 2021年11月29日
  • 常见Redis面试题有哪些

    技术常见Redis面试题有哪些本篇内容主要讲解“常见Redis面试题有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“常见Redis面试题有哪些”吧!1、Redis支持的数

    攻略 2021年11月12日