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来定义。看看代码:

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

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

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

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

识别下方二维码,关注【振丹敲代码】,陪着振丹入门前端开发

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180609G0K4EB00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券