3.1.什么是数据类型

a. 什么是数据类型?

想从生活中出发:

考验智商的时刻到了:

1(只)+1(只)=1(双)

3(天)+4(天)=1(周)

5(月)+7(月)=1(年)

4(时)+9(时)=1(时)

6(盎司)+10(盎司)=1(磅)

在日常生活中,描述不同的东西,有不同的一些单位。

实际上,编程也是要解决我们生活中的问题,在程序中,如何描述这些内容呢。

针对不同的内容,根据其特性,需要用不同的单位(类型)加以描述,这就是数据类型的概念。

比如,描述人的时候:

姓名:小强

年龄:20;

b. 为什么要对数据进行分类?

就如垃圾分类一样,当对数据进行分类以后,可以方便管理以及方便操作。

c. 在js中,到底有哪些数据类型?

#3.2.数值类型(number)

作用:用来表示数字的,任何数字都可以使用数值类型。比如商品价格、年份、年龄等。

商品价格:9.9

年份:1952

年龄:99

number:整数,小数(浮点数),NaN;

img

#3.3.typeof

作用:typeof:检测数据类型的关键字

语法1:typeof v

语法2:typeof(v)

说明:v表示检测的数据;

返回值:typeof方法返回结果的数据类型是string;

即:两个typeof一定得到的是“string”

img

我们可以使用typeof 运算符来查看类型:

浮点数的多种写法 (3.14,.33333)(了解)

img

JavaScript算术运算的特殊性(溢出、被零整除都不会报错)(了解)

img

#特殊的NaN(重点)

NaN: not a Number,不是一个数值,但他是number 类型;

说明:1)NaN表示一个本来要返回数字,但是由于某种原因,没有返回成功,就用NaN表示。

2)NaN与任何值都不行等,包括其本身

3)NaN与其他任意值进行运算,都为NaN;

运算的不精确性(了解)

针对小数,运算具有不确定性。

img

在js中,千万不要去直接判断小数的运算之后是否相等。

如何解决这个判断的问题呢?

先转成整数,再进行计算,然后判断即可。

最佳实践:

ü 不要试图用==判断两个浮点数是否相等

#3.4.字符串类型

有一系列的字符构成的数据。

描述某个名称的,用户名、密码、籍贯等。

在使用字符串类型数据的使用,需要使用引号:

双引号:“”

单引号:‘’

如果没有引号,那么js就会将其当做变量来对待,如下:

img

注意:

ü 双引号和单引号要配对使用,不要出现如下情况:

1、一单一双使用

img

2、当js代码本身被引号所引用,然后在js代码中,又用到了字符串,如下:

img

由于hello,本身是字符串,但是没有引号引用,它被js当做变量来理解,但是这个又没有定义过,所以报上述错误。

再如:

img

3、由于js中,引号要配对使用,上述刚好违背了这个原则,导致错误。

4、看正确的写法:

img

5、有时候,需要输出特定的一些符号,js为我们提供了转义字符的用法,如下:

img

使用\n,之后,如下:

img

Js中,常用的转义字符如下:

#3.5.布尔类型 boolean

只有两个值:

ü **true ** :真

ü **false ** :假

在js中,严格区分大小写。

一般会在判断(条件、循环)等语句中来使用。

基本使用如下:

我们有可以使用typeof 运算符来获取布尔值的类型。

#3.6.undefined

面试经典题目:undefined和null是什么意思,有什么区别没有?

undefined:un前缀+ defined,未定义的。

**1 ** **、**如果一个变量,通过var声明了,但是没有赋值,则会出现如下提示:

img

**2.**检测没有赋值的变量的类型

**3 ** **、**如果一个变量,没有通过var声明,直接就访问,会出现如下错误:

img

**4、**检测没有声明变量的类型;

img

说明变量,只要声明,就是存在的。

就看是否赋值了,如果没有赋值,那么它的值是undefined,并且它的数据类型也是undefined。

换句话说,undefined是js中的一种数据类型,它只有一个值,就是undefined。

#3.7.null:空类型;

在使用的时候,需要显式的赋值为null,才可以的。

img

作用:

当将来需要存储一个对象的时候,可以给其初始值赋为null;

或者说需要销毁某个对象,也可以将其赋值为null。

**Undefined ** 和null的区别:

ü undefined是针对普通的变量而言的。

ü null针对对象而言的。

它们的值其实是相等的。就是类型不一样。null==undefined

注意:null是一种特殊的object类型,故

img

为什么有两个东西?

和历史有关。(了解)

刚开始的时候,只有null,用来表示初识值为空的情况。

Js不是纯面向对象的,里面还有很多变量和函数的概念,发现使用对象的方式去描述普通的变量,是不合适的,所以后来又添加了一个undefined,专门用来描述变量和函数的。

#3.7.引用类型

引用类型,其实就是对象,即object (在第十四单元有讲解)

首先,有两个非常特殊的对象:

ü 数组,array

ü 函数,function

#小结:

\1. js中数据分为5种基本数据类型和引用类型

\2. 5种基本数据类型分别是 number string boolean null undefined

\3. typeof是检查数据类型的关键字,可以有两种写法 typeof v typeof(v)

\4. typeof方法返回结果的数据类型是string

js上 三、数据类型的更多相关文章

  1. js上三行下三行和添加多个附件

    function addTr(num) { no ++; var obj = document.getElementById(tableID); var oneRow = obj.insertRow( ...

  2. 如何判断js中的数据类型?

    js六大数据类型:number.string.object.Boolean.null.undefined string: 由单引号或双引号来说明,如"string" number: ...

  3. js的基本数据类型有哪些?

    js的基本数据类型有哪些? ECMAScript中有5中简单数据类型(也称为基本数据类型): Undefined.Null.Boolean.Number和String.还有1中复杂的数据类型----O ...

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

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

  5. js基础--javaScript数据类型你都弄明白了吗?绝对干货

    欢迎访问我的个人博客:http://www.xiaolongwu.cn 数据类型的分类 JavaScript的数据类型分为两大类,基本数据类型和复杂数据类型. 基本数据类型:Null.Undefine ...

  6. Javascript高级编程学习笔记(3)—— JS中的数据类型(1)

    前一段时间由于事情比较多,所以笔记耽搁了一段时间,从这一篇开始我会尽快写完这个系列. 文章中有什么不足之处,还望各位大佬指出. JS中的数据类型 上一篇中我写了有关JS引入的Script标签相关的东西 ...

  7. Python-JS (JS介绍~JS的基础数据类型)

    目录一.JS语言介绍: 1.JS概念 2.JS组成 二.JS的三种存在位置(引入方式): 1.行间式: 2.内联式: 3.外联式: 三.JS出现的具体位置: 四.JS语法规范 五.JS中变量的定义 E ...

  8. 使用ajaxfileupload.js上传文件

    一直以来上传文件都是使用form表单上传文件,也看到过有人使用js上传文件,不过看起来蛮简单的也就没有怎么去理会.今天突然要使用这种方式上传文件,期间还遇到点问题.因此就记录下来,方便以后遇到这样的问 ...

  9. js中的数据类型及其转换

    Js中的数据类型 Js中的数据类型一共有六种,即number,string,boolean,underfine,null,object. 一,number Number数据类型指的是数字,可以为整型, ...

随机推荐

  1. Golang 实现 Redis(6): 实现 pipeline 模式的 redis 客户端

    本文是使用 golang 实现 redis 系列的第六篇, 将介绍如何实现一个 Pipeline 模式的 Redis 客户端. 本文的完整代码在Github:Godis/redis/client 通常 ...

  2. 阿里面试官:小伙子,你给我说一下Spring Bean初始化的几种常规方式吧

    前言 通过构造方法实例化通过静态工厂实例化通过实例工厂实例化通过FactoryBean实例化 RumenzA实体类 package com.rumenz; public class RumenzA { ...

  3. CA证书与https讲解

    最近面试问到这个问题,之前了解过但答的不是很好,再补充补充一下https方面的知识. 备注:以下非原创文章. CA证书与https讲解 1.什么是CA证书. ◇ 普通的介绍信 想必大伙儿都听说过介绍信 ...

  4. 用Camtasia设计微课视频封面,让课程更加高大上

    在网络时代,尤其现在疫情影响只能线上学习,微课的应用前景已经越来越广了.但是想把微课做好,只有内容与录制精细是不够的,还需要一个精美的封面来吸引学生.接下来,小编就用微课制作软件Camtasia 20 ...

  5. web自动化 下拉框、切换到新窗口

    一.下拉框 相信大家在手动测试web页面时,遇到过下拉框吧,那进行web自动化测试时,如何操作下拉框,且看下文 1.selenium中提供了方法,先导入Select方法 from selenium.w ...

  6. Jsoup获取网页内容(并且解决中文乱码问题)

    1. 根据连接地址获取网页内容,解决中文乱码页面内容,请求失败后尝试3次 private static Document getPageContent(String urlStr) { for (in ...

  7. 本地VM安装虚拟机,使用xshell连接

    首先把VM设置成上面那样 在ubuntu里面安装ssh apt-get install openssh-server 启动服务 /etc/init.d/ssh startifconfig 查看ip x ...

  8. 再也不用担心问RecycleView了——面试真题详解

    关于RecycleView,之前我写过一篇比较基础的文章,主要说的是缓存和优化等问题.但是有读者反映问题不够实际和深入.于是,我又去淘了一些关于RecycleView的面试真题,大家一起看看吧,这次的 ...

  9. 【HAOI2015】树上操作

    (题面来自洛谷) 题目描述 有一棵点数为 N 的树,以点 1 为根,且树点有边权.然后有 M 个操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a . 操作 2 :把某个节点 x 为根的子树 ...

  10. sharding事务。

    我们这么操作: 本地事务,但是会发现如果有异常两边都回滚了.看代码如下: rollback看一看: cachedConnections中缓存了2个connection. 对于每个connection调 ...