javascript变量是最基础的知识,也是学习任何编程语言都会接触,并且要学习的知识。

如果你在编程过程中需要存放一个数字,比如100,那么你首先要声明一个变量,然后把数字100赋值给变量,这样在程序中就有了100这个数字了,程序后面相关的计算操作都会通过这个变量来完成。再比如,你想存放一个hello的字符串,也是要声明一个变量,然后把hello赋值给变量。或者从后台数据库获取的数据,也是要存放给变量的,然后才能进行继续的操作。

下面就说一说变量相关的内容。
老徐在学习javascript的过程,也是从简单开始一步一步学习的。

变量的声明和初始化
变量的声明需要知道两个javascrip关键字就行了,分别是var和let(ES6新增)。这两个关键字都可以声明和初始化变量,当然两者声明的变量在作用域方面有所不同,接下来会说到。举例说明怎么声明和初始化变量,非常简单。
var x = 'hello'; // 声明一个变量,名字叫x,初始化值是一个字符串叫hello。
var y; // 声明一个变量,没有初始化,此时它的数据类型是undefined。
y = 3; // 给上面刚声明的变量赋值,值是一个数字3。
let a; // 声明了一个没有初始值的变量。
let b = '哈哈'; // 声明并初始化了一个变量,
上面简单列举了几个变量声明的例子,非常简单,给变量赋的值也不只是字符串或者数字,还有null、布尔值、数组、对象、函数等,后面在数据类型的时候再细讲。
可能有人会问了,var和let声明的变量好像没有区别呀。下面老徐说一下他们有什么区别,区别在于作用域的不同。

变量的作用域 - 全局、局部和块级作用域
由var声明的在函数体外的变量,叫全局变量,是全局作用域。
由var声明的在函数体内的变量,叫局部变量,是局部作用域。
由let声明的在代码块外的变量,叫全局变量,是全局作用域。
由let声明的在代码块内的变量,叫局部变量,是块级作用域。

看到上面4句话,有点晕,那么咱们先说var。
简单说就是由var声明的变量,在函数体外是全局变量,在函数体内是局部变量。
var x = 1; // 在函数体外声明的变量,是全局变量
function y(){
    // 函数体,而且x变量在函数体是可以用的。
}
function z(){
    var z1 = 0; // 在函数体内声明的变量,是局部变量,在函数体外是不能用的。
}
function a(){
    z2 = 1; // 此时这个变量是全局变量,没有用var声明。
}
看到这里,老徐相信大家应该明白什么是全局变量和局部变量了,区别就是在函数有内外,而且没有var的变量是全局变量。

接下来再说说let关键字。
简单说就是由let声明的变量在代码块外的是全局变量,在代码块内的是局部变量。
let x = 1; // 在代码块外声明的变量是全局变量
for(let i = 0; i < 5; i++){ // 在代码块内声明的变量是局部变量
    // 代码块
}
function z(){
    let y = 3; // 在代码块内声明的变量是局部变量
}
这就是var,let的区别,各位看明白了么。

另外还有几点需要注意。
由var声明的变量,可以有任何地方(函数内外、代码块内外)被再次声明。
由let声明的变量,在相同作用域里,不能被再次声明。
由let声明的变量,在相同作用域里,不能再被var声明。
由var声明的变量,在相同作用域里,不能再被let声明。

勤学苦练,笨鸟先飞。关注【老徐WEB前端开发教程】公众号,听老徐说。

