zoukankan      html  css  js  c++  java
  • 1、JS的数据类型

    一、分类:JS有6种数据类型:

    1.string

    2.undefined

    3.number

    4.null

    5.boolean

    6.object(包含函数、数组、日期等)

    二、隐式转换

    1.+和- 

    var x = "37" - 7 //30  运算
    var y = "37" + 7 //377 字符串拼接

    2.a == b

    "1.23" == 1.23; //会尝试将字符串转为数字比较
    0 == false; //会将false转为数字0进行比较
    null == undefined;
    new Object() == new Object();
    [1,2] == [1,2];
    
    object == number|string //尝试对象转换为基本类型,如:
    new String("hi")=="hi" //true

    若用 a === b会先比较类型,类型不同,返回false

    三、包装对象object

    首先,有一个基本类型str和一个对象类型strObj,尝试进行赋值和获取

    接下来,尝试查看str的长度,并给str加一个方法t,获取t

    可以看到,长度可以获取,并且str.t = 10赋值成功,但是再获取str.t的时候却得到了undefined,无法获取。

    ——这是因为,当把一个基本类型尝试转化为对象来时,浏览器会将其转换成一个相对应的临时的包装类型对象,当完成这个访问后,临时对象会被销毁掉,所以a.t是不存在的。

    四、类型检测

    1.typeof sth, 返回数据类型,适合基本类型及function检测,遇到null失效。例:

    2.instanceof 基于原型链判断数据类型,操作类型是对象,如果是string/int等类型会返回false。适合自定义对象,也可以用来检测原生对象,在不同窗体间失效。

    使用方法:sth instranceof 数据类型,返回true或者false,例:

    [1,2] instanceof Array  //返回true
    new Object() instanceof Array  //返回false

    *instanceof 是判断对象的原型,比如一个学生对象的父类是人,判断  student instanceof person ,因为学生对象的原型就是人,返回true 

    不同window或iframe间的对象类型检测不能使用!

    3.Object.prototype.toString.apply(数据),适合内置对象和基元类型

    例:

    *注:IE6、7、8判断null是返回object

    4、constructor 和 ducktype,了解 

  • 相关阅读:
    网络协议
    窗口TOPMOST属性设置失败
    自绘之----对话框
    图书推荐
    MFC自绘之WM_ERASEBKGND
    批处理获取当前路径
    checkBox 自绘
    第四章:基于TCP套接字编程(三)
    第四章:基于TCP套接字编程(二)
    第四章:基于TCP套接字编程(一)
  • 原文地址:https://www.cnblogs.com/wleaves/p/5246757.html
Copyright © 2011-2022 走看看