前言

JavaScript一共有6中数据类型:

基本数据类型(5):字符串(String)、数字(Number)、布尔(Boolean)、数组(Array)、空(Null)、未定义(Undefined)

复杂数据类型(1):对象(Object)

注意:Array、Date、Math、Error Set(ES6).....都是属于Object中

一、JS数据类型概述

1.1 简介



原始类型(基本类型):按值访问,可以操作保存在变量中实际的值。

原始类型汇总中null、undefined比较特殊。

引用类型:引用类型的值是保存在内存中的对象。

与其他语言不同的是,JavaScript不允许直接访问内存中的位置,也就是说不能直接操作

对象的内存空间。

在操作对象时,实际上是在操作对象的引用而不是实际的对象。所以引用类型的值是按引用

访问的。

1.2 typeof 操作符

由于js中的变量是松散类型的,所以它提供了一种检测当前变量的数据类型的方法,也就是typeof关键字。

关键字 类型
typeof 123 Number
typeof 'abc' String
typeof true Boolean
typeof undefined Undefined
typeof null Object
typeof { } Object
typeof [ ] Object
typeof console.log() Function

null类型进行typeof操作符后,结果是object,原因在于,null类型被当做一个空对象引用。

二、原始类型

2.1 Number类型

  • Number类型包含整数和浮点数(浮点数数值必须包含一个小数点,且小数点后面至少有一位数字)两种值。
  • js不区分 整型和 浮点型

特殊值 NaN (非数字类型)

  • NaN跟任何值进行任何运算,结果仍然NaN.跟谁都不相等,包括自己。
  • 特点

    ① 涉及到的 任何关于NaN的操作,都会返回NaN

    ② NaN不等于自身。
  • isNaN() 函数用于检查其参数是否是非数字值。

    isNaN(123) //false isNaN("hello") //true

一般NaN被动产生(数据类型转为Number,不能转为正常的数字,就是NaN)

函数 isNaN() 判断是不是NaN或者能不能转换为NaN

使用实例:


//数字
var n1 = 10234;
var n2 = 0x12; //十六进制
var n3 = 2e2; //科学计数法(小学知识) console.log(n1,n2,n3) //浮点精度问题
console.log(.1 + .2); //NaN 表示Not a number console.log(NaN)
console.log(typeof(NaN)) //NaN的数据类型依然是number //NaN 跟 任何值(包括0) 进行任何运算 结果依然是NaN
console.log(NaN * 0); //结果是NaN //NaN跟谁都不相等
console.log(NaN == NaN) //结果是false var num = 2344e1000; console.log(typeof(num)) //结果是infinity即无穷大
console.log(num) //数据类型依然为number console.log(isNaN(NaN)) //true
console.log(isNaN('hello')) //true
console.log(isNaN('123')) // false 字符串'123' 转为number 的时候 是 123 不是NaN

2.2 String类型

  • 字符串是存储字符(比如 "Bill Gates")的变量。
  • 字符串有length属性
  • 字符串可以是引号中的任意文本。您可以使用单引号或双引号(没有区别)。
  • 您可以在字符串中使用引号,只要不匹配包围字符串的引号即可。
var answer="It's alright";
var answer="He is called 'Johnny'";
var answer='He is called "Johnny"';

2.3 Boolean类型

布尔(逻辑)只能有两个值:true 或 false。

var x=true;
var y=false;

2.4 Null类型 和 Undefined类型

  1. Null类型

    被动产生

    null类型被看做空对象指针,前文说到null类型也是空的对象引用。

2)Undefined类型

只有一个值,即undefined值。使用var声明了变量,但未给变量初始化值,那么这个

变量的值就是undefined.

Undefined 这个值表示变量不含有值。

可以通过将变量的值设置为 null 来清空变量。

cars=null;
person=null;

二、三大引用类型

js中对象是一组属性与方法的集合。这里就要说到引用类型了,引用类型是一种数据结构,

用于将数据和功能组织在一起。引用类型有时候也被称为对象定义,因为它们描述的是一类

对象所具有的属性和方法。

2.1 Object类型

我们看到的大多数类型值都是Object类型的实例,创建Object实例的方式有两种:

1)第一种是使用new操作符后跟Object构造函数

var person = new Object();
person.name = "Micheal";
person.age = 24;

2)第二种方式是使用对象字面量表示法

对象由花括号分隔。在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义。

属性由逗号分隔

var person = {
  name : "Micheal",
  age : 24
};

寻址的两种方式:

name=person.name;
name=person["name"];

2.2 Array类型

数组的每一项可以用来保存任何类型的数据,也就是说,可以用数组的第一个位置来

保存字符串,第二个位置保存数值,第三个位置保存对象....另外,数组的大小是可

以动态调整的。

创建数组的基本方式有两种:

1)第一种是使用Array构造函数

var colors = new Array("red","blue","yellow");
var cars=new Array();
cars[0]="Saab";
cars[1]="Volvo";
cars[2]="BMW";

2)第二种是使用数组字面量表示法

var colors = ["red","blue","yellow"];

2.3 Function类型

每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法。

函数通常是使用函数声明语法定义的,如下所示

function sum(num1,num2){
  return num1 + num2;
};

