JavaScript中的对象

  • JavaScript学习过程中的个人笔记,详细请看https://www.liaoxuefeng.com/wiki/1022910821149312
  • 再次感谢廖大
对象
  • 在JS中一切都是对象。
  • 为了区分对象的类型,我们用typeof操作符获取对象的类型,它总是返回一个字符串。
	typeof 123; //'number'
	typeof NaN; //'number'
	typeof 'str';//'string'
	typeof true;//'boolean'
	typeof undefined'//'undefined
	typeof Math.abs;//'function'
	typeof null;//'object';
	typeof []; //'object';
	typeof []; //'object';
  • 注意null类型也是object,Array雷刀也是object,用typeof将无法区分出null、Array和通常意义上的object-----[]。
包装对象
  • JS提供了包装对象,用new创建。
  • 包装对象的类型已经变成object了,和原始值用===比较会返回flase。
  • 所以进来不要使用包装对象,尤其是针对string类型。
  • 几条规则
    1)不要使用new Number()、new Boolean()、new String()创建包装对象;
    2)用parseInd()或parseFloat()来转换任意类型到number。
    3)用String()来转换任意类型到string,或者直接调用某个对象的toString()方法。
    4)通常不必把任意类型转换为boolean再判断,可以直接写if(value){}。
    5)typeof可以判断出number、boolean、string、function和undefined。
    5)判断Array要使用Array.isArray(arr)。
    6)判断null请使用myVar === null。
    7)判断某个全局变量是否存在用 typeof window.myvar === ‘undefined’。
    8)函数内部判断某个变量是否存在用typeof myVar === ‘undefined’。
  • number对象调用toString()时需要注意
	123..toString(); //‘123’,注意是两个点
	(123).toString();//‘123’
Date
  • 在JavaScipt中,Date对象用来表示日期和时间
  • 创建指定日期的方法
	//方法一
	var d = new Date(2015, 5, 19 ,20 ,15, 30, 123);
	d;  // Fri Jun 19 2015 20:15:30 GMT+0800 (CST)
		//月数范围是0-11,也就是0表示1月,1表示2月。

   //方法二,解析一个符合ISO 8601格式的字符串
   //使用parse时传入的月份是1-12
   var d = Date.parse('2015-06-24T19:49:22.875+08:00');
   d; // 1435146562875
   d = new Date(d);
   d;// Wed Jun 24 2015 19:49:22 GMT+0800 (CST)
  • Date对象表示的时间总是按浏览器所在时区显示的,不过我们也可以显示UTC时间,通过d.toUTCString();
RegExp(正则表达式)
	\d 匹配一个数字
	\w 匹配一个数字或字母
	\s 匹配一个空格,包括Tab等空白符
	.  匹配任意字符
	*  表示任意个字符,包括0+  表示至少一个字符
	?  表示0个或1个字符
	{n} 表示n个字符
	{n,m} 表示n-m个字符
	[] 表示范围
	^  表示行头
	$  表示行尾
JSON
  • JSON是JavaScript Object Notation的缩写,它是一种数据交换格式。
  • 在JSON中,一共就几种数据类型:number,boolean,string,null,array,object。
  • JSON定死了字符集必须是UTF-8。
  • JSON的字符串必须使用双引号“”,Object的键也必须使用双引号“”。
  • 可以把一个JavaScript对象序列化为一个JSON格式字符串,才能够通过网络传递给其他计算机。同样收到一个JSON格式的字符串,只需要把它反序列化成一个JavaScript对象,就可以直接使用该对象了。
  • JSON.stringify():序列化方法。
  • JSON.parse():反序列化方法
面向对象
  • JavaScript没有Class的概念,所有对象都是实例,所谓继承关系就是把一个对象的原型指向另一个对象而已。
  • 在JavaScript代码运行期,可以多次改变原型的指向关系。
  • JavaScript对每个创建的对象都会设置一个原型,指向它的原型对象。
创建对象
  • 可以通过一种构造函数的方法来创建对象,先定义一个普通函数,然后用new关键字来调用这个函数,就会返回一个对象。
  • 用构造函数方式创建的对象还从原型上获得一个constructor属性,它指向函数本身。
  • 一般按照约定,构造函数首字母应大写,普通函数首字母应小写。
  • 原型继承实现方式是:
    1)定义新的构造函数,并在内部用call()调用希望继承的构造函数,并绑定this。
    2)借助中间函数F实现原型链继承,最好通过封装的inherits函数完成。
    3)继续在新的构造函数的原型上定义新方法。
  • ES6引入了关键字class,目的是让定义类更简单。
posted @ 2021-02-25 17:11  想不出名字2333  阅读(0)  评论(0)    收藏  举报