什么是数据?

  • 生活中时时刻刻都在跟数据打交道,比如体重数据、血压数据、股票数据等。在我们使用计算机的过程中,会接触到各种各样的数据,有文档数据、图片数据、视频数据,还有聊QQ时产生的文字数据、用迅雷下载的文件数据等

数据类型

  • 数据的分类

    • 静态的数据

      • 概念:静态数据是指一些永久性的数据,一般存储在硬盘中。硬盘的存储空间一般都比较大,现在普通计算机的硬盘都有500G左右,因此硬盘中可以存放一些比较大的文件。
      • 存储的时长:计算机关闭之后再开启,这些数据依旧还在,只要你不主动删掉或者硬盘没坏,这些数据永远都在
      • 哪些是静态数据:静态数据一般是以文件的形式存储在硬盘上,比如文档、照片、视频等。
    • 动态的数据
      • 概念:动态数据指在程序运行过程中,动态产生的临时数据,一般存储在内存中。内存的存储空间一般都比较小,现在普通计算机的内存只有8G左右,因此要谨慎使用内存,不要占用太多的内存空间。
      • 存储的时长:计算机关闭之后,这些临时数据就会被清除。
      • 哪些是动态数据:当运行某个程序(软件)时,整个程序就会被加载到内存中,在程序运行过程中,会产生各种各样的临时数据,这些临时数据都是存储在内存中的。当程序停止运行或者计算机被强制关闭时,这个程序产生的所有临时数据都会被清除。
      • 你可能会问:既然硬盘的存储空间这么大,为何不把所有的应用程序加载到硬盘中去执行呢?有个主要原因是内存的访问速度比硬盘快N倍。
    • 静态数据和动态数据的相互转换
      • 静态数据到动态数据(也就是从磁盘加载到内存。)
    • 动态数据和静态数据的相互转换
      • 如手机拍照片存储到手机的硬盘上
    • 数据的计量单位
      • 不管是静态还是动态数据,都是0和1组成的。0和1如何组成这么多的数据?
      • 数据都有大小,静态数据就会占用硬盘的空间,动态数据就占用内存的空间
      • 数据越大,包含的0和1就越多,比特位和字节
      1 B(Byte字节) = 8 bit(位)
      1 KB(KByte) = 1024 B
      1 MB = 1024 KB
      1 GB = 1024 MB
      1 TB = 1024 GB
      

JavaScript数据类型概述

  • 作为程序员最关心的是内存中的动态数据, 因为我们写的程序就是在内存中的

  • 程序在运行过程中会产生各种各样的临时数据, 为了方便数据的运算和操作, JavaScript对这些数据进行了分类, 提供了丰富的数据类型

  • 在JS中一共有六种数据类型

    • String 字符串(基本数据类型)
    • Number 数值(基本数据类型)
    • Boolean 布尔值(基本数据类型)
    • Null 空值(基本数据类型)
    • Undefined 未定义(基本数据类型)
    • Object 对象(引用数据类型)
  • 如何查看数据类型?

    • 使用typeof操作符可以用来检查数据类型。
    • 使用格式:typeof 数据,例如 typeof 123; typeof num;
    console.log(typeof 123); // number
    var num = 10;
    console.log(typeof num); // number
    
    • typeof操作符会将检查的结果以字符串的形式返回给我们
    var value= 10;
    // 此时将value的数据类型number以字符串返回给我们, 存入到res变量中
    var res = typeof value;
    // 此时检查res的数据类型为string, 证明typeof返回给我们的是一个字符串
    console.log(typeof res); // string
    

字符串类型

  • String用于表示一个字符序列,即字符串
  • 字符串需要使用 ’或“ 括起来
