JS_数据类型之null,undefined,date(),typeConvert..
2015-12-27 13:12
796 查看
今天学的东西主要还是数据类型方面--越学越感觉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();
3.Error对象
js中预定义的Error对象:EvalError,TypeError,ReferenceError,RangeError,SyntaxError,URIError
var e = new TypeError(); alert(typeof (e));//object
先了解下吧
4.Regular Expression
正则表达式对象,用于字符串匹配
5.类型转换汇总
①这里学到一个感觉很强大的知识点,就是对于primitive类型,即number,string,boolean,js解释器会有一个封装的功能,将其封装成对象类型:Number,String,Boolean,这种封装在上下文中需要用到对象时会自动实现:如:
这种封装是暂时的,也就是在用完这个对象的特性后,对象不存在了,只有string,当然,平常用的最多的还是string,尽管number,bool都有这种特性。
而且,这种转换是可逆的!wow,cool!不是吗?
②number,string,bool 的primitive value都可以通过Object()转化成其object形式:
③在bool场景下用object时,只要object不是null的,其值都是true:
先到这里,感觉,强!
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();
var d = new Date(); var d2 = new Date(2015, 11, 25); alert(d.toLocaleString());//datetime 2015/12/27 下午12:41:11 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,这种封装在上下文中需要用到对象时会自动实现:如:
var s1 = "hello world"; var s2 = s1.substring(2, s1.length);//对象的方式调用了string的方法、属性 alert(s2); //同如下对象的方式调用是等同的: var s1 = new String("hello world"); var s2 = s1.substring(2, s1.length); alert(s2);
这种封装是暂时的,也就是在用完这个对象的特性后,对象不存在了,只有string,当然,平常用的最多的还是string,尽管number,bool都有这种特性。
而且,这种转换是可逆的!wow,cool!不是吗?
var s1 = new String("hello world"); var s2 = s1 + ",wonderful!";//对象s1先转成primitive string value,然后字符拼接 alert(s2);//hello world,wonderful!
②number,string,bool 的primitive value都可以通过Object()转化成其object形式:
var s3 = "hello"; alert(typeof (s3));//string s3 = Object(s3); alert(typeof (s3));//object var b1 = true; alert(typeof (b1));//boolean b1 = Object(b1); alert(typeof (b1));//object
③在bool场景下用object时,只要object不是null的,其值都是true:
//internal value is false,but object convert to true! var t1 = new Boolean(false); var t2 = new Number(0); var t3 = new String(""); var t4 = new Array(); if (false || 0 || "") { alert("sorry,you can't see me.."); } if (t1 && t2 && t3 && t4) { alert("yes ,object is true!"); }
先到这里,感觉,强!
相关文章推荐
- hiho 23 最短路径 一(Dijstra)
- 输入框 js正则推断输入
- 延时加载JavaScript代码提高速度
- js作用域、异步——学习笔记
- 关于json中null的问题
- javascript冒泡排序
- js执行顺序——学习笔记
- javascript linkedlist data structures
- js获取url传递参数
- 三种方法实现js跨域访问
- 理解和使用 JavaScript 中的回调函数
- JSON入门(1)
- JavaScript的removeChild()函数用法详解
- 获得树形json串
- JavaScript构造函数详解
- 【转】页面加载等待页面JS
- js追加事件执行代码场景
- JavaScript生成二维码图片小结
- 良好的异常展现界面<500.jsp>
- js中location.search、split()HTML5中localStorage