js数据类型

  ECMCScript中有5种简单的数据类型(基本数据类型);它们分别为undefinde,null,Boolean,Number和String.还有一种复杂的数据类型Object.

检验数据类型

用typeof来检测给定变量的数据类型
undefined(值未定义)
boolean(值是布尔值)
string(值是字符串)
number(值是数据)
object(值是对象或null)
function(值是函数)

Undefined类型

Undefined类型只有一个值的数据类型,就是undefined.就是在声明变量时,还未对变量初始化。如

var msg;
alert(msg == undefinded);//ture
alert(typeof msg);//undefined
alert(typeof a);//undefined

注意:未初始化的变量也包含undefined的值,但与未声明变量的值不一样

var msg;
alert(msg);//undefined
alert(a);//未声明的变量,这时会报错a is not defined
Null类型

Null类型也只有一个值的数据类型,就是null,表示空指针对象,所以要注意typeof操作检测的返回的是object.如

var a=null; 
alert(a);//null
alert(typeof a)  //object;
Boolean类型

Boolean类型有两个字面值true和false.注意,true和false要区分大小写,如True和False不是布尔类型的值,只是标识符。声明布尔值如

var a = true;
var b = false;

虽然Boolean只有两个字面量的值,但却是js中用的最多的一种类型。因为每种类型的值都有与这两个boolean值等价的值,要将这个值转成对应的布尔值。会自动调用Boolean()这个转型函数。如下

转换规则如下表

数据类型truefalse
Booleantruefalse
Undefinedundefined
Number非零数值0和NaN
String非空字符串空字符串
Object任何对象null

平常使用如

var msg = "Hello Javascript";
if(msg) {
alert("msg通过调用Boolean()类型转换方法的值为true")
}
Number类型

Number类型用来表示整数和浮点数值。
整数可以通过八、十、十六进制来表示。
其中:八进制:通过第一位必须是0,后面是八进制数字序列,即是(0-7);
十进制:
十六进制:前两位必须是0x,后面是十六进制的序列,即是(0-9)和(A-F)

var intNun = 20,//整数(十进制数)  20
	octalNum = 070,//八进制数  56
	hexNum = 0xff, //十六进制数 225

注意:如果八进制后面的数字序列超出范围,前导0会无效,把其看出十进制来处理如

var num = 079;//无效的八进制  变成79

浮点数数值必须包含一个小数点,且小数点后面至少有一位数字如

var floatnum1 = 20.3
	floatnum2 = 0.1,
	floatnum3 =  .1;//能省略0,但是不推荐这样写

浮点数可以用科学计数法 如

var num = 5.2e6;//等于5200000

注意:1. 如果小数点后面没有任何值,将会自动转为整数,应为储存浮点数的值要比整数的内存空间大两倍。如

var num = 520.0//解析为520

2.小数运算时,精确都不如整数,且存在bug,应该时十进制转二进制造成的。所以不要轻易用小数运算,应该用整数运算如

var a = 0.1, b = 0.2, c;
	c = a+b;
	alert(c);//结果为0.30000000000000004

整数运算如

var a=0.1, b=0.2, c;
c = (a*10+b*10)/10;
alert(c)://0.3

NaN时一个特殊的数值,用于表示要返回数值的操作未返回数值的情况。让代码不抛出错误,继续运行下去。它有两个特点:(1)任何涉及NaN的操作,都会返回NaN,(2)NaN与任何值都不相等,即使时NaN本身。如alert(NaN ==NaN)//false。所以会通过isNaN()来判断是否是”不是数值“。这个方法是尝试将传入的值转为数值,能就返回false,否则为true.

alert(isNaN(NaN));//true
alert(isNaN("abcd11));//true
alert(isNaN("10"));//false
alert(isNaN(10));//false
alert(isNaN(true));//false

isNaN方法是先调用对象的valueOf()方法,看看能不能转成数值,如果不能,通过这个返回值再调用toString()方法。所以alert(isNaN(“10”));为false

String类型

String类型用于表示由0或者多个16位的Unicode字符组成的字符序列,即字符串。可以用“双引号”,或者‘单引号’包起来。如

var name = "JavaScript";
var a = 'I like javaScript';
字符字面量

String数据类型包含着一些特殊的字面量,叫转义字符.。它们可以出现在字符串的任意位置,也可被作为一个字符来解析。如

var text = "This is a JavaScript text. \n";
alert(text.length);//28

这个例子中text有28个字符,其中转义字符表示一个字符。下面是常用的转义字符表。

字面量含义
\n换行符
\t制表符
\b退格符
\r回车
\\斜杠
\'单引号
\"双引号
##### 字符串的特点 注意:字符串是不可变的,这里说的不可变是改变字符串首先要销毁原来的字符串再创建新的字符串,而不能直接再原来的字符串上添加和修改。
var lang = "java";
lang = lang+"script";
alert(lang);//javascript

将变量转为字符串有两种方法,一种是直接和字串想加,包括空字符串即是" "(双引号)或者’ '(单引号)如

var a = 10+" ";//字符串10
      b = 20+"javascript";
alert(typeof a);//string
alert(b);//20javascript

另一种是用toString()方法,如

var a = 10,
	b = true,
	c = null,
	d = undefined;
	alert(a.toString());//字符串10
	alert(typeof a.toString());//string
	alert(b.toString());//字符串true
	alert(typeof b.toString());//string
	alert(c.toString());//报错
	alert(d.toString());//报错

注意,null与undefined没有toString方法,可以用转型函数String()将它们转为字符串。如

var a = 10,
	b = true,
	c = null,
	d = undefined;
	alert(String(a));"10"
	alert(String(b));"true"
	alert(String(c));"null'
	alert(String(d));'undefined'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值