第一篇回顾学习,变量es6
变量就是在内存中刨一个坑存“一个”数据,再给这个坑起个名。
为何要给“一个”加引号呢,由于JavaScript是松散类型的,即一个变量能够用来保存任何类型的数据。
变量的分类:全局变量
:能够在任何地方使用的变量;局部变量
:在函数内声明的变量只在函数内有定义,做用域是局部性的segmentfault
当一个数据须要被反复使用时,就要先保存在变量中。函数
var 变量名
;
例:var keng
这样我就声明了一个叫keng的变量;变量名有必定的要求大概总结为一下几点学习
在es6中还有两种声明变量的方式(IE11)let
:声明块级做用域的变量,通俗的理解就是花括号就是它的做用域const
:声明常量:需在声明时直接赋值,声明为基础类型不可改变。声明为引用类型不可重写。spa
keng = '坑'
将上文中声明的keng
赋值为字符串'坑'
;
也能够在声明时直接赋值变量,如:var keng2 = '第二个坑'
不通过声明也能够直接赋值变量,但不推荐这么作,由于这样的变量会默认为全局变量(在严格模式下会报错)
如 keng3 = '没有声明就赋值的第三个坑是没有灵魂的坑'
若是仅声明而没有赋值的变量,默认值为:undefined
在后面数据类型会详细说~。~
能够同时声明多个变量,并直接赋值,用逗号隔开便可。如上文中的三个坑能够这样写code
var keng = '坑', keng2 = '第二个坑', keng3 = '没有声明就赋值的第三个坑是没有灵魂的坑'
能够写成一行,这样写是为了提升可读性图片
上文中说到的全局变量和局部变量即为变量做用域的基本概念
须要注意的是ip
局部变量的优先级高于同名的全局变量,即若是在函数内声明一个局部变量或者函数参数中带有的变量和全局变量重名,那么全局变量会被局部变量所遮盖。内存
var keng = '坑是个好坑,能不能用就不知道了'; function changeKeng(){ var keng = '好坑也不用你'; return keng; } changeKeng(); // '好坑也不用你'
声明提早
在局部做用域声明变量的时候会将变量提高至当前做用域的顶部。
敲个栗子:作用域
var keng = '这是个全局的坑'; function quanyikuaidi(){ console.log(keng); // 输出 'undefine' 而不是 '这是一个全局的坑' var keng = '圈一块地里的坑'; console.log(keng); // 输出 '圈一块地里的坑' }
以上代码等同于
var keng = '这是个全局的坑'; function quanyikuaidi(){ var keng; // 在函数顶部声明变量 keng console.log(keng); // 变量存在尚未赋值,默认值为undefined keng = '圈一块地里的坑'; // 给变量 keng 赋值 console.log(keng); // 输出 '圈一块地里的坑' }
到这里变量的部分就OK了,其余的部分敬请期待了,目录传送门 ,没有链接的证实本宝宝还没写,哈哈哈哈哈
本人公众号二维码欢迎关注哈: