Javascript笔记——Javascript的基本数据类型

在Javascript数据类型分为两类:基本数据类型、引用数据类型。

  • 基本数据类型包括

    1.数值类型 Number
    2.布尔类型 Boolean
    3.字符类型 String
    4.未定义 Undefined
    5.空类型 Null

  • 引用数据类型包括
    1.数组 Array
    2.对象 Object
    3.函数 Function

typeof( )方法用来返回当前变量的类型,在文中有些地方会用到这个方法。

本章只简单介绍下js的基本数据类型,引用数据类型会在后面文章单独介绍。


1.Number类型

js中的数字只有一个类型就是Number类型,无论是整数还是浮点数都是属于Number类型的。函数Number( )可以把任意类型的变量转换为Number类型。

  • 整数
    Number表示整数可以是十进制、八进制、十六进制。
var intNum=55;//十进制
var octalNum=070;//八进制数,第一位必须是0,解析为56
var  octalNum=079;//无效的8进制数,9超过了8进制数的范围,解析为79
var hexNum=0xA;//十六进制数,前两位必须是0x,解析为10
  • 浮点数
    1、浮点数中必须包含一个小数点,且小数点后必须有一位数字。
    2、对极大极小的浮点数采用科学记数法表示。
var floatNum=3.14//浮点数
var floatNum=3.2e7//3.2×10(7次幂)
var floatNum=3.2e-7//3.2×10(-7次幂)
  • NaN
    1、NaN(Not a Number)是js中一个非常特殊的值,表示非数值的一个数值类型的变量。比如当把一个不含有任何数值的字符变量强制转化为数值类型时,该变量的值就会等于NaN。
    2、NaN有两个非常特殊的特点:任何涉及NaN的操作都会返回NaN;NaN值与任何值都不相等,包括本身。
    3、isNaN()函数,用来判断一个变量是不是不是一个数值类型,可以用来判断一个变量强制转换为数值类型时是不是为一个数。例如:
var stringNum="123";
var stringStr="abc";
isNaN(stringNum);//返回false
isNaN(stringStr);//返回true



2.String类型

String类型应该是js中最容易理解的数据类型了吧,不过String类型的方法有很多,后续会说到,任何东西都能放到String类型中,不过需要加引号,不论是单引号还是双引号,都必须是成对的出现



3.Boolean类型

Boolean只有两个类型的值:true、false
函数Boolean( )可以把任意类型的变量转换为Boolean类型。

转换规则:

数据类型转化为true转化为false
Number任何不为0的数0
String任何非空字符串“”空字符串
Undefined只会被转换成false
Null只会被转换成false



这些规则对理解流程控制语句有一定帮助,如if( )语句会把其中的变量自动转换为Boolean类型。



4.Null类型

1、null类型的默认值是null,表示空数据类型。
2、js中有一个常见的错误,就是Null用typeof( null )方法返回的类型为Object类型。

typeof null==="object";

但是在《JavaScript高级程序设计(第2版)》中,却不认为这是一个错误:
“从逻辑角度来看,null值表示一个空对象指针,而这正是使用typeof操作返回‘object‘的原因。”


在developer.mozilla中对null返回object有如下的解释:
“在 JavaScript 最初的实现中,JavaScript 中的值是由一个表示类型的标签和实际数据值表示的。对象的类型标签是0。由于 null 代表的是空指针(大多数平台下值为0x00),因此,null的类型标签也成为了0,typeof null就错误的返回了’object’.”

这个现象本来会在ECMAScript 6中被修复的, 正确的返回值将成为 typeof null === ‘null’。但是官方出于兼容性的考虑,目前该提议已被否决。



5.Undefined类型

undefined类型被认为是派生自null的,不严格的说二者都是指没有明确赋值的类型,但是细分之后,undefined类型,被用来形容未经初始化的变量,null类型被用来形容空对象指针。
如何区分undefined和null:

当一个变量声明后,未初始化,则该值为undefined,如果这个值是为了保存对象,则修改其默认初始化的值,改为null。 所以当检测其类型时,会显示类型为object。所以,如果定义的变量准备在将来用于保存对象(即复杂的数据类型object),那么就该将该变量初始化为null。

var a;
typeof a === 'undefined'; // 一个未定义的变量,或者一个定义了却未赋初值的变量.




关于js的基本数据类型就介绍到这里,下篇文章将讨论下js基本数据类型的转换和一些常用的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值