1)基本类型
---数字,采用IEEE754标准定义的64位浮点格式.
特殊数值常量:
Infinity 无穷大的特殊值
NaN 非数字值
Number.MAX_VALUE 可表示的最大数字
Number.MIN_VALUE 可表示的最小数字
Number.NaN 非数字值
Number.POSITIVE_INFINITY 正无穷大
Number.NEGATIVE_INFINITY 负无穷大
把数字转为字符串6种方式
var n = 1.23456;
var n_as_str = n+"";
String(n);
n.toString(x); //x=2,binary; x=8, octonay; x=16,hexadecimal.if empty,decimal
n.toFixed(x); //小数点后位数
n.toExponential(x); //显示指数形式,x表示小数位
n.toPrecision(x); //若n位数>x时显示为指数,x表示数字的精度
---字符串
字符串转为数字
在数字环境,自动转换为数字,
var num = "2" * "3"; //num = 6
var num = str_val - 0;
var num = Number(str_val); //以10为基数的数字有效,允许开头和结尾的空白
parseInt(str)
parseInt(str,radix) //the same with java
parseFloat(str)
---布尔
显式转换的方法
var x_as_boolean = Boolean(x);
var x_as_boolean = !!x;
---null
表示"无值".
对象转换:布尔环境式时,非空对象为false;字符串环境时"null";数字环境时0;
---undefined
使用未声明的变量时,或使用声明但没有赋值的变量时,或使用不存在的对象属性时,返回
undefined.
对象转换:布尔环境式时,非空对象为false;字符串环境时"undefined";数字环境时NaN;
与null区别:
null是关键字,undefined不是.(ECMAScript v3定义了undefined的全局变量,初始值是undefined)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>null and undefined</title>
</head>
<body>
<p>比较null与undefined</p>
<script>
var undef;
document.write("布尔环境: ")
document.write(undef==null); //true
document.write("<br/>");
document.write("字苻串环境: ")
document.write("".undef); //undefined
document.write("<br/>");
document.write("数字环境: ")
document.write(1+undef); //NaN
document.write("<br/>");
document.write("undef===null: ")
document.writeln(undef===null); //false
document.write("<br/>");
document.write("typeof undef: ")
document.writeln(typeof undef); //undefined
</script>
</body>
</html>
2)复合类型
对象:已命名的数据的集合
对象直接量:由一个列表构成.列表的表式形式,{key:value,*};(key=标识符/字符串,value=常量/表达式)
对象转换:布尔环境式时,非空对象为true;字符串环境时,toString();数字环境时,valueOf();
数组
不直持多维数组,数组元素可以是数组;
数组元素不必据有相同的类型
3)特殊对象
函数
一般语法,function func_name(args) {func_body;}
lambda函数,function(args){func_body;}
构造函数,new Function("args","func_body");
*说明
计划以后在note目录下发布些整理的笔记,好记心不如烂笔头.主要为了方便自己查找,若读者看了觉得哪儿理解不对,请指教.
这篇是关于javascript的数据类型,主要内容来自"javascript权威指南".
转自:http://www.cnblogs.com/bronte/articles/2309191.html
1.js的数据类型有:
数值(不区分浮点和整形)、字符串、bool型,数组、对象、null、undefined,date,Error型和正则表达式。其实三种基本上数据类型有其包装对象,分别是Number,String,和Boolean。正则表达式RegExp对象有一个直接量语法。可以直接编码到javascript程序中,它和Date类型一样,只不过是JS实现的一种特殊数据类型。
JS的内置对象有很多:Function,Array,Date,String,如果该内置对象加上一个括号,那么它们又变成了JS的预定义构造函数。
2.JS的字符串处理函数
length;
charAt(index); //获取一个单一的字符
substring(start,end); //获取子字符串
indexof('a'); //查找
3.null的特性:
null转发为bool型是为false,转化为数字型为0,只有用于字符串环境时,它才转换为null。
4.undefined
写JS代码的时候容错处理经常遇到undefined,和typeof一起用。它一般出现在下列三种情况。
4.1使用了没有声明的变量。
4.2 已经声明但是没有赋值。
4.3 使用了并不存在的对象属性。
5.数字和字符串的相互装换
两者转换用三种形式。
1.隐身转换。数字+“”可以把数字转换为字符串;字符串-0可以转换为数字,同时字符串在数字环境中运算,也会自动转换为数字。
·2.强者转换,number.tostring,String(number),Number(string)都可以转换。
·3.函数转换,toFixed,toPrecison,toExponential,parseInt,parseFloat 都可以装换。
6.基本类型的传值和传地址
基本上这两个运算用在拷贝,参数传递,和比较上。
一般基本上数据类型都是传值,例如,boolean,number,字符串是通过传地址来复制和传参数,但是他们是通过传值来比较的。
object和array是通过传地址的。
转自:http://liuyinlei.blog.163.com/blog/static/18596019220122251148657/