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

在使用变量之前,我们需要先声明变量。声明变量的关键字有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. 关于win10环境下Anaconda python,用pip安装包及升级时SSL报错的问题

    刚开始查完以为是网的问题,但是添加信任值\镜像网站\手动下载安装都失败了. 检查后发现python中无SSL模块,检查Anaconda后发现是少加了环境变量Anaconda3\Library\bin, ...

  2. toFixed()精度丢失;复选框全选、取消

    一.精度丢失和重写toFixed()函数 1.重写toFixed() Number.prototype.toFixed = function(length){ var carry = 0; //存放进 ...

  3. Cocos Creator学习五:触摸和重力传感响应事件

    1.移动设备上主要涉及触摸响应事件以及重力传感响应事件的处理. 事件主要分两类: 针对节点事件处理的节点响应事件cc.Node.EventType(主要是触摸响应事件和鼠标响应事件): 针对全局系统事 ...

  4. Pytest(一)

    1.在命令行运行 2.在pytest框架中,有如下约束: 所有的单测文件名都需要满足test_*.py格式或*_test.py格式. 在单测文件中,可以包含test_开头的函数,也可以包含Test开头 ...

  5. spring history

    Spring框架是由于软件开发的复杂性而创建的.Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情.然而,Spring的用途不仅仅限于服务器端的开发.从简单性.可测试性和松耦 ...

  6. dedecms织梦文章微信分享带缩略图与简介

    dedecms V5.7二次开发 php5.6 mysql5.1 问题:dedecms文章分享到微信,带缩略图与简介.如下图: 1.准备工作 PHP 5.3+ 并且 curl扩展已经开启 微信服务号一 ...

  7. HDOJ-2039

    #include<iostream> #include<cstdio> using namespace std; int main(){ int m,flag; float x ...

  8. Postman中x-www-form-urlencoded请求K-V的ajax实现

    在Postman中使用x-www-form-urlencoded,并且用K-V传值,但是在代码中用ajax来请求,传值一直有问题,静下心来思考才发现K-V传入的是string,所以记录下来以防忘记!! ...

  9. linux环境下安装使用selenium Chrome

    安装驱动 http://chromedriver.storage.googleapis.com/index.html 下载对应chrome浏览器版本的驱动程序 chmod +x chromedrive ...

  10. github隐藏文件&删除文件

    一.隐藏文件不提交至github 例如:需隐藏node_modules文件夹 1.找到.gitignore文件,一般这个是隐藏文件,需要显示隐藏文件 2.编辑.gitignore文件,加入下面这一句话 ...