JavaScript中的数据类型
JavaScript中的数据类型
JavaScript 不支持任何创建自定义类型的机制,所有值都成为以下数据类型之一。
在 JavaScript 中有 5 种不同的数据类型:
l string 字符串。最抽象的数据类型,信息传播的载体
l number 数值。最原始的数据类型,表达式计算的载体
l boolean 布尔值。最机械的数据类型,逻辑运算的载体
l function 函数
3 种对象类型:
l Object 对象
l Date 日期
l Array 数组
2 个不包含任何值的数据类型:
l null 空、无。表示不存在,当为对象的属性赋值为null,表示删除该属性
l undefined 未定义。当声明变量却没有赋值时会显示该值。可以为变量赋值为undefined
本章将主要介绍string number Boolean null undefined几种简单类型,而对于对象类型、数组类型和函数等在后面的章节单独介绍。
Number类型
Number 类型包含两种数值:整型和浮点型。为了支持各种数值类型,Js定义了不同的数值字面量格式。
l 整型
最基本的数值字面量是十进制整数。
var box = 100; //十进制整数
八进制数值字面量,(以 8 为基数),前导必须是0,八进制序列(0~7)。
var box = 070; //八进制,56
var box = 079; //无效的八进制,自动解析为 79
var box = 08; //无效的八进制,自动解析为 8
十六进制字面量前面两位必须是 0x,后面是(0~9及 A~F)。
var box = 0xA; //十六进制,10
var box = 0x1f; //十六进制,31
l 浮点类型
浮点类型,就是该数值中必须包含一个小数点,并且小数点后面必须至少有一位数字。
var box = 3.8;
var box = 0.8;
var box = .8; //有效,但不推荐此写法
由于保存浮点数值需要的内存空间比整型数值大两倍,因此 JS 会自动将可以转换为整型的浮点数值转成为整型。
var box = 8.; //小数点后面没有值,转换为 8
var box = 12.0; //小数点后面是 0,转成为12
对于那些过大或过小的数值,可以用科学技术法来表示(e 表示法)。用e 表示该数值的前面10 的指数次幂。
var box = 4.12e9; //即 4120000000
var box = 0.00000000412; //即 4.12e-9
虽然浮点数值的最高精度是 17 位小数,但算术运算中可能会不精确。由于这个因素,做判断的时候一定要考虑到这个问题(比如使用整型判断)。
alert(0.1+0.2); //0.30000000000000004
l 特殊的数值
正无穷大:Infinity [ɪnˈfɪnəti]
例如:alert(5/0);
负无穷大:-Infinity
NaN:表示一个非数字的特殊值,与任何数值都不相等,与它自己也不相等。需要用函数isNaN( )来检测这个值。当算术运算产生了未定义的结果或错误时,就会产生该值。
例如:alert(parseInt(“aa”));
l 使用Number对象的几个属性可以获得几个特殊的数值:
i. Number.MAX_VALUE 可以表示的最大数字
使用Number对象的MAX_VALUE可以获取当前的最大值,如下例:
ii. Number.MIN_VALUE 可以表示的最小数字
iii. Number.NaN 特殊的非数字值
iv. Number.POSITIVE_INFINITY 表示正无穷大的特殊值 如,1/0
v. Number.NEGATIVE_INFINITY 表示负无穷大的特殊值
l 数字的使用:
+ - * / %
Math对象中保存的函数,如Math.sin(); Math.sqrt();
String 类型
1、String类型用于表示由零或多个 16位 Unicode字符组成的字符序列,即字符串。字符串可以由双引号(“)或单引号(‘)表示。
2、javascript中没有char类型,要表示单个字符,必须使用长度为1的字符串。
var box = ‘Zhen’;
var box = “Zhen”;
3、PS:在某些其他语言(PHP)中,单引号和双引号表示的字符串解析方式不同,而JS中,这两种表示方法没有任何区别。但要记住的是,必须成对出现,不能穿插使用,否则会出错。
var box = ‘王麻子”; //出错
4、由单引号定界的字符串可以含有双引号,由双引号定界的字符串可以含有单引号。
如:”大家好我叫’Kitty’”
5、String类型包含了一些特殊的字符字面量,也叫转义序列。反斜杠是一个转义字符。 转义字符将特殊字符转换为字符串字符。
转义字符 (\) 可以用于转义撇号,换行,引号,等其他特殊字符。
下表中列举了在字符串中可以使用转义字符转义的特殊字符:
\0 空NUL字符
6、字符串直接量必须写在一行中,如果将它们放在两行中,可能会将它们截断。如果必须在字符串直接量中添加一个换行符,可以使用字符序列\n。 如,”大家好我叫\n’Kitty’”
i. 说明该换行符可以用在消息提示框中
alert(“hello\nzhangsan”);
ii. 如果使用document.write( )语句输出时,换行符应该使用
document.write(“hello
zhangsan”);
7、JavaScript中的字符串是不可变的,也就是说,字符串一旦创建,它们的值就不能改变。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量。
var box = ‘Mr.’; box = box + ‘ Wang’; |
8、字符串的使用
a) 加号(+)运算符:将两个字符串连接起来,将第二个字符串附加到第一个之后。
b) 求字符串的长度:字符串.length
例如:
c) 获取指定位置的字符:字符串.charAt(下标)
d) 求子串:字符串.substring(起始位置,终止位置);截出的子串中不包括结束位置的字符。 第2个参数可以省略。
e) 查找子串在字符串中的位置:字符串.indexOf(‘子串’);
f) 字符串和数组一样,都是以0开始索引的。
例子:
//javascript中定义变量使用:var变量名
var s=”hello”+”world!”; //连接
alert(s.length+” “+s.charAt(4)+” “+s.substring(0,3)+” “+s.indexOf(“world”));
Boolean类型
Boolean 类型有两个值(字面量):true和 false。而true 不一定等于1,false不一定等于 0。
JavaScript 是区分大小写的,True和 False或者其他都不是 Boolean类型的值。
var box = true;
undefined类型
在使用var声明变量,但未对其加以初始化时,这个变量的类型就是undefined,且其默认初始化值为undefined。
对未声明与初始化的变量,直接使用,那么这个变量的类型也是undefined,但是没有默认初始化值。
说明:上面的message变量和age变量还是有区别的。参见,下面的代码:
null类型
null类型的默认值是null,从逻辑角度讲,是表示一个空对象指针。
Null 类型是一个只有一个值的数据类型,即特殊的值 null。它表示一个空对象引用(指针),而typeof 操作符检测null 会返回object。因此,null更像是object类型可取的一个值。
var box = null;
alert(typeof box);
如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为 null。这样,当检查null 值就知道是否已经变量是否已经分配了对象引用了。
var box = null;
if (box != null) {
alert(‘box 对象已存在!’);
}
有个要说明的是:undefined 是派生自 null 的,因此JS中规定对它们的相等性测试返回true。
alert(undefined == null);
由于 undefined 和 null 两个值的比较是相等的,所以,未初始化的变量和赋值为null 的变量会相等。
例如:
undefined 表示未定义或定义了未赋值。而null表示给变量赋值了一个空引用,空指针,表示对不存在的对象的引用,因此null属于object类型。
还没有评论,来说两句吧...