这和使用函数表达式定义函数的方式相差无几

var sun = function (){
  return sum1 + sum2;
};

注意:

当您声明新变量时,可以使用关键词 "new" 来声明其类型:

 var carname=new String;
var x= new Number;
var y= new Boolean;
var cars= new Array;
var person= new Object;

JavaScript 变量均为对象。当您声明一个变量时,就创建了一个新的对象。

提示:JavaScript具有隐含的全局概念,意味着你不声明的任何变量都会成为一个全局对象属性。

JavaScript之JS的数据类型的更多相关文章

  1. Python--前端基础之JavaScript(JS的引入方式,JS的变量、常量和标识符,JS的数据类型,运算符,流程控制,JavaScript的对象)

    JavaScript介绍 JavaScript是运行在浏览器端的脚步语言,JavaScript主要解决的是前端与用户交互的问题,包括使用交互与数据交互. JavaScript是浏览器解释执行的,前端脚 ...

  2. JavaScript知识 一、JS的数据类型

    一.JS的数据类型 1.基本类型 JS共有5大基本类型,分别是: 1)Undefined.他只有一个值:undefined.如果一个变量被定义但是没有给他赋值,那么这个时候系统会默认给这个变量赋值为u ...

  3. JavaScript笔记1———js的数据类型

    JS的数据类型有: 1.数值类型(Number):js中所有数字均用浮点数字表示. 可以表示32位(即4字节)的整数,也可以表示64位(即8字节)的浮点数(小数). 也可以用二进制.八进制.十进制.十 ...

  4. JS中数据类型及原生对象简介

    js是一种专门设计用来给网页增加交互性的编程语言,它的技术体系包含了一下几个方面: 1.JavaScript核心语言定义:包括数据类型,变量,常量,运算符,语句等. 2.原生对象和内置对象 3.浏览器 ...

  5. JavaScript(JS)基本语法(一)

    https://www.cnblogs.com/haiyan123/p/7577598.html 一.JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入 ...

  6. 阅读:重新介绍 JavaScript(JS教程)

    这篇文章是记录自己阅读重新介绍 JavaScript(JS 教程)的记录和个人体会 在线调试代码工具:https://codepen.io/pen 引言 分歧根源:名字Javascript和Java有 ...

  7. JavaScript(JS)之简单介绍

    一.JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名ScriptEase.(客户端执行的语言) N ...

  8. JavaScript(JS)简介

    历史背景介绍 (Brendan Eich)在其Netscape Navigator 2.0产品中开发出一套livescript的脚本语言.Sun和Netscape共同完成.后改名叫Javascript ...

  9. js的数据类型--数字

    近期做一些项目的时候发现,自己的js基础还是不够扎实,再看一遍犀牛书,加深自己的理解和印象.所以从这篇文章开始,后面都是关于原生js的一些内容. 这篇文章,我们具体介绍一下js的数据类型其中一种. j ...

随机推荐

  1. python字符串与列表的相互转换

    学习内容: 1.字符串转列表 2.列表转字符串 1. 字符串转列表 s ='hello python !'li = s.split(' ') #注意:引号内有空格print (li)输出:['hell ...

  2. std::string 用法总结

    标准C++中的string类的用法总结 相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用.但是如果离开了MFC框架,还有 ...

  3. 通过pip安装python web

    提示 No module named 'utils' 我就pip install utils 提示 No module named 'db' 然后我就 pip install db 报错 No mod ...

  4. pip的基本使用

    pip的基本使用 1.pip简介 pip 是一个现代的,通用的 Python 包管理工具.提供了对 Python 包的查找.下载.安装.卸载的功能 pip是官方推荐的安装和管理Python包的工具,用 ...

  5. IIS7常见错误及解决方法

    IIS7常见错误及解决方法   问题一:HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效.  详细错误信息模块 IIS We ...

  6. 微信公众号申请+新浪SAE申请

    一. 新浪SAE服务申请 1. 注冊地址:http://t.cn/RqMHPto 2. 选择控制台>>云应用SAE 3. 创建新应用 4. 填写域名 5. 代码管理选择SVN 6. 创建版 ...

  7. Spring Boot中使用Swagger2自动构建API文档

    由于Spring Boot能够快速开发.便捷部署等特性,相信有很大一部分Spring Boot的用户会用来构建RESTful API.而我们构建RESTful API的目的通常都是由于多终端的原因,这 ...

  8. AxWindowsMediaPlayer控件的使用

    首先要知道如何将控件添加到工具箱中,步骤如下: “工具箱”中单击右键,选择“选择项”菜单,打开“选择工具箱项”窗口,选择“COM组件”标签,在列表中找到并勾选“Windows Media Player ...

  9. C语言结构体变量私有化

    操作系统 : CentOS7.3.1611_x64 gcc版本 :4.8.5 问题描述 C语言结构体定义中的变量默认是公有(Public)属性,如果实现成员变量的私有(Private)化? 解决方案 ...

  10. C#版Websocket实例

    C#版Websocket实例   Demo地址:www.awbeci.xyz websocket有java.nodejs.python,Php等等版本,我使用的是C#版本,服务器端是Fleck,git ...