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

在使用变量之前,我们需要先声明变量。声明变量的关键字有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. 关于html中的 script标签中的 代码写法有效性? easyui tabs的href不能载入内容页面

    script标签, 即 html中的 js脚本区域中: 它其实就是一个 普通的 html标签, 在 html 渲染器 parser 看来, 它跟其他任何的普通 的 html标签 , 比如 p 标签, ...

  2. P2178 [NOI2015]品酒大会

    思路 在后缀树上进行一些操作就好了 后缀树上LCA的maxlen就是两个后缀的LCP的长度了 然后统计每个点作为LCA的次数和最大值.次大值.最小值.次小值 然后就做完了 代码 #include &l ...

  3. vue-router使用 看着篇就够了

    官网地址:https://router.vuejs.org/zh/ 先来个自我介绍吧,我就是你们口中的路由,我的作用就是告诉你们怎么到达某地,比如你想去一个地方(前提是这个地方是已经存在的)我会查询我 ...

  4. Android Studio3.1.2运行模拟器出错Emulator:emulator:ERROR:x86 emulation currently requires hardware acceleration!

    出错截图如下所示: 解决方法: 由于我是已经解决了这个问题,安装了Intel x86 Emulator Accelerator,所以显示后面显示的是 Installed,如果报错和我贴的图一样,就可以 ...

  5. 如何在 Apache 里修改 PHP 配置

    当使用 PHP 作为 Apache 模块时,也可以使用 Apache 配置文件(例如:httpd.conf) 和 .htaccess 文件中的指令来修改 PHP 的配置 设定,不过需要有 " ...

  6. 关于li标签的value属性值的获取问题

    在前几天的开发过程中,遇到了这样一个问题. 在li标签中嵌入了一个value属性,如这样滴: <li id="ts1" value="0001">& ...

  7. Phonics 自然拼读法 ai, oa,ie, ee,or,j Teacher:Lamb

    课上内容(Lesson) 1. “L” 的介绍 Light L      e.g.   Love Like Life Dark L      e.g.   Apple  world  call 2. ...

  8. English trip V2 - 3. A Healthy Diet Teacher:Corrine Key:各种前缀 im- un- in- re- over- under-

    In this lesson you will learn to talk about foot and drink for a healthy diet. 课上内容(Lesson) What do ...

  9. 如何使用js改变HTML中title里面固定的文字

    document.title = '这里是你想要替换的文字';

  10. hashlib 和 hmac 算法的区别

    -----md5 = hashlib.md5() md5.update(password+salt) md5.hexdigest() ----- h = hmac.new(key,password,d ...