js 数据类型

数据类型

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():返回对象的字符串、布尔值或数值表示。

posted @ 2020-04-01 14:06  热爱前端知识  阅读(115)  评论(0编辑  收藏  举报