关于constjs作用域的信息

本文目录一览:

js为什么for in可以用const

const的特点是在块级作用域内不能重复声明,且不能给它重新赋值(重点是块级作用域)。for in的每一次循环都是一个块级作用域,所以可以使用for(const a in b)的形式去遍历对象的。但是在for循环内不可给c重新赋值。

let和const的引入会对js编程带来哪些改变

1. let 命令

① 在js中是没有块级作用域的,var 声明的变量作用域是整个函数体,而let可以起到这一作用

{ let a = 1; var b = 2; } console.log(b); // 2 console.log(a); // a is not defind

② 而let可以起到这一作用啊在js中变量和函数的声明会提升到当前作用域最顶部执行。这样就会出现问题。

var a = []; //函数和变量i会最先进行声明,同时全局变量i经过for循环赋值为10 for (var i = 0; i 10; i++) { a[i] = function () { console.log(i); }; } console.log(i);//10 a[6]();//10

而使用let就解决了这个问题

for (let i = 0; i 10; i++) { a[i] = function () { console.log(i); }; } a[6](); //6

③ let不像var那样,会发生“变量提升”现象

console.log(a); // a is not defined let a = 1;

④ let不允许在相同块级作用域内,重复声明同一个变量

// 报错 { let a = 10; var a = 1; } // 报错 { let a = 10; let a = 1; }

2. const 命令

① const也用来声明变量,但是声明的是常量。一旦声明,常量的值就不能改变。

② 与let相同也不能在相同块级作用域内重复声明同一个变量。

③ const的作用域与let命令相同:只在声明所在的块级作用域内有效。

const PI = 3.1415; console.log(PI); // 3.1415 //PI = 3; // Assignment to constant variable.(不能给常量赋值) //const PI = 3.1;// Identifier ‘PI’ has already been declared

js全局和局部的作用域

楼下说的不对吧!

首先:第一个,第一行定义了一个全局的var01,再在方法里定义了一个var01,首先搞清楚什么是var ,这是个变量声明关键字,他出现在哪和你全局不全局没有任何关系!

第一个之所以undefind是因为你将一个变量名定义两次,这个是不允许的,undefind在这里本质是声明错误,内存中不存在,即声明时发生错误,内存没有记录!不存在的东西js统一报错undefind!

第二个:输出1,是因为,js是脚本语言,在执行时按照顺序加载,当执行到write时,var01的值是1,此时还没执行到var01=0,这一步,所以先到先得,取出为1,然后在将var01赋值为0,但是此前js就已经输出了,所以0不会被输出!

关于全局和非全局,等你做久了你其实会发现,把全局叫做作用域会更好,他作用于谁,取决于你在何处声明(var关键字),比如你在页面的js第一行就写一个var var01,那这个var01就只作用于这个页面,那我是不是可以理解,所谓全局是整个程序,那我虽然定义了一个var,却不能延伸到整个程序,那我是不是就可以推翻这个var看起来像全局,但在我的语境中其实并非全局,他只是我这个页面的全局,对于我整个程序来说,这个页面又是个局部!所以用作用域来解释会更好!

如果确实需要区分的话,那你可以这样理解

根据js 的执行顺序是逐行执行的特点,那么在js中,首先出现的var就是全局(顺带一提,function某种程度上等同var,再此与var并论!)所以简单理解就是,方法体外的var都是这个js的全局,方法体内的都是这个方法体的全局(你没听错,是这个方法体的全局!!!!!),但是,方法体是js 的全局,方法体内的var是方法的全局,而var var01的作用域又限定为方法体,所以,方法体内的var相对于js来说只能是局部.

其实这还漏了一个知识点:叫做,方法私有属性,即:方法体内定义的任何属性和方法都只归其父方法所有!!!!!

理解:某个页面的js文件理解为一个大方法,这个方法里又有其他方法,而子方法里的属性因为只归其父,所以父方法的父方法无权调用,父父方法若要调用只有通知其子方法,让子方法通知其子属性并暴露给其父父方法!

但愿你听懂了,哈利路亚!自己都绕了

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/257274.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-15 12:44
下一篇 2024-12-15 12:44

相关推荐

  • Python中set函数的作用

    Python中set函数是一个有用的数据类型,可以被用于许多编程场景中。在这篇文章中,我们将学习Python中set函数的多个方面,从而深入了解这个函数在Python中的用途。 一…

    编程 2025-04-29
  • Python中init方法的作用及使用方法

    Python中的init方法是一个类的构造函数,在创建对象时被调用。在本篇文章中,我们将从多个方面详细讨论init方法的作用,使用方法以及注意点。 一、定义init方法 在Pyth…

    编程 2025-04-29
  • Java 监控接口返回信息报错信息怎么处理

    本文将从多个方面对 Java 监控接口返回信息报错信息的处理方法进行详细的阐述,其中包括如何捕获异常、如何使用日志输出错误信息、以及如何通过异常处理机制解决报错问题等等。以下是详细…

    编程 2025-04-29
  • 使用Python爬虫获取电影信息的实现方法

    本文将介绍如何使用Python编写爬虫程序,来获取和处理电影数据。需要了解基本的Python编程语言知识,并使用BeautifulSoup库和Requests库进行爬取。 一、准备…

    编程 2025-04-28
  • @scope("prototype")的作用及应用

    本文将从以下几个方面进行详细阐述@scope(“prototype”)在编程开发中的作用和应用。 一、代码复用 在开发中,往往会有很多地方需要复用同一个类的…

    编程 2025-04-28
  • Python中import sys的作用

    Python是一种非常强大的编程语言,它的标准库提供了许多有用的模块和函数。sys模块是Python标准库中的一个重要模块,用于与Python解释器和操作系统进行交互。它允许开发者…

    编程 2025-04-28
  • Python爬取网页信息

    本文将从多个方面对Python爬取网页信息做详细的阐述。 一、爬虫介绍 爬虫是一种自动化程序,可以模拟人对网页进行访问获取信息的行为。通过编写代码,我们可以指定要获取的信息,将其从…

    编程 2025-04-28
  • Python配置环境变量的作用

    Python配置环境变量是为了让计算机能够更方便地找到Python语言及其相关工具的位置,使其可以在任意目录下使用Python命令。当您安装Python后,您需要进行环境变量设置,…

    编程 2025-04-28
  • 如何使用Python执行Shell命令并获取执行过程信息

    本文将介绍如何使用Python执行Shell命令并获取执行过程信息。我们将从以下几个方面进行阐述: 一、执行Shell命令 Python内置的subprocess模块可以方便地执行…

    编程 2025-04-28
  • Python实现身份信息模拟生成与查验

    本文将从以下几个方面对Python实现身份信息模拟生成与查验进行详细阐述: 一、身份信息生成 身份信息生成是指通过代码生成符合身份信息规范的虚假数据。Python中,我们可以使用f…

    编程 2025-04-27

发表回复

登录后才能评论