js关于变量声明 var let const 区别

关于定义(声明)变量

ES6之前定义变量是用 var ,那么var有什么问题吗,如果但但从变量上来说是没有问题的,var是variable的缩写,英文翻译是变量。

var问题:

1.污染全局

之前定义循环的方式:

        for(var i=0; i<10; i++){
            //dosmthing
        }

        alert(i);

有一天突然运营文件,这个时候弹出的是 10 ,这个时候发现有问题。因为定义的i是一个全局变量,也就是说在之前的版本会有作用域问题,一个是全局作用域,一个是函数(局部)作用域;

2.预解析问题(变量提示)

           

​
       var a = 'hello'; 
        function fn(){
            alert(a);
            var a='world';

        }
        fn();

​

 其实上面的这段代码就等于是下面的这段代码,所以执行函数fn()的时候会报错,undefiend.

       var a = 'hello'; 
        function fn(){
            var a;
            alert(a);
            //var a='world';
            a='world'; 
        }
        fn();

       

在es6中首先引出一个概念就是块级作用域,在es6中有2中新的定义变量,一种是let,一种是const;

let就跟之前var的用法一样,const是定义常量的;

let相比var的好处:

1.具备块级作用域:

见到let就是块级作用域,在什么地方定义就只能在什么地方使用;

2.没有预解析

3.同一个作用域不能重复定义,只能重新赋值

4.for循环,for循环里面是类似父级作用域,花括号里面又是一个作用域,比如

for(let a = 0; a<3; a++){
           let a = 'abc';
           console.log(a);
       }

 

 

const定义的变量是常量,不能修改,常用在以下地方:就是不让别人动你的代码的时候,还常常用在定义host,账号,密码等

const ora = require('ora')
const rm = require('rimraf')
const path = require('path')
const chalk = require('chalk')
const webpack = require('webpack')
const config = require('../config')
const webpackConfig = require('./webpack.prod.conf')

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值