JavaScript数据类型

ECMAScript中,变量可以存放两种类型(简单数据类型和引用类型)的值,即原始值和引用值。

原始值是存储在中的简单数据段,也就是说,它们的值直接存储在变量访问的位置。
引用值是存储在中的对象,也就是说,存储在变量处的值是一个指针,指向存储对象的内存处。如果一个值是引用类型,那么它的存储空间将从堆中分配。

如图。

一、ECMAScript中有五种简单数据类型:Undefined、Null、Boolean、Number、String。
typeof操作符来检测变量的数据类型。

console.log(typeof object);//  类型返回的字符串是undefined


 <script type="text/javascript">
	var box;
	console.log(typeof box);//box是Undefined类型,值是undefined,类型返回的字符串是undefined
	var box = true;
	console.log(typeof box);//box是Boolean类型,值是true,类型返回的字符串是boolean
	var box = "Jack";
	console.log(typeof box);//box是String类型,值是Jack,类型返回的字符串是string
	var box = 12;
	console.log(typeof box);//box是Number类型,值是12,类型返回的字符串是number

	var box = {};//空的对象,表示这个对象已创建,但里面没有东西
	console.log(box);//box是Object类型,值是{},类型返回的字符串是object
	var box = null;//空对象,表示这个对象没有创建
	console.log(box);//box是Null类型,值是null,类型返回的字符串是object

	var box = function(){};
	console.log(typeof box);//box是Function函数,值是function(){},类型返回的字符串是function	
 </script>

1.undefined类型当使用var声明变量,但没有对其初始化时,这个变量的值就是undefined2.null类型只有一个专用值null,它表示一个空对象的引用(即指针)typeof检测null会返回object。3.boolean类型字面量上有两个值:true和false,但ECMAScript中所有类型的值都有与这两个Boolean值等价的值。

4.number类型有两种数值:整型和浮点型。有3个函数可以把非数值转换成数值:Number()、parseInt()、parseFloat().Number()可以用于任何数据类型,后面两个专门用于把字符串转换成数值。5.string类型toString()方法可以把值转换成字符串。:number类型的toString()方法转成字符串时,可以传递进制参数。eg:var box=10;    alert(box.toString(8));  / /12八进制输出ECMAScript中可使用强制类型转换处理转换值的类型。有三种:Boolean()、Number()、String().用这三个函数之一转换值,将创建一个新值,存放由原始值直接转换成的值。使用String()和toString()方法的唯一不同之处在于,对null和undefined值强制类型转换可以生成字符串而不引发错误。

二、引用类型有boolean、number、string、objectinstanceof操作符来检测引用值的数据类型。1.boolean对象和number对象:不常用。

补一个boolean对象的题:

var x = new Boolean(false);if (x) {  alert('hi');}var y = Boolean(0);if (y) {  alert('hello'); }的显示结果是?  / / hi

解析:当一个值为false的Boolean对象放到条件语句当中的时候,Boolean对象的值会被当作 true来计算,但是它本身的值并没有改变。这里x为Boolen对象,在if语句里的判断为true,虽然x的值为false。y为Boolen值,在if里的判断就是false值。

2.string对象string对象的所有属性和方法都可应用于string原始值上,因为它们是伪对象。包括3个属性和大量的可用内置方法。属性:length、constructor、prototype常用方法:1.字符方法:charAt(n):返回指定索引位置的字符charCodeAt(n):以Unicode编码形式返回指定索引位置的字符2.字符串位置方法:indexOf(str,n):从n开始搜索的第一个str,并将搜索的索引值返回lastIndexOf(str,n):从n开始搜索的最后一个str,并将搜索的索引值返回3.字符串操作方法::3个方法都不改变string对象自身的值。4.字符串的模式匹配方法

null和undefined的区别

null是一个表示"无"的对象,代表没有赋值的引用数据类型,转为数值时为0;

undefined是一个表示"无"的原始值,代表没有赋值的基本数据类型,转为数值时为NaN。undefined:(1)变量:

变量被声明但没赋值时,就等于undefined。(2) 函数:

调用函数时,应该提供的参数没有提供,该参数等于undefined;

函数没有返回值时,默认返回undefined。       (3)对象:

对象没有赋值的属性,该属性的值为undefined。null:(1)函数:作为函数的参数,表示该函数的参数不是对象。(2)对象:

作为对象原型链的终点。

把对象的引用设置为null,可以强制性的废除对象。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值