深度理解js中var let const 区别
2021-04-14 07:26
标签:赋值 相同 代码块 深度 打开 形参 区域 UNC ken 首先要理解js中作用域的概念 作用域:指的是一个变量的作用范围 1.全局作用域 直接写在script中的js代码,在js中,万物皆对象,都在全局作用域,全局作用域在页面打开时创建,在全局作用域中有一个全局对象window,它代表是一个浏览器的窗口 它由浏览器创建可以直接使用,在全局作用域中,创建的对象都可以都可以作为window对象的属性保存,在任何地方都可以调用 2.函数作用域 调用函数时创建函数作用域,函数执行完毕后,函数作用域销毁,每调用一次函数会创建一个新的函数作用域他们之间是相互独立的,函数中可以访问到全局作用域的变量,反之不行。当在函数作用域中操作对象,如果有,则使用,如果没有则向其上一个作用域(不是指的是全局作用域)找,直到找到全局作用域无论在那个作用域,都有变量声明提前现象,在函数中不用var声明的变量都会设置为全局变量,形参相当于在函数作用域里声明变量 var定义的变量可被更改,如果不初始化而直接使用也不会报错,var声明的变量会得到提升,其余两个不存在这种情况,即必须先声明再赋值 let定义的变量和var类似,但作用域在当前声明的范围内 const定义的变量只可初始化一次且作用域内不可被更改,使用前必须初始化 js和其他语言一样,都要经历编译和执行阶段。而js在编译阶段的时候,会搜集所有的变量声明并且提前声明变量,而不会改变其他语句的顺序,因此,在编译阶段的时候,第一步就已经执行了,而第二步则是在执行阶段执行到该语句的时候才执行 var即可用于函数外,亦可用于函数内,这就涉及到全局变量与局部变量的问题, 全局变量如何声明: 在函数外声明的变量就是全局变量,反之,在函数内声明的变量就是局部变量, 作用域:全局变量无论在函数内,还是函数外,都可访问到; 局部变量只能在函数内有效,函数外部访问不到该变量及说对应的变量值 let作用域:只在let命令所在的代码块内({})有效 const 2、const声明的变量不得改变值,这意味着,const一旦声明变量,就必须立即初始化,不能留到以后赋值。 3、const的作用域与let命令相同:只在声明所在的块级作用域内有效。 深度理解js中var let const 区别 标签:赋值 相同 代码块 深度 打开 形参 区域 UNC ken 原文地址:https://www.cnblogs.com/aixiling/p/12376624.html
1、const声明一个只读的常量。一旦声明,常量的值就不能改变。const PI = 3.1415;
PI=3;//VM33690:1 Uncaught TypeError: Assignment to constant variable.
const foo;//VM35236:1 Uncaught SyntaxError: Missing initializer in const declaration
1、var可以先使用,后声明;let必须先声明后使用。
上一篇:Aspen安装过程报错总结
下一篇:发ajax响应json格式数据
文章标题:深度理解js中var let const 区别
文章链接:http://soscw.com/index.php/essay/75561.html