javascript之数据类型

JS数据类型详解
本文详细介绍了JavaScript中的五种基本数据类型:布尔型、字符串、数值、未定义和空对象引用,以及引用类型如对象、数组等。同时探讨了类型转换方法、NaN特性及如何检测变量类型。

二、数据类型

(1)5种基本类型:

boolean:       布尔值。表示两种状态。

     true

      false

      Boolean(): 将一个值转换成对应的布尔值。

string :  字符串。

number :  数值。

undefined:   未定义。

null:  表示一个空的对象的引用。

(2)typeof 操作符:

alert( typeof "ok")        //“string”

alert( typeof null )     //”object”    

 

(3)null  与 undefined :

      null == undefined   //true

           null === undefined  //false

(4)NaN (not a number) 不是数值的数值类型。

      alert( typeof NaN )  // number

      alert( NaN == NaN)  //false

 

用途:

 用于表示一个本应该返回数值的操作数,而又未返回数值的情况下。

或者用于数值的非法操作,比如2*“ok”

     特点:

      1、NaN 不等于自身

      2、NaN的任何操作都会返回NaN

 

(5)isNaN()

 is not  a  number  判断是否是NaN 或 非NaN数值。

console.log(  isNaN(NaN)  )  //true

console.log(  isNaN(100)  )  //false

console.log(  isNaN("ok")  )  //true

注意:

console.log(  isNaN("")  )    //false

console.log(  isNaN("100")  )   //false

console.log(  isNaN([])  )    //false

console.log(  isNaN(false)  )   //false

      内部实现的原理就是调用Number()

 

(6)转换为数值的方法

整体检测: 检测整个字符串

Number()

        true  :  1

       false :  0

       null   :    0

       undefined  :   0

       NaN     : NaN

       “”     :   0

       “12”  :  12

           “12.23”: 12.23

           对象:   先调用toString()

           十六进制  :  十进制

 

局部检测:

只要字符串开头是数字或符号就返回NaN,逐个字符检测。

第二个参数可以指定进制类型。

parseInt()   不能识别小数点,

       parseInt("11.2srt")  //11

       parseInt("eee11.2srt")

parseFloat(  )

       parseFloat("100. 126345jkfdghju")  // 100.126

 

      特点:

      parseInt( a ) == parseFloat( a  )

      与正则表达式的不同是????

+(一元操作符)   与  Number() 相同

      例如:Date.now()   与  +new Date()  与 Number(new Date())

      console.log(+new Date()) //1520758224410

      console.log(Date.now())  // 1520758224511

      console.log(+new Date()) //1520758224515

(6)转换为字符串的方法

      toString( )

      “” + [5, 6]

      注意:

      “” +  null   // “null”

      “ ”  +  undefined   “undefined”

 

(7)引用 类型

      Object 

      Date

      Array

RegExp

      Function

      包装类型: Boolean、Number、String

      单体内置对象:  Math 、Global

function fn1() {

 

}

console.log(typeof fn1)  //function

console.log(fn1 instanceof  Function)  //true

console.log(fn1 instanceof  Object) //true

注意:

1、js中的函数加new 作为构造函数,不加则作为普通函数。

2、Global在js中是不存在的对象,最起码你访问不到它。

它是留给宿主去定义的。在浏览器中它是作为window对象的一部分实现的。

 

 

(8)基本类型与引用类型

      保存:

        值

        地址

      操作:

  基本类型可以直接操作值, 

  引用类型是操作对对像 的引用。

  Js不允许直接访问内存中的位置。

      复制

        基本类型:  值  、完全独立

        引用类型:  地址、指向同一个对象

 

 

(9)检测变量类型

      typeof    返回字符串,常用于检测基本类型。

   只能检测 number 、boolean、string、undefined、object、function

  不能分辨 null 和 具体的某个对象,以及不能检测对象的类型。

  注意:正则表达式最好不要这样判断有兼容问题。

 

      instanceof   检测对象的具体类型()

  obj  instanceof   Object

  规定: 所有引用类型都是Object的实例。

     

转载于:https://www.cnblogs.com/chengyuan1216/p/8545604.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值