码迷,mamicode.com
首页 > Web开发 > 详细

JS变量

时间:2017-12-03 14:44:33      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:引用   one   pre   输出   4.4   静态   font   ges   4.0   

  • 变量:就是存储在里面的数据是随时可以变化的。
  • 在使用变量之前,需要我们先声明变量,声明变量的关键字有三个,,var,let,const, varES6之前一直使用的声明方式,从ES6开始,新增了letconst
  • 声明变量语法:
    • 关键字  变量名。var i
    • 如果通过var声明了变量,但是没有赋值,会输出undefined 

                        技术分享图片

  • 变量的声明和赋值是可以同时进行的,如果是第一个给变量赋值,那么这个过程叫做变量的初始化 

                        技术分享图片

  • 可以一次声明多个变量 

                        技术分享图片

  • 在声明变量的时候只能进行赋值操作,不能进行其他的运算操作
  • 支持重复声明 

                        技术分享图片

  • 重复声明没有赋值的情况下,会忽略该声明

        技术分享图片

    • 支持遗漏声明
  • 由于js是一门解释性语言(动态语言),所以声明好的变量可以存储任何类型 

        技术分享图片

  • let不支持重复声明和遗漏声明 

          技术分享图片

  • 变量提升
    • 之所以现在不推荐使用var来声明变量,是因为var声明的变量存在一个变量提升,所谓变量提升,就是指将变量的声明提升至当前作用域的顶部。 

        技术分享图片

  • let声明的变量就不存在变量提升的问题
  • var声明的变量不存在块级作用域
    • 在其他静态语言里面,通过一对大括号{}可以定义一个块级作用域 

        技术分享图片

  • let声明就有这个块级作用域 

        技术分享图片

  • 常量:指不变的量,不可更改
  • const:也是声明变量的一种方式,但是声明的变量不能改变。 

        技术分享图片

  • JS数据类型分类
    • 基本数据类型(原始值,简单值)
      • 简单值:指最简单的数据段,不可再拆分
      • 常见的简单值:let i=5
      • 简单值存储于栈区,因为原始数据所占的大小空间是固定的
      • 数据复制的时候,是值的拷贝 

        技术分享图片

  • 进行比较的是值,也就是说值相等,那么这两个变量就相等 

        技术分享图片

  • 引用数据类型(复杂值)
    • 指多个简单值所构成的数据,是可以拆分的
    • 常见的复杂值:let arr=[1,”hello”]
    • 复杂值存储于堆区,因为引用类型的数据大小不固定,所以无法在栈区开辟合适的空间。
    • 数据复制的时候,是地址 

       技术分享图片

    • 进行比较的是地址,地址相等,才算是相等 
    • 技术分享图片

JS变量

标签:引用   one   pre   输出   4.4   静态   font   ges   4.0   

原文地址:http://www.cnblogs.com/lwww/p/7965963.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!