前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >js let var const你会用吗?

js let var const你会用吗?

作者头像
用户4793865
发布2023-01-12 13:44:41
3K0
发布2023-01-12 13:44:41
举报
文章被收录于专栏:前端小菜鸡yym前端小菜鸡yym

变量声明基础

在我们学习变量声明的三个关键字前,我们想了解一些基础知识。

开辟内存地址

如下我们声明了一个名为test的变量,其变量内容是 '第一个'。其实质是以二进制,如"010101"开辟了一个内存地址。当我们想使用这个变量的内容的时候,通过调用变量名test来实现。

代码语言:javascript
复制
var test = '第一个'
console.log(test)    // '第一个'

思考🤔变量名可以是$符号吗?

当然可以,JQuery就是用的$符号,我们回顾一下变量的命名:可以是数字、字母、下划线和$符号。但不能以数字开头。

代码语言:javascript
复制
var $ = 123;
console.log($)   //123

赋值

先声明,后赋值

代码语言:javascript
复制
var stage;
stage = '12'

同时声明多个

代码语言:javascript
复制
var a = 'aa',b='bb',c='cc';
console.table(a,b,c)

一个值赋值给多个变量

代码语言:javascript
复制
var d = e = f ='same'
console.log(d,e,f)

js不是强类型

不像Java一样,只需要用关键字 var/let/const 声明变量。

代码语言:javascript
复制
var web = 'hdfs';
console.log(typeof web);
var num = 12;
console.log(typeof num);
var ob = {'name':'yy'}
console.log(typeof ob)

变量提升

保留字

class作为js的保留字,是不可以作为变量名使用的,并且会报错。

如下,我们在声明class变量之前,声明一个变量web,并且打印出来。

代码语言:javascript
复制
var web = 'http';
console.log(web)
var class = 'dass';

但是它并不会打印,因为class的报错。

image.png
image.png

这是因为,代码编译之前解析器会将代码从上到下分析一遍,在分析的过程就进行了变量提升

未声明前就使用变量

问题来了,在我们没声明变量前,就使用了这个变量。会报错吗?

答案是,不会,可以正常的使用。同样是因为变量提升。

代码语言:javascript
复制
console.log(first)
var first = 'first';

定义一个变量有声明和赋值两步骤

此时执行,它相当于把 var first = 'first'; 拆分成var first;first = 'first'。 并且把 var first;放到了console.log()之前。

代码语言:javascript
复制
var first;
console.log(first)
first = 'first';

未执行代码变量提升

如下代码中,因为执行 var web = 'this is a';的条件是 false,所以一直都不会进入这个判断中。

代码语言:javascript
复制
function change(){
    if(false){
      var web = 'this is a';
    }
    console.log(web)
 }
change()

会打印出undefined

image.png
image.png

那么,当我们把 var web = 'this is a';注释之后。就会发现如下报错。

image.png
image.png
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 变量声明基础
    • 开辟内存地址
      • 赋值
        • js不是强类型
        • 变量提升
          • 保留字
            • 未声明前就使用变量
              • 未执行代码变量提升
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档