var str1 = "hello";
var str2 = `nj`;
var str5 = `hello nj"; // 错误
console.log(typeof str1 ); // string
console.log(typeof str2); // string
  • 相同引号不能嵌套,不同引号可以嵌套

    • 双引号不能放双引号,单引号不能放单引号
var str3 = "hello "nj""; // 错误
var str4 = `hello `nj``; // 错误
var str5 = "hello 'nj'"; // 正确
var str6 = `hello "nj"`;// 正确
  • 给变量加上引号, 那么变量将变为一个常量
var num = 110;
console.log(num); // 输出变量中的值
console.log("num"); // 输出常量num

Number类型

  • 在JS中所有的数值都是Number类型(整数和小数)
var num1= 123;
var num2= 3.14;
console.log(typeof num1); // number
console.log(typeof num2); // number
  • 由于内存的限制,ECMAScript 并不能保存世界上所有的数值

    • 最大值:Number.MAX_VALUE

      console.log(Number.MAX_VALUE);  // 1.7976931348623157e+308
      
    • 最小值:Number.MIN_VALUE
      console.log(Number.MIN_VALUE);  // 5e-324
      
    • 无穷大:Infinity, 如果超过了最大值就会返回该值
      console.log(Number.MAX_VALUE + Number.MAX_VALUE); // Infinity
      
    • 无穷小:-Infinity, 如果超过了最小值就会返回该值
       console.log(typeof Infinity); // numberconsole.log(typeof -Infinity); // number
      
    • NaN 非法数字(Not A Number),JS中当对数值进行计算时没有结果返回,则返回NaN
      var num3 = NaN;
      console.log(typeof num3); // number
      
  • Number类型注意点

    • JS中整数的运算可以保证精确的结果
    var sum1 = 10 + 20;
    console.log(sum1); // 30
    
    • 在JS中浮点数的运算可能得到一个不精确的结果
    var sum1 = 10.1 + 21.1;
    console.log(sum1); // 31.200000000000003
    

Boolean 布尔值

  • 布尔型也被称为逻辑值类型或者真假值类型
  • 布尔型只能够取真(true)和假(false)两种数值
var bool1 = true;
var bool2 = false;
console.log(typeof bool1); // boolean
console.log(typeof bool2); // boolean
  • 虽然Boolean 类型的字面值只有两个,但 ECMAScript 中所有类型的值都有与这两个 Boolean 值等价的值

    • 任何非零数值都是true, 包括正负无穷大, 只有0和NaN是false
    • 任何非空字符串都是true, 只有空字符串是false
    • 任何对象都是true, 只有null和undefined是false
var bool3 = Boolean(0);
console.log(bool3); // false
var bool4 = Boolean(1);
console.log(bool4); // true
var bool5 = Boolean(-1);
console.log(bool4); // true
var bool6 = Boolean(Infinity);
console.log(bool4); // true
var bool7 = Boolean(-Infinity);
console.log(bool4); // true
var bool8 = Boolean(NaN);
console.log(bool8); // false
var bool9 = Boolean(undefined);
console.log(bool8); // false
var bool10 = Boolean(null);
console.log(bool8); // false
var bool11 = Boolean("");
console.log(bool8); // false
var bool12 = Boolean("abc");
console.log(bool12); // true

Null和Undefined

  • Undefined这是一种比较特殊的类型,表示变量未赋值,这种类型只有一种值就是undefined
var num;
console.log(num);  //结果是undefined
  • undefined是Undefined类型的字面量

    • 前者undefined和10, "abc"一样是一个常量
    • 后者Undefined和Number,Boolean一样是一个数据类型
    • 需要注意的是typeof对没有初始化和没有声明的变量都会返回undefined。
var value1 = undefined;
console.log(typeof value); //结果是undefinedvar value2;
console.log(typeof  value2); //结果是undefined
  • Null 类型是第二个只有一个值的数据类型,这个特殊的值是 null
  • 从语义上看null表示的是一个空的对象。所以使用typeof检查null会返回一个Object
var test1= null;
console.log(typeof test1);
  • undefined值实际上是由null值衍生出来的,所以如果比较undefined和null是否相等,会返回true
var test1 = null;
var test2 = undefined;
console.log(test1 == test2);
console.log(test1 === test2);

学习交流方式:
1.微信公众账号搜索: 李南江(配套视频,代码,资料各种福利获取)
2.加入前端学习交流群:
302942894 / 289964053 / 11550038

03-JavaScript基础-数据及数据类型相关推荐

  1. JavaScript基础复习之数据类型,解读数据类型不为人知的一面

    <=> 朋友你好,这里是小毅的前端日记, 分享代码日常 ! <=> 本文目标:查缺补漏Javascript数据类型,解读数据类型不为人知的一面 <=> 卑微的大三前 ...

  2. javascript百炼成仙 第一章 掌握JavaScript基础1.4数据类型

    修行还在继续,随着对要诀的深入,叶小凡明白,在编程世界,刚才的直接量都属于一种数据.和人有男女一样,数据也是有类型的. 在JavaScript中,数据可分为两类,分别为原生数据类型(primitive ...

  3. JavaWeb -03 JavaScript基础

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1.JavaScript介绍 1.1 JavaScript简介 1.2 JavaScript发展史 1.3 JavaScri ...

  4. javascript 基础篇2 数据类型,语句,函数

    文章里如果有错误的话,希望能帮忙指正~我也是边看视频边学习中,这个算是个笔记吧~自认为总结出来的东西比看视频要节省点时间~能帮到别人最好了~帮不到也起码恩能帮到我自己 嘿~ 写内容之前废话一句:因为旧 ...

  5. javascript 基础知识1 数据类型

    首先javascript是一种具有面向对象能力的,解释型程序设计语言. js对大小写敏感,一定要采取一致的字符大小写形式,在js中的结束分号(:)是可选的,为了避免JS语句错误,我们还是要注意添加,养 ...

  6. Javascript 基础知识之数据类型

    2019独角兽企业重金招聘Python工程师标准>>> javascript是一种弱类型的脚本语言 1)var  param :(根据所赋值的类型确定变量类型,变量类型可以随意改变) ...

  7. JavaScript基础学习之数据类型(一)

    标识符命名规则   1.标识符中可以包含数字.字母._.$   2.标识符不能以数字开头   3.标识符不能是关键字获保留关键字   4.标识符一般都采用驼峰命名法           -首字母小写, ...

  8. javaScript基础面试题 --数据类型和考题

    简单数据类型和复杂数据类型 简单类型(基本数据类型.值类型):在存储时变量中存储的是值本身,包括string ,number,boolean,undefined,null 复杂数据类型(引用类型):O ...

  9. javascript技术教程蔡敏_程序员都必掌握的前端教程之JavaScript基础教程(上)

    阅读本文约需要10分钟,您可以先关注我们,避免下次无法找到. 本篇文章成哥继续带大家来学习前端教程之JavaScript,网页的动态事件基本上都是靠它来实现的.下面我们就一起来学习内容吧! 01 Ja ...

最新文章

  1. Nacos v0.7.0:对接CMDB,实现基于标签的服务发现能力
  2. 为什么我的elec352稍微有点崩
  3. 机器视觉技术及应用_工业机器人视觉技术的应用前景
  4. 信息学奥赛一本通(2071:【例2.14】平均分)
  5. 设计灵感|如何在海报设计中正确使用双色调风格?
  6. Hadoop HIVE JavaAPI
  7. LabView学习笔记(二):滤波器实验
  8. 读书:冯友兰的《中国哲学简史》
  9. 编程计算二叉树中某结点的层数
  10. 世界地图矢量文件shp格式获取/下载方法
  11. 遍历目录下的所有文件(文件)
  12. 开源音乐播放器_测试4个开源音乐播放器等
  13. 鹏业安装算量软件合并计算项目操作
  14. 第二章(1):时钟与同步接口
  15. python re 正则提取中文
  16. 微软认证(MTA)的java,js以及数据库考过了
  17. java设计模式之工厂模式(UML类图分析+代码详解)
  18. 一篇文章认识《双目立体视觉》
  19. Deep Face Recognition论文翻译
  20. 你离解决windows开机无法使用PIN登陆就差一步

热门文章

  1. FFmpeg解码音频代码
  2. 三星linux打印机驱动官网下载,三星SL-C515驱动
  3. 使用若依写微信小程序登录授权认证接口
  4. hadoop连接远程mysql_MySQL设置远程连接
  5. 倾斜模型精细化处理_基于倾斜摄影和近景摄影技术的实景三维模型结合(CC与 DPModeler结合)...
  6. Java反编译工具推荐 -- DJ Java Decompiler
  7. 小程序能打开html页面,小程序新功能直接打开网页
  8. 论破坏计算机信息系统罪,论破坏计算机信息系统罪
  9. 苹果app商品定价_苹果官网闹乌龙,千元产品变百元!多人闻风薅羊毛!
  10. Linux中MongoDB的安装