JS的基本数据类型,特殊数据类型和引用数据类型

JavaScript的数据类型分类

  • 基本数据类型:Number,String,Boolean
  • 特殊数据类型:Null,Undefined,NaN
  • 引用数据类型:数组,对象,函数等等

我们可以使用typeof函数来检测一个数据的数据类型

<script >
 	var message = "some string";
 	console.log(typeof message); //"string"
 	console.log(typeof 95); //"number"
 	console.log(typeof typeof 95);	//string
 </script>

所有的数据类型都属于String类型
例如number,Boolean,string这些类型再次使用typeof检测都是属于Sting类型的

undefined

Undefined 类型只有一个值,即特殊的 undefined
在使用 var 声明变量但未对其没有赋值时,这个变量的值就是 undefined

Null

null类型是第二个只有一个值的数据类型,这个特殊的值是 null

undefined和Null的区别

null
  • 用来描述空值
  • typeof null:返回的是字符串object
  • 通常我们是吧null看成它自有类型的唯一成员
undefined
  • undefined表明只声明了变量没有赋值
  • 如果这个函数没有返回值,则返回undefined
  • typeof undefined返回的字符串是undefined
  • 双等号认为null和undefined是相等的,但是三等号则返回false

Boolean

Boolean 类型是 ECMAScript 中使用得最多的一种类型,该类型只有两个字面值: true 和false

注意:Boolean 类型的字面值 true 和 false 是区分大小写的。也就是说,True 和 False(以及其他的混合大小写形式)都不是 Boolean 值,只是标识符

Number

用来表示整数和浮点数值(浮点数值在某些语言中也被称为双精度数值)。为支持各种数值类型, ECMA-262 定义了不同的数值字面量格式。

由于内存的限制, ECMAScript 并不能保存世界上所有的数值。 ECMAScript 能够表示的最小数值(绝对值)保存在 Number.MIN_VALUE 中——在大多数浏览器中,这个值是 5e-324;能够表示的最大数值(绝对值)保存在Number.MAX_VALUE 中——在大多数浏览器中,这个值是 1.7976931348623157e+308。

如果某次计算的结果得到了一个超出 JavaScript 数值范围的值,那么这个数值将被自动转换成特殊的 Infinity 值。具体来说,如果这个数值是负数,则会被转换成-Infinity(负无穷),如果这个数值是正数,则会被转换成 Infinity(正无穷)

NaN

即非数值(Not a Number)是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)

注意:只有0除以0才会返回NaN,正数除以0返回Infinity,负数除以0返回-Infinity

NaN自身有两个特点

  1. 任何涉及NaN的操作都会返回NaN,这个特点在多不计算中有可能导致
  2. NaN与任何值都不相等,包括NaN本身

String

字符串可以由双引号(")或单引号(')表示

var name = "lili";
var name1 = 'ben';

注意:用双引号就只能用双引号,用单引号就只能用单引号,不可以一半用单引号,一半用双引号

object

ECMAScript 中的对象其实就是一组数据和功能的集合。对象可以通过执行 new 操作符后跟要创建的对象类型的名称来创建。而创建 Object 类型的实例并为其添加属性和(或)方法,就可以创建自定义对象

var o = new Object;//var o={}
//为实例添加属性并赋值
o.name = "张三";
o.age = 20;
var o={
    name:"张三",
    age:20
}
var person = { 
		name:'张三', 
		age:20,
		say:function(){ 
			console.log('大家好');
		 }
 } 

对象之间用逗号隔开,最后一个对象就不需要逗号了

通过点来访问对象的属性:person.name;
通过点来访问对象的方法:person.say();

原始值与引用类型

  1. 不可变的原始值
  • 任何方法都无法更改一个原始类型的值:数字,字符串,布尔值,null,undefined
  • 对字符串类型的修改操作,只会返回一个新的字符串,原始字符串不会被修改
  • 原始值在做比较时,只要值相等,他们就是相等的
  1. 可变的对象引用:数组,对象,函数等等
  • 对象即引用类型的值是可以修改的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值