数据类型

5种简单数据类型:

1.undefined

 只有一个特殊的值,undefined
(1) 声明一个变量,但没有赋值。变量默认为undefined
(2) 函数中没有return。返回值默认为undefined

var message;
alert(message); //undefined
alert(age);// error
alert(typeof message);// undefined
alert(typeof age);//undefined


对于未声明过的变量,只能执行一项操作,就是使用 typeof 检测其数据类型,并且返回undefined.其他操作都会报错。

2.null

 只有一个特殊的值,null.null表示一个空对象指针。
typeof null "Object"
typeof undefined "Undefined"
null == undefined //true


3.boolean

两个值:true false

但是js中所有类型的值都有与这两个boolean值等价的值。

将一个值转换成布尔型,调用Boolean()函数。

 各种类型向布尔型转换的结果如下:
undefined:false。
null:转换成false。
字符串:空字符串,返回false;非空字符串,true.
数字型值:如果数字为0或NaN,返回false。;非0数字,false。
Object:true;
总结:非空字符串.非零数字转换为true.


4.number

一个特殊的数值:NaN.用于表示一个本来要返回数值的操作数 未 返回操作数的情况。

   两个特殊:
(1)任何涉及NaN到NaN的操作运算,都会返回NaN
(2)NaN与任何值都不相等,包括本身。 alert(NaN==NaN);//false

一个函数:isNaN()
isNaN(NaN);//true
isNaN(true);//false 可以被转换为1
isNaN(“10”);//false 可以被转换为数值10


三个函数:Number() parseInt() parseFloat()

Number()可以把任何类型转换为number类型。后两个专门把字符串转换为数值。
undefined:NaN
null: 0
boolean: true:1;false:0
字符串: (1)字符串中只有数字,转换为十进制数值。
(2)字符串中有 浮点格式,会转换为响应的浮点数值。
(3)字符串中有 十六进制,转会为十进制。
(4)空字符串 转换为0.
(5)其他格式的,转换为NaN
Number()函数在转换字符串时,比较复杂。所以更常用的是parseInt函数。
parseInt()直至找到第一个非空格字符,如果第一个字符不是数字字符或者符号,直接返回NaN.
继续解析第二个字符,知道解析完所有后续字符或者遇到一个非数字字符。
parseInt("1234blue"); //1234
parseInt('');//NaN


5.string

转换为字符串:
toString()方法
undefined.null不可以使用此方法
boolean.number.string(返回一个字符串的副本) 都可以用此方法。
String()方法 可以将任何类型的值转换为字符串
String(null);//"null"
String(undefined);//"undefined"


1种复杂类型

6.Object

创建对象的两种方法

1.对象字面量

使用对象字面量定义对象时,实际上不会调用Object构造函数。

var p = {
name:"tom",
age:29
};


2.构造函数

function Person(){}
var p = new Person();


Object的属性和方法

constructor:可以知道一个对象是由哪个构造函数创建的

  • hasOwnproperty(属性名):检查属性是否在当前对象实例中
  • isPrototypeOf(对象):
  • toLocaleString():返回对象的字符串表示
  • toString():返回对象的字符串表示
  • valueOf():返回对象的字符串、布尔值或数值表示。