JavaScript零基础入门——(二)JavaScript的变量

JavaScript零基础入门——(二)JavaScript的变量

上节课我们大致了解了一下JavaScript是什么,也顺带提了一下HTML、CSS和JS之间的关系,那么从这节课开始我们进入JS的基础课程,这节课,我们来讲讲JavaScript的变量。

变量这个词,对于刚入门前端的同学来说,可能有些陌生,但接触过C/C++或其他后端高级语言的同学来说,却是老朋友了。那究竟什么是变量呢?

变量,是与常量相对应的一个词。『变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储Script运行时可更改的程序信息。』我们暂时不去了解计算机原理的东西,我们只要知道,变量,是用来存放数据的,我们通过我们指定的变量名可以找到它,并取出他里面的数据就可以了。

那么,什么又是常量呢?从某种意义上来说,常量,是一种特殊的变量。为什么这么说呢,其实常量也是用来存放数据的,只是这个数据被初始化好之后,就不允许被计算机程序所修改,我们称之为不变量。常见的常量有很多,例如π(计算机语言里通常叫做PI),我们会给它初始化一个值叫3.1415926,那么你拿PI去做计算的时候,就等同于拿3.1415926去计算。需要主要的是,常量并不是一开始就是存在的,它也需要定义和初始化,换句话说,它只是在某段或某个程序中一个可以代替某些值而存在的东西,他的不变是针对在计算机运行中,不被程序所改变,但他的值,却是我们一开始指定的。

来举个花生,不对,拿错了,是栗子。好比你门口的江南皮革厂倒闭了,跳楼价清仓,昨天他们一双皮鞋一口价都是30元,那么我们在昨天的程序中,就会定义一个常量,比如叫PRICE,并给它赋初始值30,那么他们昨天计算的时候,只需要拿PRICE去乘数量就行了。今天他们发现库存还不少,一口价改成20,那么今天的程序我们给PRICE的初始值为20,那么今天计算拿PRICE去乘数量,就等同于拿20去乘数量。

不过需要注意的是,在ES6出来之前,JS是不分常量和变量的,或者也可以说,是没有常量的。这会让不少后端同学学习起来有点一头雾水,没事,先忘记后端知识,零基础来学习哈。这时,有同学又会问了,什么是ES6,其实是一种标准,但这门课我们先不谈ES6,我找时间会单独整理ES6的课程,我们只谈普通常见的JS(基于ES5)。

好,有同学说,你讲了这么多,还没告诉我怎么用变量呢。不要急,这不是来讲了嘛。

要使用变量,首先你得先定义。在JS中,通常我们是用保留字var+变量名来定义变量,变量给不给初始值看实际需要,但是,JS也允许直接给一个全新的变量名赋值来定义变量,当然为了规范和易读,我们还是建议用var来定义。看看代码:

var a;//定义变量a,但未赋初始值

var b = 1;//定义变量b,同时赋予初始值1

c = 1;//直接对c赋初始值,也是一种定义

//console.log是在控制台输出指定的东西

console.log(a);//输出undefined

console.log(b);//输出1

console.log(c);//输出1

你去问问学过Java的同学(假设他不懂JS),你给他看看变量c的定义,他可能会先骂你一顿,说你瞎搞,怎么可能,当你运行给他看的时候,你这位同学可能开始抓狂了,怎么会这么不严谨呢?对,它就是这么不严谨,所以说学过后端语言的同学,要暂时先把后端知识忘掉。

好,那我们接着讲变量的作用域,也就是它的作用范围。和其它语言类似,JS的变量也分为全局变量和局部变量。全局变量,顾名思义,在JS中的任何一个地方都能够被使用的变量,而局部变量,就是只能在定义它的函数中使用。再来看看代码:

var a = 10;//全局变量

function test(){
  var b = 20;//局部变量
}

console.log(a);//10

console.log(b);//not defined即未定义

这节课讲得差不多了,嗯...One more thing,ES5下的JS变量有一个比较大的诟病,那就是没有块级作用域。什么是块级作用域,简单的说,用花括号包裹起来的,就是块级作用域。有同学说,没有就没有吧,开心就好,这个事儿啊,我跟你说,有块级作用域,你会减少不少烦恼,不信你再去问问你那位Java同学,你问他块级作用域没有可以吗,我相信他又会骂死你,那是吃饭的家伙啊。为什么说JS没有块级作用域呢,来看看代码:

//这是一个判断流程,满足条件会进去
if(true){
  var x = 8;
}

console.log(x);//8

//我猜那位Java同学看到这里,可能要想静静了...

好了,这节课就讲这么多,大家消化一下,还是那句话,自己要敲一敲,才会有印象。下节课,我们接着讲JavaScript的变量类型。

                                                                                                                                                                    

如果想跟着振丹继续学习,可以微信关注【振丹敲代码】(微信号:JandenCoding)

新博文微信同步推送,也可直接扫描下方二维码关注。

 

转载于:https://my.oschina.net/JandenMa/blog/1827235

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值