zoukankan      html  css  js  c++  java
  • JS_数据类型之null,undefined,date(),typeConvert..

    今天学的东西主要还是数据类型方面--越学越感觉js这门语言,真的是amazing,very amazing的,总结下

    1.先来比较下null与undefined:

    null:js关键字,表示一个对象,但是为空。因为是对象,typeof(null)返回object,在primitive类型context下使用时:number-->0,string-->"null",bool-->false

    undefined:不是js关键字,而是window对象的全局属性,(可以用window.undefined来访问该属性),typeof(undefined)返回undefined,当在js中使用未声明的变量,或声明变量但未给其赋值时,其值为undefined,  在primitive类型context下使用时 :number-->NaN,string-->"undefined",bool-->false

    ps:null==undefined 返回true, 但null===undefined 返回false,因为typeof()不一样。

    2.Date()

    Date表示时间对象,获取对象的方式为:var t=new Date();

    1 var d = new Date();
    2 var d2 = new Date(2015, 11, 25);
    3 alert(d.toLocaleString());//datetime 2015/12/27 下午12:41:11
    4 alert(d2.toLocaleDateString());//date 2015/12/25 注意:month从0开始,所以11为12月

    3.Error对象

    js中预定义的Error对象:EvalError,TypeError,ReferenceError,RangeError,SyntaxError,URIError
      var e = new TypeError();  alert(typeof (e));//object 

    先了解下吧

    4.Regular Expression

    正则表达式对象,用于字符串匹配

    var patt1=new RegExp("e");
    document.write(patt1.test("The best things in life are free")); //字符串中包含'e',true

    5.类型转换汇总

    ①这里学到一个感觉很强大的知识点,就是对于primitive类型,即number,string,boolean,js解释器会有一个封装的功能,将其封装成对象类型:Number,String,Boolean,这种封装在上下文中需要用到对象时会自动实现:如:

    1 var s1 = "hello world";
    2 var s2 = s1.substring(2, s1.length);//对象的方式调用了string的方法、属性
    3 alert(s2);
    
    //同如下对象的方式调用是等同的:
    5 var s1 = new String("hello world"); 6 var s2 = s1.substring(2, s1.length); 7 alert(s2);

    这种封装是暂时的,也就是在用完这个对象的特性后,对象不存在了,只有string,当然,平常用的最多的还是string,尽管number,bool都有这种特性。

    而且,这种转换是可逆的!wow,cool!不是吗?

    1 var s1 = new String("hello world");
    2 var s2 = s1 + ",wonderful!";//对象s1先转成primitive string value,然后字符拼接
    3 alert(s2);//hello world,wonderful!

    ②number,string,bool 的primitive value都可以通过Object()转化成其object形式:

    1 var s3 = "hello";
    2 alert(typeof (s3));//string
    3 s3 = Object(s3);
    4 alert(typeof (s3));//object
    5 
    6 var b1 = true;
    7 alert(typeof (b1));//boolean
    8 b1 = Object(b1);
    9 alert(typeof (b1));//object

    ③在bool场景下用object时,只要object不是null的,其值都是true:

     1 //internal value is false,but object convert to true!
     2 var t1 = new Boolean(false);
     3 var t2 = new Number(0);
     4 var t3 = new String("");
     5 var t4 = new Array();
     6 
     7 if (false || 0 || "") {
     8     alert("sorry,you can't see me..");
     9 }
    10 if (t1 && t2 && t3 && t4) {
    11     alert("yes ,object is true!");
    12 }


    先到这里,感觉,强!

  • 相关阅读:
    JEECG弹出框提交表单
    JEECG开发第一个菜单显示设备列表
    优化jeecg底层高级查询,支持bool值和下拉框查询
    Jeecg中的<t:datagrid treegrid="true">实现
    JEECG 简单实例讲解权限控制
    jeecg 定时任务配置用法
    帆软报表和jeecg的进一步整合--ajax给后台传递map类型的参数
    JEECG与帆软报表集成
    helm部署Redis哨兵集群
    helm安装kafka集群并测试其高可用性
  • 原文地址:https://www.cnblogs.com/baweier2013/p/5079914.html
Copyright © 2011-2022 走看看