JavaScript基础教程之变量的提升

变量 在js中,数据的本质就是开辟空间存储数据,所以如何找到存储的数据,并使用这些数据,是一个关键,因此js为我们提供了变量,用来使用或者存储这些数据, 例如我们之前学过的数字,字符串,他们一旦定义我们如何访问或者使用他们呢? 必须我们只写定义 11,如何用这个数据进行加减乘除呢?因此我们要将这个11数据保存在变量方便访问或者存储。 定义变量过程 变量的使用分成两个过程, 第一个过程是在内存中开辟一个空间来存储数据,此时这个变量就作为这个存储空间的标识(定义) 第二个过程是通过这个变量找到这个数据使用或者修改(访问) 定义变量的语法 var 变量名; (只是开辟空间) 或者 var 变量名 = 数据; (开辟空间并存储了数据) 等价于 var 变量; // 通过变量定义空间 变量 = 数据; // 通过变量,将数据存储在空间内 定义变量规则 定义变量名称的时候,名字不能随便起,是由一个规则的,规则就是 变量必须以 _或者$或者大小写字母开头,并且后面只能是_或者$或者大小写字母或者数字(0-9)

注意js中的一些保留字和关键字也是不可以定义变量名称的 关键字: 当前js版本中已经有了具体意义的单词, 例如:break case catch continue default delete do else finally for function if in instanceof new return switch this throw try typeof var void while with 保留字:以后或者未来版本中可能会出现的具有具体意义的单词。 例如 abstract boolean byte char class const debugger double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile 注意如果使用es6版本,那么保留字中的一些已经成为关键字 这些单词也是不能用来定义变量

变量命名方式 定义变量的几种常见方式 1 驼峰式命名 作用是方便阅读,多个单次我们通过将单次首字母大写来分隔单词 将多个拼接在一起,并且除了第一个单词外后面的单词首字母大写 例如 myColor currentPageNum 2 大驼峰式命名 作用也是方便阅读 将所有单词首字母大写(第一个单词首字母也要大写) 用途:这类名称变量通常是用来定义一些类的 例如 PlayerPoint, MyColor 3 大写字母式 作用也是方便阅读 将所有单词大写,并且用_分隔每个单词 用途:通常用来定义一些静态变量(不希望别人更改) MAX_NUM, MIN_NUM 4 小写字母式 作用也是方便阅读 将所有单词小写,并且用下划线分隔 例如 my_color, day_time 5 其他式 定义变量用 $开头 这类通常为模块内部的变量定义

定义变量用 _开头 这类通常定义私有变量不希望别人访问

定义变量用 __开头 这类变量私有性更强了,一半定义在系统中

变量提升 经常在面试中被问及,起始这个技术是javascript一个很糟糕的部分,js语言设计的不够严谨,变量提升就是其中之一。工作用尽量不要触发这类问题,这类问题经常是bug产生的原因 变量提升就是在定义变量之前使用这个变量

变量提升实现原理:我们每次定义一个变量分成连个步骤, 第一步是定义变量开辟空间, 第二步才是将数据存储在这个空间内。 因此我们在定义变量都会出现上面两种过程,js对于这两种过程是分别处理,js在读代码时候,会将定义的过程放在代码(作用域)最前面,赋值的位置顺序没有改变,因此变量提升就产生了。 对于变量提升我们尽量避免,尽量将变量定义在代码的最前面 变量提升这一现象对于初学理解起来可能不太容易,原因就是它的代码定义顺序与代码执行顺序是分离的(有可能不会同步),js语言不严谨的一个侧重点

当定义变量没有赋值的时候,访问这个变量,就得到undefined 在使用变量的后面定义这个变量,访问的时候,他的就是undefined

定义多个变量 定义多个变量的语法:逗号语法 由于逗号运算符优先级底,因此我们可以通过逗号语法来定义多个变量,将多个定义变量的语句合并成同一个 注意逗号语法是将多条var语句合并成同一条,一条语句中var只能出现一次,因此我们要将var写在最前面

本文章版权归爱创课堂所有,转载请注明出处。

更多详细内容请访问爱创课堂官网首页

http://www.icketang.com/

转载于:https://my.oschina.net/u/2945292/blog/1570571

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值