所谓变量,就是里面存储的数据是可以改变的。

在使用变量之前,我们需要先声明变量。声明变量的关键字有var  let   const

在ES里面声明变量可以使用var,如下:

//var 变量名
var i;

  如果声明了一个变量,但是没有给该变量赋值,那么该变量默认的值为undefined

var i;
console.log(i); //undefined

  初始化

所谓初始化,就是给变量进行第一次赋值

var i;
i=5;//初始化
console.log(i);

  变量的声明和初始化是可以同时进行的

var i=5;
/*等价于 var i;
i=5;
*/
console.log(i);

  可以一次性声明多个变量

var i=5,j=10;

  重复声明:如果是var来声明变量,是可以重复声明的,ES里面不会报错

var i=5;
var i=10;//相当于i=10
console.log(i);

  如果重复声明变量的时候,只是声明而没有赋值,那么解释器会忽略这一条声明

war 1-5;
var i;//重复声明
console.log(i);//打印结果5

  遗漏声明

所谓遗漏声明,就是指没有对变量进行声明,但是就直接拿来用。严格模式下不支持遗漏声明,并且也不要这样书写

i=10;
console.log(i);

  由于JS是一门解释性语言,所以在JS里面,所有的变量都可以用var  let  const来进行声明

var i=5;
i=3.14;
console.log(i);

  虽然可以将任意数据类型存储至同一个变量,但是不推荐这么做。因为这样会影响解析的效率。

变量提升(重要)

之所以现在不推荐使用var来声明变量,就是因为var申明的变量会有一个变量提升。

所谓变量提升:就是指将变量的声明提升至当前作用域的顶部

console.log(i);
var i=5;
/*等价于 var i;
console.log(i);
i=5;
*/

  使用let或者const声明的变量就不存在变量提升,如下:

console.log(i);
let i=10;//报错

  Var声明的变量不存在块级作用域

块级作用域就是一对大括号里面会产生一个单独的作用域

{
var i =5;
console.log(i);
}
console.log (i); //5

 

Let和const就拥有块级作用域

{
let i=5;
console.log(i);
}
console.log((i); //报错

  Const:创建的变量不能再被改变。

const i=5;
console.log(i);//5
i=10;
console.log((i);//报错

  JS里面的数据类型(非常重要)

JS里面的数据类型可以分为两大类:基本数据类型  和  引用数据类型

基本数据类型就是指最简单的数据段,不可拆分的

引用数据类型是指有多个基本数据类型组成的数据,是可以被拆分的。

常见的基本数据类型:Number,String,Boolean,Null,Undefiend,Symbol

常见的引用数据类型:Array  Object

基本数据类型和引用数据类型的区别:

基本数据类型中,如果使用或者复制一个变量,那么是复制的值,而在引用数据类型中,如果使用或者复制一个变量,是复制的引用

简单数据类型示例:

JS中的变量和数据类型的更多相关文章

  1. Javascript开发技巧(JS中的变量、运算符、分支结构、循环结构)

    一.Js简介和入门 继续跟进JS开发的相关教程. <!-- [使用JS的三种方式] 1.HTML标签中内嵌JS(不提倡使用): 示例:<button onclick="javas ...

  2. JavaScript 基础——使用js的三种方式,js中的变量,js中的输出语句,js中的运算符;js中的分支结构

    JavaScript 1.是什么:基于浏览器 基于(面向)对象 事件驱动 脚本语言 2.作用:表单验证,减轻服务器压力 添加野面动画效果 动态更改页面内容 Ajax网络请求 () 3.组成部分:ECM ...

  3. JS中的变量和输入输出

    一.使用JS的三种方式 1.在HTML标签中,直接内嵌JS(并不提倡使用) <button onclick="alert('点你咋地')">点我</button& ...

  4. js课程 1-5 js如何测试变量的数据类型

    js课程 1-5 js如何测试变量的数据类型 一.总结 一句话总结:用typeof()方法. 1.js如何判断变量的数据类型? 用typeof()方法. 13 v=10; 14 15 if(typeo ...

  5. Js中执行变量中的命令语句,也就是所谓的宏替换(很实用的例子)

    Js中执行变量中的命令语句,也就是所谓的宏替换(很实用的例子) 由其做动态编程时非常有用,必须符合js中的语法,用eval能够执行. var aaa="alert('这是变量中的语句')&q ...

  6. Node.js中环境变量process.env详解

    Node.js中环境变量process.env详解process | Node.js API 文档http://nodejs.cn/api/process.html官方解释:process 对象是一个 ...

  7. js 中的变量声明提前总结

    一.var 声明 ES6之前,js 中声明变量基本上用 var 关键字: 1.如果访问未声明的变量,会报错:ReferenceError 2.声明了未赋值,值为 undefined,跟前面的报错是两回 ...

  8. Js中判断变量存不存在的问题

    前面写过jquery对象存在与否的判断.现在谈下Js中判断变量存不存在的问题. 如果这样if(!a),当变量a在js中没有申明时,就会报错,那么接下去的代码将不会被执行.注意,这种判断只要变量申明过, ...

  9. 实现一个函数clone,可以对JS中的5种数据类型(Number、String、Object、Array、Boolean)进行值复制

     实现一个函数clone,可以对JS中的5种数据类型(Number.String.Object.Array.Boolean)进行值复制

随机推荐

  1. Vue路由(组件)懒加载(异步)

    传统的引入方式 import test from '@/components/test' { path: '/test', name: '测试页面', component:test }, 懒加载的方式 ...

  2. luogu准备复习(学习)题单

    矩阵乘法 P1306 exbsgs P4195 网络流(割点) P1345 主席树 P3302

  3. centos7配置consul

    下载wget https://releases.hashicorp.com/consul/1.4.2/consul_1.4.2_linux_amd64.zip解压unzip consul_1.4.2_ ...

  4. Python 开发 项目《外星人入侵》

    2019-02-05 本篇心路历程: 本篇是打算记录自己的第一个python项目,也是众人皆知的<外星人入侵项目>,本项目大概500多行.趁着寒假,大概耗时3天吧,把完整代码敲了出来,当然 ...

  5. CSS3 3D图片立方体旋转

    html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <titl ...

  6. web 后台返回json格式数据的方式(status 406)

    1.在类上使用注解 @RestController public class HttpComentInterface { } 2.在方法是使用注解  @ResponseBody @RequestMap ...

  7. java异常处理try catch finally

    1       异常 1.1      异常处理的作用 在编程时,如果出现文件打开失败,读写文件就会异常退出.如果出现内存溢出错误,程序也会异常退出.如果不能对这些异常进行处理.程序则无法正常运行.所 ...

  8. P2685 [TJOI2012]桥

    P2685 [TJOI2012]桥 思路: 先求出最短路: d1[u] : u 到 1 的最短路, d2[u] : u 到 n 的最短路 再求出一条从 1 到 n 的最短路链,然后从链上的每一个点出发 ...

  9. R代码展示各种统计学分布 | 生物信息学举例

    二项分布 | Binomial distribution 泊松分布 | Poisson Distribution 正态分布 | Normal Distribution | Gaussian distr ...

  10. 【Mybatis】【3】mybatis Example Criteria like 模糊查询

    正文: 在Java中使用Mybatis自动生成的方法,like需要自己写通配符 public List<TableA> query(String name) { Example examp ...