ECMAScript中有5种简单数据类型:Undefined、Null、Boolean、Number和String。还有2种复杂数据类型——Array(数组)、Object(对象)。
ECMAScript不支持任何创建自定义类型的机制,所有值都成为以上7中数据类型之一。
typeof操作符:typeof操作符是用来检测变量的数据类型。对于值或变量使用typeof操作符会返回如下字符串:
undefined:未定义、boolean:布尔值、string:字符串、number:数值、object:数组,对象或null、function:函数
typeof操作符的使用:typeof box。虽然也可以这样使用:typeof(box),但typeof是操作符而非内置函数。
函数在ECMAScript中是对象,不是一种数据类型。所以,使用typeof来区分function和object是非常有必要的。
undefined是派生自null的,因此ECMA-262规定对它们的相等性测试返回true。
alert(undefined == null);//打印ture
alert(undefined === null);//打印false
一、String类型:用于表示由于零或多个16位Unicode字符组成的字符序列,即字符串。字符串可以由双引号(")或单引号(')表示。
String类型包含了一些特殊的字符字面量,也叫 转义序列:
\n 换行 \t 制表 \b 空格 \r 回车 \f 进纸 \\ 斜杠 \' 单引号 \" 双引号 \xnn 以十六进制代码nn表示的一个字符(0~F)。例:\x41 \unnn 以十六进制代码nnn表示的一个Unicode字符(0~F)。例:\u03a3
ECMAScript中的字符串是不可变的,也就是说,字符串一旦创建,它们的值就不能改变。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量。
toString()方法可以把值转换成字符串(Boolean值会转换成相应的字符串'true'或'false'):box.toString();方法一般不需要传参,但在数值转成字符串的时候,可以传递进制参数。
var box = 10; console.log(box.toString()); //10,默认输出 console.log(box.toString(2)); //1010,二进制输出 console.log(box.toString(8)); //12,八进制输出 console.log(box.toString(10)); //10,十进制输出 console.log(box.toString(16)); //a,十六进制输出
null或者undefined使用toString()方法会报错
String()方法能够将任何类型的值转换为字符串(包括null或者undefined)。如果要转换的值有toString()方法,则调用toString()方法并返回相应的结果,如果是null或者undefined,则返回"null"或者"undeinfed"。
多行字符串使用``(tab上面的按键)包含
二、Object类型
ECMAScript中的对象其实就是一组数据和功能的集合。对象可以通过执行new操作符后跟要创建的对象类型的名称来创建。
var box = new Object();
也可以用别的方法创建,如:var box=null;或者var box={};这两种都可以创建一个Object类型。
打印object对象的一个方法:
function obj_to_string(obj){ var des = ""; for(var name in obj){ des += name + ":" + obj[name] + ";"; } return des; }