您的位置:

关于constjs作用域的信息

关于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文件理解为一个大方法,这个方法里又有其他方法,而子方法里的属性因为只归其父,所以父方法的父方法无权调用,父父方法若要调用只有通知其子方法,让子方法通知其子属性并暴露给其父父方法!

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

关于constjs作用域的信息

本文目录一览: 1、js为什么for in可以用const 2、let和const的引入会对js编程带来哪些改变 3、js全局和局部的作用域 js为什么for in可以用const const的特点是

2023-12-08
关于java学习笔记良葛格的信息

2022-11-11
关于已前的学习笔记java的信息

2022-11-18
关于java对话框的信息

2023-01-04
关于java性能的小笔记(java代码性能分析)

2022-11-12
关于php跨域shang传文件的信息

2022-11-10
关于java基础知识笔记1的信息

2022-11-20
关于python学习笔记十三的信息

2022-11-19
关于python学习第四次笔记的信息

2022-11-08
关于jfcio的信息

2022-11-28
关于java域的信息

2023-01-10
关于js定时查询数据库数据库数据的信息

2022-11-24
关于java杂记领域博主的信息

2022-11-12
印象笔记记录java学习(Java成长笔记)

2022-11-12
htmljs编程笔记(html代码笔记)

本文目录一览: 1、html代码和JS代码有什么区别 2、如何在html中调用js函数 3、JavaScript学习笔记之数组基本操作示例 4、HTML5初学者笔记 5、《web前端笔记7》js字符—

2023-12-08
Mac笔记:在日常生活中高效实用的笔记工具

2023-05-18
关于javajsptomcatmysql的信息

本文目录一览: 1、如何在服务器上配置JSP,jsp的服务器到底怎么配置啊? 2、jsp 跟tomcat和mysql有什么联系,怎么用?越详细越好!谢谢 3、怎么用jsp连接mysql数据库 4、如何

2023-12-08
发篇java复习笔记(java课程笔记)

2022-11-09
java学习笔记(java初学笔记)

2022-11-14
java第九天笔记,java第九章

2022-11-20