js的数据类型
1、–简单(基本、值)数据类型
•Number、String、Boolean
•Undefined(变量声明,但未赋值)、Null
–复杂(引用)数据类型(暂时了解)
•Object、Array、Date等
内置对象 例如Date,Array,Math。RegExp,error,
查看当前变量的数据类型 typeof name、typeof(name)
(1)Number类型
•十进制
–varnum=9;
–进行算数计算时,八进制和十六进制表示的数值最终都将被转换成十进制数值。
•十六进制
–varnum=0xA;
–数字序列范围:0~9以及A~F
•八进制
–varnum1=07; //对应十进制的7
–varnum2=019
–;//对应十进制的19
–varnum3=08;//对应十进制的8
–数字序列范围:0~7
–如果字面值中的数值超出了范围,那么前导零将被忽略,后面的数值将被当作十进制数值解析
•浮点数
–var n = 5e-324;
•浮点数值的最高精度是17位小数,但在进行算术计算时其精确度远远不如整数
–var result= 0.1 + 0.2;// 结果不是0.3,而是:0.30000000000000004
–console.log(0.07 * 100);
–永远不要测试某个特定的浮点数值(不要判断两个浮点数是否相等)
数字范围
•由于内存的限制,ECMAScript并不能保存世界上所有的数值
•最小值:Number.MIN_VALUE,这个值为:5e-324
•最大值:Number.MAX_VALUE,这个值为: 1.7976931348623157e+308
•无穷大:Infinity
•无穷小:-Infinity
数值检测
•NaN非数值(Not aNumber)
–console.log(“abc”/18); //结果是NaN
–NaN与任何值都不相等,包括 NaN 本身
•isNaN() :任何不能被转换为数值的值都会导致这个函数返回true
–isNaN(NaN);//true
–isNaN(“blue”);//true
–isNaN(123); //false
(2)String类型
•字符串字面量
–var name = "zhangsan"; //"zhangsan"字面量
•字符串要用引号引起,单引号和双引号的作用是等效的
–例如:
•varname="zhangsan";
•varname='zhangsan';
•varname='zhangsan";//错误,单引号和双引号要成对出现
•字符串是由一个一个字符组成的,获取一个字符串中字符的个数可以使用length
–例如:varname="zs"; alert(name.length);//2
转义符
•要想打印"或者'怎么办?
–varstr="hello\"itcast\""; //打印输出hello"itcast"
•转义符
字符串的不可变
•ECMAScript中的字符串是不可变的,也就是说,字符串一旦创建,它们的值就不能改变。
•要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量
–例如:
•varstr = "123"; str = str + "abc";
字符串拼接
•如果有两个字符串变量a,b,如何把这两个变量的值连接起来?
–例如:
•vara="hello";
•varb="itcast";
•varc=a+b;
-思考:
•vara=“100";
•varb=100;
•varc=a-b; //结果是什么?
(3)Boolean类型
•Boolean类型有两个字面量:true和false,并且区分大小写!
•虽然Boolean类型的字面值只有两个,但ECMAScript中所有类型的值都有与这两个Boolean值等价的值
•例如:
var result = Boolean("a");
console.log(result); //结果是true
var result = Boolean(100);
console.log(result); //结果是true
转换成Boolean类型
•任何类型可以转换成Boolean类型,一般使用在流程控制语句后面
–例如:
varmessage="hello";
if(message){ alert(message+"world") };
(4)Undefined类型
•Undefined这是一种比较特殊的类型,表示变量未赋值,这种类型只有一种值就是undefined
–例如:
var message;
console.log(message); //结果是undefined
•undefined是Undefined类型的字面量。
–例如:
var message = undefined;
console.log(message);
•typeofmessage;获取到的是"undefined"
2、数值字面量
•字面量
–固定的值,让你从“字面上”理解其含义。
•数值字面量
var age=18; // 数值字面量,18为字面值