1.Undefined
这个类型只有一个值,就是非常特殊的undefined(未定义),就是定义变量但未初始化时,这个变量的值就是undefined。
结果表明,对未定义和不存在的变量执行typeof操作符都会返回undefined。
2.Null
Null这个类型也只有一个值null,逻辑上看,null表示一个空指针对象,而这也正是使用typeof检测null时返回Oject
的原因。
实际上,undefined派生自null,因而它们的相等性测试返回true
3.Boolean
Boolean是使用最多的一种类型,它只有两个字面值:true和false(注意:区分大小写)。通过调用Boolean(),JavaScript中所有的类型的值都可以转化为布尔值。
4.Number
Number类型应该是js中最令人关注的数据类型了。可以有十进制,八进制(0为第一位),十六进制(0x为第一位)。
计算时他们都被转化为十进制。
4.1.浮点数值
浮点数的最高精度是17位。Javascript并不能保存所有的数值,超出范围后,正值被转为Infinity,负值被转换为-Infinity。即正负无穷。可以使用isFinite()函数来判断一个数值是否是无穷。
var fCount=1.22299999999999999999999929299292929929292929;
alert(isFinite(fCount));//true
4.2NaN
NaN是Not a Number的缩写。很直白,就是非数值。它有两个特点,一个是自己不等于自己,另一个是任何涉及到它的操作都返回NaN.可以用isNaN()来判断。任何能转化为数值都会返回false,如“10”,true,
4.3数值转化
有三个函数可以实现这一功能:Number()、parseInt()、parseFloat()。
4.3.1Number()函数需要特别注意的几种转化
- 传入null,返回0;
- 传入undefined,返回NaN;
- 字符串,转化为十进制。前导的0被忽略
4.3.2pareseInt()需要注意的地方
- 空字符转化为NaN。
- “1234blue”转化为1234
- “22.5”因为小数点并非有效字符,所以被转化为22.
对八进制的解析存在分歧,因此我建议为函数添加第二个参数。
var num=parseInt("A",16);
var num=parseInt("076",8);
4.3.3pareseFloat
1.基本与pareseInt相似
2.遇到第二个小数点时忽略后面的字符,没有小数点返回整数。
5.String
Js中单引号和双引号的作用相同。字符字面量也叫转义序列 ,是一些特殊字符。
转化字符串
1.tostring():数值、布尔值、对象、字符值是都有这个方法的,而undefined和null则没有。使用这个方法时可以传递任意基数,所以可以用它输出二进制,三进制,四进制。只有你想不到,没有他做不到。
2.在不能判断要转换的值是否为null或undefinded,可以使用String()。遵循规律:如果有tostring()方法的,原样进行。null和undefined则返回他们本身。
6.Object
Js中的对象其实就是一组数据和功能的集合。对象可以通过new操作符后跟要创建的对象类型的名称来创建。
var o = new Object();
object的每个实例都具有下列的方法和属性。
- constructor(构造器):保存着用于创建当前对象的函数。
- hasOwnProperty(propertyName):用于检查给定的属性在当前对象的实例中是否存在。propertyName是属性名,如“name”
- isPrototypeOf(object) 用于检查给定的输入对象是否是当前的输入对象的原型。
- propertyIsEnumberable(propertyName) 用于检查给定的属性是否能够使用for-in语句来枚举。
- toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应。
- toString() :返回对象的字符串表示。
- valueOf() :返回对象的字符串、数值或布尔值表示。通常与toString()方法的返回值相同。