老徐WEB:js入门学习 - javascript变量相关推荐

  1. 老徐WEB:js入门学习 - javascript对象之String对象

    简单说明一下字符串. 字符串是由单引号或者双引号括起来的任意文本.如果文本里含有单引号,外面就用双引号括起来,如果文本里含有双引号,那么外面就用单引号括起来.如果文本里面的引号和外面的一致,那么文本里 ...

  2. 老徐WEB:JS简单实现图片滚动效果轮播图,自动、手动和自适应(二)

    轮播图是前端网页中常用的功能,包括PC端和移动端,都会用到轮播图,像咨讯.电商和个人博客等,首页基本都会有轮播图. 老徐在上一篇文章的基础上[最简单详细的轮播图原理和制作过程],又扩展了功能,使之成为 ...

  3. 什么是js为什么学习 JavaScript?

    什么是js为什么学习 JavaScript? JavaScript 缩写.一种计算机脚本语言,主要在web浏览器(客户端)解释执行,由网景公司开发. 请注意,网景公司的 JavaScript 和微软公 ...

  4. Backbone.js入门学习资源

    backbone.js提供了一套web开发的框架,通过Models进行key-value绑定及custom事件处理,通过Collections提供一套丰富的API用于枚举功能,通过Views来进行事件 ...

  5. 老徐WEB:最简单详细的轮播图原理和制作过程(一)

    老徐利用空闲时间,制作了一个最简单的轮播图,主要介绍轮播图的原理和制作过程,只要大家能认真看完这篇文章,并理解文中内容,就能完全掌握轮播图的制作了.之后工作中碰到复杂的轮播图,自己也能思考制作出来了. ...

  6. Web前端入门学习(5)——浮动原理及清除浮动

    浮动原理及清除浮动 上节回顾 在上节的<Web前端入门学习(4)-- 块级元素和行内元素之特征与转换>中(http://cherry360.blog.51cto.com/12176744/ ...

  7. 【带着canvas去流浪(11)】Three.js入门学习笔记

    [摘要] three.js 入门学习笔记 示例代码托管在:http://www.github.com/dashnowords/blogs 一. 资料推荐及建议 1.官方文档 很详细,但是API部分单独 ...

  8. Web前端入门学习之JS基础知识梳理汇总

    Web前端工程师是当前各大企业都比较稀缺的人才,薪资待遇和就业前景都很不错.不论是专业还是非专业,有基础亦或是无基础,都想通过学习Web前端实现高薪就业. 不过,学习要一步一个脚印,不能一口吃一个胖子 ...

  9. 通过制作数字桌面游戏和Web应用程序学习JavaScript

    Building 2D games can be a great way to learn JavaScript, especially when working through the basics ...

最新文章

  1. jquery获取浏览器宽高
  2. 有奖评选 | 2020年的AI技术公开课,你想听到哪些干货?
  3. 优胜队伍跑多快?优胜秘笈是什么?直播告诉你
  4. php直接修改excel,php如何修改excel
  5. 【转】Linux 前后台作业切换及脱机管理
  6. C++中int id[sizeof(unsigned long)]的语句,正确吗?
  7. MobIM仅为开发者提供即时通讯的消息通道服务
  8. 贪心——无重叠区间(Leetcode 435)
  9. 四川教育考试网全国计算机,四川教育考试院
  10. [转载] PyTorch简介
  11. 关于js对象添加属性
  12. Code-NFine:NFine介绍
  13. ps如何把自己的图与样机结合_样机在ps里面怎么用|ps怎么把图片放在书本样机图中...
  14. mysql 十年_十年前的老问题,MySQL 8.0有了答案
  15. 存折和银行卡的区别?
  16. 微信小程序开发中遇到的坑
  17. python反反爬,爬取猫眼评分
  18. (转)双线性汇合(bilinear pooling)在细粒度图像分析及其他领域的进展综述
  19. 优秀码农选择对象详细指南,看完记得要实战噢
  20. FDI-01-基于PCA的TEP故障检测

热门文章

  1. English Word —— Day 38——四级中学已学单词表
  2. java 浮雕_java 图像特效之黑白 浮雕和底片
  3. 【2018亚太数据中心峰会】辜茂军:绿色智能数据机房技术- 精确送风
  4. Wifi直连(p2p)一对多音频传输
  5. android面试题笔试题总结
  6. 【网络】计算机网络常见面试题 - 前端面试必备 - 吐血整理
  7. Visual Studio Code——SSH连接Linux环境编程及调试
  8. 电商技巧:如何整店商品图片下载并分类保存
  9. 焦点效应 spotlight effect
  10. 《python基础教程》答案(第六章)