资讯专栏INFORMATION COLUMN

JavaScript 回顾学习:变量

KitorinZero / 3226人阅读

摘要:变量的分类全局变量可以在任何地方使用的变量局部变量在函数内声明的变量只在函数内有定义,作用域是局部性的什么时候使用当一个数据需要被反复使用时,就要先保存在变量中。

第一篇回顾学习,变量

什么是变量

变量就是在内存中刨一个坑存“一个”数据,再给这个坑起个名。
为什么要给“一个”加引号呢,因为JavaScript是松散类型的,即一个变量可以用来保存任何类型的数据。
变量的分类:
全局变量:可以在任何地方使用的变量;
局部变量:在函数内声明的变量只在函数内有定义,作用域是局部性的

什么时候使用

当一个数据需要被反复使用时,就要先保存在变量中。

怎么用
声明变量

var 变量名
例:var keng
这样我就声明了一个叫keng的变量;变量名有一定的要求大概总结为一下几点

不能以数字开头

语义化

不能用保留字

在es6中还有两种声明变量的方式(IE11)
let:声明块级作用域的变量,通俗的理解就是花括号就是它的作用域
const:声明常量:需在声明时直接赋值,声明为基础类型不可改变。声明为引用类型不可重写。

赋值

keng = "坑"
将上文中声明的keng赋值为字符串"坑"
也可以在声明时直接赋值变量,如:var keng2 = "第二个坑"
不经过声明也可以直接赋值变量,但不推荐这么做,因为这样的变量会默认为全局变量(在严格模式下会报错)
keng3 = "没有声明就赋值的第三个坑是没有灵魂的坑"
如果仅声明而没有赋值的变量,默认值为:undefined 在后面数据类型会详细说~。~
可以同时声明多个变量,并直接赋值,用逗号隔开即可。如上文中的三个坑可以这样写

var keng = "坑",
    keng2 = "第二个坑",
    keng3 = "没有声明就赋值的第三个坑是没有灵魂的坑"

可以写成一行,这样写是为了提高可读性

变量作用域

上文中说到的全局变量和局部变量即为变量作用域的基本概念
需要注意的是

局部变量的优先级高于同名的全局变量,即如果在函数内声明一个局部变量或者函数参数中带有的变量和全局变量重名,那么全局变量会被局部变量所遮盖。

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了,其他的部分敬请期待了,目录传送门 ,没有连接的证明本宝宝还没写,哈哈哈哈哈
本人公众号二维码欢迎关注哈:

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/95451.html

相关文章

  • JavaScript回顾学习:数据类型

    摘要:本篇文章将回顾学习种基本类型和及数据类型之间的转化。如果不能,再调用对象的方法,再测试返回值是否可以被转化为数值。首先可以用于任何数据类型,另外两个则是专门用于把字符串转换成数值。 概述 ECMAScript中有5中基本数据类型:Undefined,Null,Boolean,Number,String,还有一种复杂数据类型对象(Object),Object本质上是由一组无序的名值对组成...

    youkede 评论0 收藏0
  • JavaScript回顾学习:目录篇

    摘要:前言之前说要重头开始复习,之前一直都在忙着找工作面试,现在工作也终于是找到了,虽然不那么尽人意,但总算有个归属,一段时间的适应也有了自己稳定的时间规划,为了给懒惰捉急的自己一个前行的动力,这一篇的回顾学习目录篇也就这样提上了日程。 前言 之前说要重头开始复习js,之前一直都在忙着找工作面试,现在工作也终于是找到了,虽然不那么尽人意,但总算有个归属,一段时间的适应也有了自己稳定的时间规划...

    luckyw 评论0 收藏0
  • 前端每周清单第 43 期:2017 JavaScript 回顾、Rust 与 WebAssembly

    摘要:杨冀龙是安全焦点民间白帽黑客组织核心成员,被浪潮之巅评为中国新一代黑客领军人物之一他在本文中依次分享了对于黑客的定义如何从黑客成为一名安全创业者技术创业踩过的坑给技术创业者建议等内容。 showImg(https://segmentfault.com/img/remote/1460000012377230?w=1240&h=796); 前端每周清单专注前端领域内容,以对外文资料的搜集为...

    xorpay 评论0 收藏0
  • javascript基础篇小结

    摘要:表示尚未存在的对象是一个有特殊意义的值。可以为变量赋值为,此时变量的值为已知状态不是,即。用来初始化变量,清除变量内容,释放内存结果为但含义不同。且它俩与所有其他值比较的结果都是。,需要两个操作数同时转为。 转载请声明出处 博客原文 随手翻阅以前的学习笔记,顺便整理一下放在这里,方便自己复习,也希望你有也有帮助吧 第一课时 入门基础 知识点: 操作系统就是个应用程序 只要是应用...

    hiyang 评论0 收藏0
  • 2018年前端开发回顾

    摘要:在整个年,看到发布版增加了许多功能,包括新的生命周期方法新的上下文指针事件延迟函数和。它在等待渲染异步响应时数据,是延迟函数背后用来管理组件的代码分割的。发布自第版开始将近年后,于年发布。 前端发展发展迅速,非常的快。 本文将回顾2018年一些重要的前端新闻,事件和 JavaScript 趋势。 想阅读更多优质文章请猛戳GitHub博客,一年百来篇优质文章等着你! showImg(ht...

    crelaber 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<