美文网首页
基本概念1:let,const,var

基本概念1:let,const,var

作者: 娇娇_5038 | 来源:发表于2022-01-26 15:22 被阅读0次

1.var 关键字

1-1 在函数作用域或者全局作用域来用关键字var来声明变量,但是如论在哪里声明,都会被当成在当前作用域顶部声明的变量,这就是我们说的变量提升

1-2他真正在浏览器运行过程是

function getValue(condition){

var value;

if(condition){

value='blue';

return value;

}else{

return null;

}

}

2.let关键字  

主要知识点:

2-1 用于函数内部内,在字符{和}之前

2-2 不存在变量提升(因为不存在变量提升,变量设置在函数的顶部)

2-3 同一块级不能重复命名

2-4 存在于块级作用域中

为了解决关键字变量var 带来的变量提升问题,es6引进了let

块级作用域用于声明在指定块的作用域之外的无法访问的变量。块级作用域(亦成为词法作用域)存在于

函数内部内

块中(字符{和}之间的区域)

let的声明用法和var相同。用let代替var来声明变量,就可以把变量的作用域限制在当前代码块中,因为let声明不会被提升,因此开发者通常将let声明放在封闭代码块的顶部,以便整个代码块都可以访问

2-1-1 let关键字声明变量,不会升至函数顶部,执行流离开if语块,value立刻被销毁,

如果condition 为false,则永远不会声明并初始化value

eg:

2--1-2 禁止重声明

假设作用域已存在某个标识符,此时再使用let关键字声明他就会抛出错误

在这个事例中同一作用域,变量count被声明了两次,所以会报错

eg    

var count=0;

let  count=0;

//Identifier 'count' has already been declared (标识符已存在)

但如果在当前作用域嵌套另一个作用域便可在内嵌的作用域中用let声明同名变量,

因为此处let在if块内声明新变量count,因此不会抛出错误

示例代码如下

var count=0;

if(condition){

//不会抛出错误

let count=40;

}

3.const声明

主要知识点

1. 跟let一样适用于块级作用域内

2.同一块级作用域不能重复命名

3.常量必须初始化

4.常量一旦声明,不能让修改绑定,但是可以修改值

es6引进const关键字。使用const关键字声明常量,值一旦声明不可更改。因此通过

counst声明的常量必须进行初始化。

eg:

 const  maxItems=30;

 const name;//Missing initializer in const declaration 常量声明缺少初始化

3-1-1sconst和let声明的都是块级作用域标识符,所以常量只在当前代码块有效,一旦执行到块外会立即执行销毁。常量也不会被提升到作用域顶部

eg:

if(condition){

          const maxItems=5;

}

console.log(maxItems)//(此处不能访问maxItems)报错condition is not defined

3-1-2 与let相似不能重复声明

var message='Hello';

let age=25;

const message='Goodbye';//此处会报错'message' has already been declared

const age=20;//此处会报错 'age' has already been declared

3-1-3 const 声明不能修改绑定,但是可以修改值

const person = {

            name: 'zuojiaojiao'

 }

person.name = 'jiaojiao1'//可以修改值

console.log(person)

person = {

}//此处会报错 Assignment to constant variable.

function getValue(contiue) {

            if (contiue) {

                console.log(typeof value);//抛出错误值未被定义

                let value = 'blue';

            }

            console.log(typeof value)//undefined

        }

        getValue(true);

相关文章

  • es6

    1、let 和const(定义变量) (1)var 、let 、const的区别 a、作用域区别var 变量声明会...

  • 基本概念1:let,const,var

    1.var 关键字 1-1 在函数作用域或者全局作用域来用关键字var来声明变量,但是如论在哪里声明,都会被当成在...

  • ES 6 的声明方式

    let 和 const 声明变量的4种方式 a = 1 var a = 1 let a = 1 const a =...

  • ES6学习

    1、 var let const var是函数作用域let和const是块级作用域,!const是常量,不能改变。...

  • js 2022经典面试题汇总

    1.JS数据类型有哪些 2.var、let、const区别 var存在变量提升,而let、const没有 let、...

  • Vue var ---let---const

    1.在javascript中有三种声明变量的方式:var let const。 let var const的区...

  • 面试题总结

    1、var、let、const区别? 答: 1、var声明的变量为方法作用域,let、const是块级作用域即 {...

  • Android菜鸟学习js笔记 一

    一、var,const,let区别? var 变量,const 常量,let块级变量。

  • 我读ES6--变量声明

    1.关于var和let、const let、const与var一样,都是用来声明变量,但都有其特殊的用途。let ...

  • ES6基础

    变量声明var let 常量声明const const number = 1;let title = "详情页";...

网友评论

      本文标题:基本概念1:let,const,var

      本文链接:https://www.haomeiwen.com/subject/afjnhrtx.html