JavaScript学习笔记——数据类型

一、数据类型
(一)、六种数据类型

原始类型: object number string boolean null undefined
object对象: Function Array Date 

(二)、隐式转换

1、== 和 ===


1.1  ==
"1.23"             ==    1.23
    0                ==    false
  null              ==    undefined
new Object()  ==     new Object()
  [1,2]             ==     [2,1]
boolean         ==     ?
1.2 ===  严格等于
a  ===  b   类型和值都必须相同
但是 NaN != NaN          Not a Number


(三)、包装对象


var str = "hello";                    //基本类型
var strObj = new String("hello");     //对象类型(包装类型)

//当基本类型使用对应包装类型的方法时,js会智能创建一个对应的包装类型副本,使用结束后销毁
str.length;          //原则上str基本string类型,不能有属性,但是此时创建了一个包装类型的副本
alert(str.length);   //得到6

str.t = 3;           //按照对象为其创建属性   
alert(str.t);        //得到undefined

(四)、类型检测

1.typeof                 
返回一个字符串, 适合函数对象和基本类型的判断
typeof 100      "number"
typeof true     "boolean"
typeof function "function"
typeof undefined "undefined"
typeof new Object "object"
typeof [1,2]     "object"         
typeof NaN       "number"
typeof null      "object"         ?????? null为一个基本类型,但是由于历史原因返回object

2.instanceof     适合自定义对象
[1,2] instanceof Array  true
new Object() instanceof Array false
//不同windows或iframe之间的对象类型检测 不能使用instanceof


3.Object.prototype.toString   适合内置对象和基本类型 遇到null 和 undefined失效
Object.prototype.toString.apply([]); === "[object Array]"
Object.prototype.toString.apply(function(){}) === "[object Function]"
Object.prototype.toString.apply(null) === "[object Null]"     ??????
Object.prototype.toString.apply(undefined) === "[object Undefined]"

4.construtor     //构造器、构造函数
5.duck type
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值