• JavaScript系列:ECMAScript引用类型


      引用类型通常叫作类(class),引用值所处理的为对象。对象是有new运算符加上要实例化的类的名字创建,当有不止一个参数时,ECMAScript要求使用括号,如果没有参数时,括号可以省略。

    var o1 = new Object();
    var o2 = new Object;

      尽管括号不是必须的,但为避免婚礼,最好使用括号。

    1、Object类

      ECMAScript中的所有类都有Object类继承而来,Object类中的所有属性和方法都会出现在其他类中。

      Object类具有是属性

      ◊ Constructor —— 对创建对象的函数的引用(指针)。对于Object类,该指针指向原始的object()函数。

      ◊ Prototype —— 对该对象的对象原型的引用。

      Object类具有的方法:

      ◊ HasOwnProperty(property) —— 判断对象是否具有某个特定的属性。必须使用字符串指定该属性(例如:o.HasOwnProperty("name"))。

      ◊ IsPrototypeOf(object) —— 判断该对象是否为另一个对象的原型。

      ◊ PrototypeIsEnumerable(property) —— 判断给定的属性是否可以用于for..in语句进行枚举。

      ◊ ToString() —— 返回对象的原始字符串表示。对于Object类,ECMA-262没有定义这个值,所以不同的ECMAScript实现具有不同的值。

      ◊ ValueOf() —— 返回最适合该对象的原始值。对于许多类,该方法返回的值都与ToString()的返回值相同。

    2、Boolean类

      Boolean类是Boolean原始类型的引用类型。要创建Boolean对象,只需要传递Boolean值作为参数:

    var oBooleanObject = new Boolean(true);

      Boolean对象将重写Object类的ValueOf()方法,返回原始值,即true或false。重写ToString()方法,返回字符串"true"和"false"。

    3、Number类

      Number类是Number原始类型的引用类型。创建Number对象代码如下:

    var oNumberObject = new Number(55);

      使用valueOf()方法获取数字对象Number原始值:

    var iNumber = oNumberObject.valueOf();

      Number类处理数值的专用方法:

      ◊ toFixed() —— 返回具有指定位数小数的数字的字符串表示。

    var oNumberObject = new Number(99);
    alert(oNumberObject.toFixed(2)); // outputs "99.00"

      toFixed()的方法参数说明应该显示的小数位数,空的小数由0补充。toFixed()方法能表示具有0到20位小数的数字,超出这个范围的值会引发错误。

      ◊ toExponential() —— 返回用科学记数法表示的数字字符串形式。

      ◊ toPrecision() —— 返回数字的预定形式或指数形式。

    4、String类

      String类是String原始类型的对象表示法,创建String对象:

    var oStringObject = new String('Hello World');

      String()对象的valueOf()和toString()方法都会返回String型的原始值:

    alert(oStringObject.valueOf() == oStringObject.toString()); // outputs "true"

      String类属性:

      ◊ length,返回字符串中的字符个数;

    var oStringObject = new String('Hello World');
    alert(oStringObject.length); // outputs "11"

      String类方法:

      ◊ charAt() —— 返回包含指定位置处的字符的字符串; 第一个字符的位置是0,第二个字符的位置是1,依次类推。

    var oStringObject = new String("Hello World");
    alert(oStringObject.charAt(1)); // outputs "e"

      ◊ charCodeAt() —— 返回包含指定位置处的字符的字符代码; 第一个字符的位置是0,第二个字符的位置是1,依次类推。

    var oStringObject = new String("Hello World");
    alert(oStringObject.charCodeAt(1)); // outputs "101"

      ◊ concat() —— 用于把一个或多个字符串连接到String对象的原始值上,该方法返回的是String原始值,保持原始的String对象不变。

    var oStringObject = new String("Hello ");
    var sResult = oStringObject.concat("World");
    alert(sResult);               // outputs "Hello World"
    alert(oStringObject);         // outputs "Hello"

      ◊ indexOf() —— 从字符串开头开始检索指定的子串在另一个字符串中的位置。如果没有找到该子串,则返回-1。

      ◊ lastIndexOf() —— 从字符串结尾开始检索指定的子串在另一个字符串中的位置。如果没有找到该子串,则返回-1。

    var oStringObject = new String("Hello World");
    alert(oStringObject.indexOf("0"));      // outputs "4"
    alert(oStringObject.lastIndexOf("0"));  // outputs "7"

      ◊ slice()substring() —— 两者均返回要处理的字符串的子串,都接受一个活两个参数。第一个参数是要获取的子串的起始位置,第二个参数是要获取子串终止前的位置。如果省略第二个参数,终止位默认为字符串的长度。

      slice()和substring()在参数为负数时,处理方式不同。对于负参数,slice()方法会用字符串的长度加上参数,substring()方法则将其作为0处理,即忽略负数。

      ◊ toLowerCase() —— 将字符串转化成全小写形式。

      ◊ toUpperCase() —— 将字符串转化成全大写形式。

    5、instanceof运算符

      instanceof运算符与typeof运算符相似,用于识别正在处理的对象的类型。与typeof方法不同的是,instanceof方法要求开发者明确地确认对象为某种特定类型。

    var oStringObject = new String('Hello World');
    alert(oStringObject instanceof String); // outputs "true"

    6、Array数组

      字符串、数值和布尔值都属于离散值,如果某个变量是离散的,那么在任意时刻及只能有一个值。如果想用一个变量来存储一组值,就需要使用数组array。

      在JavaScript脚本中,数组使用关键字Array来声明,同时还可以指定这个数组元素的个数,也就是数组的长度(length)。

    var aTeam = new Array(12);

      在无法提前预知某个数组元素最终的个数时,声明数组时可以不指定具体个数。

    var aColor = new Array();
    aColor[0] = "red";
    aColor[1] = "blue";
    aColor[2] = "purple";

      每增加一个数组项,数组的长度就动态地增长。

      另外还可以直接用参数创建数组。

    var aMap = new Array{"China","USA"};

      与字符串的length属性一样,数组也可以通过length属性来获取其长度,数组的位置也是从0开始的。

      除了Array()对象,数组还可以使用方括号"["和"]"来定义,项与项之间用逗号分隔。

    var aColor = ["red", "gray"];

      对于数组而言,通常需要将其转化为字符串再进行使用,toString()方法可以很方便的实现这个功能。

    alert(aColor.toString());

      如果不希望用逗号进行转换后的连接,而希望用指定的符号,可以用join()方法,该方法接受一个参数,即用来连接数组项的字符串。

    var sColor = aColor.join("|");
  • 相关阅读:
    【python】+json+解析数组json字符串(且键没有引号)(完美解决)
    【Python】+类内部方法相互调用
    【Python】+字符串转换为日期(互转)+获取当前时间+获取当前时间戳
    【python】+tushare库+判断指定日期是否是交易日
    【python】+占位符
    【python】【pycharm】+代码自动提示
    【python】+命名规范
    【python】+'chromedriver' executable needs to be in PATH
    【python】+8大数据类型
    【python】+字典操作(全)
  • 原文地址:https://www.cnblogs.com/libingql/p/2700884.html
Copyright © 2020-2023  润新知