typeof操作符
typeof 操作符可能返回的字符串有:
1 undefined :未定义
2 boolean :布尔值
3 string :字符串
4 object :对象或者null
5 number : 数值
6 function : 函数
ps:在使用 typeof null的时候,会返回object ,但是在safari5 和之前的版本,chrome7-- 可能会返回function
undefined 类型
var message;
alert(message==undefined);//true
alert(age);//error
alert(typeof message);//undefined
alert(typeof age);//undefined
null 类型
var message = null;
alert(typeof message);//object
alert(null==undefined)//true
alert(message==undefined);//true
boolean 类型
数据类型 | true | false |
boolean | true | false |
string | 非空字符串 | “”空字符串 |
number | 非零数值包括无穷大 | 0/ NAN |
object | 任何对象 | null |
undefined | n/a | undefined |
number 类型
1 十进制
2 八进制 :以8为基数 第一位必须是零 序列(0-7)
3 十六进制 :以16为基数 第一位必须为0x 序列(0-9,A-F(大小写均可))
A 10 B 11 ....
4 浮点 : 必须包含一个小数点,小数点后面必须至少有一位数字,小数点前面可以没有整数。对于极大极小的数值,用e表示法(科学计数法)。var floatNum = 3.125e7;//31250000 ps 0.1+0.2 !=0.3
5 数值范围:最大值保存在Number.MAX_VALUE中:1.7976931348623157e+308 ,最小值保存在Number.MIN_VALUE中,5e-324.
超过的都会被转化为Infinity(大于最大数值),-Infinity(小于最小数值),IsFinite()函数,可返回是否是一个有效范围内的数值。
6 NaN not a number. 任何除于0的数值都会返回NaN,不会影响其他代码的执行。任何和NaN操作相关的都会返回NaN
alert(NaN==NaN);//false
alert(isNaN(NaN));//true //如果不可以被转换成数值,返回true,
alert(isNaN("10"));//false
alert(isNaN(10));//false
alert(isNaN("blue"));true
alert(isNaN(true));false;
7 数值转换
Number() | parseInt() | |
boolean | 0/1 | NaN |
null | 0 | NaN |
string () hello/hello1/1hello/hell1o/ | NaN/NaN/NaN/NaN | NaN/NaN/1/Nan |
如果第一个字符不是数值,都会返回NaN | ||
string 类型
表示由零或多个16位unicode字符组成的字符序列
object 类型
对象是一组数据和功能的集合,可通过new操作符后跟要创建的对象类型的名称来创建
object 有以下属性和方法
1 constructor 保存着用于创建当前对象的函数,构造函数(constructor)就是object()
2 hasOwnProperty(propertyName) 用于检查给定的属性在当前的对象实例中
3 isPrototypeOf(object):用于传入的对象是否是传入对象的原型
4 propertyIsEnumerable(propertyName):是否支持枚举
5 toLocaleString() 返回对象的字符串表示
6 toString() 返回对象的字符串表示
7 valueOf 返回对象的字符串、数值、布尔值表示。
var test = function (name) { //... this.name = name; }; test.prototype.options = function () { //.. }; var v = new test("Jackey"); v.age = 23; console.log("hasOwnProperty:" + v.hasOwnProperty("name"));//true console.log("hasOwnProperty:" + v.hasOwnProperty("options")); //false console.log("hasOwnProperty:" + v.hasOwnProperty("age")); //true console.log("hasOwnProperty:" + test.prototype.hasOwnProperty("options")); //true console.log("hasOwnProperty:" + test.prototype.isPrototypeOf("options")); //false console.log(v.toLocaleString()); //object console.log(v.toString()); console.log(v.propertyIsEnumerable("options"));//false