Undefined -- 未定义类型
Undefined类型只有一个值,即 undefined。
1)使用var声明变量但未赋值时,这个变量的值就是undefined。检测其类型也是 undefined。
var a;
console.log(a);//a=undefined
console.log(typeof a);//"undefined"
2)变量从未定义过 ,他的类型为undefined ,值报错。
console.log(e); //报错 e is not defined
console.log(typeof e);//"undefined"
Null -- 空类型
Null类型是第二个只有一个值的类型,这个特殊值是null。null值表示一个空对象指针。
Null是特殊的对象类型:object
var car = null;
console.log(car);//null
console.log(typeof car);//"object"
Boolean -- 布尔类型
Boolean类型是ECMAScript中使用得最多的一种类型。
Boolean类型只有两个值:true(真) \ false(假)。
var str = "hello world!";
console.log(Boolean(str));//true
1、除0和NaN之外的所有数字,转换为布尔型都为true
2、除"" 之外的所有字符,转换为布尔型都为true
3、null和undefined转换为布尔型为false
*Number -- 数值类型
*NaN:not a Number 不是一个数字 特殊的数值类型
表示一个本来要返回数值的操作数未返回数值的情况。
NaN特点:1)任何涉及NaN的操作都会返回NaN。
2) NaN与任何值都不相等,包括NaN本身。
alert( NaN == NaN ) //false
isNaN:判断参数是否"不是数值"。如果是数值返回false,不是数值返回true;
alert(isNaN(NaN)); //true
alert(isNaN(10)); //false(10是一个数值)
alert(isNaN("10")); //false(可以被转换成数值10)
alert(isNaN("hello")); //true(不能转换成数值)
alert(isNaN(true)); //false(可以被转换成数值1)
Number():转型函数Number()可以用于任何数据类型
Number(true) //1
Number(false) //0
Number(22) //22
Number(null) //0
Number(undefined) //NaN
Number("123") //123
Number("2.11") //2.11
Number("") //0
Number("11asdf") //NaN
parseInt()和parseFloat()这两个函数则专门用于把字符串转换成数值。
parseInt():从第一位起取到整数部分
parseInt("1234blue") //1234
parseInt("") //NaN ( 区别:Number("") //0)
parseInt(" 112abc") //112
parseInt("22.5") //22
parseFloat():从第一位起取到小数部分(只识别第一个小数点),只解析10进制数。
parseFloat("1234blue") //1234
parseFloat("22.5") //22.5
parseFloat("22.5.22") //22.5
*String -- 字符串类型
字符串可以由双引号或者单引号表示。
var str = "hello world";
var str = 'hello world';
*查看字符串的长度:length属性
var str = "hello world";
console.log(str.length);//11
查看字符串相应位置的字符。
var str = "hello world";
console.log(str[1]);//e
String(变量)
强转函数,可以转化任何类型的值
var num1;
String(123) // "123"
String(3>4) // "false"
String(3<4) // "true"
String(num1) // "undefined"
String(null) // "null"
* "+"也可以把某个值转换为字符串,也可以拼接多个字符串。
var str = 111+""; //"111"
var str = "hello" + " world"; //"hello world"
*Object -- 类型 :ECMAScript中的对象其实就是一组数据和功能的集合
var o = {}; \\对象字面量方法创建
var o = new Object(); \\构造函数方法创建