• 基本包装类型


    基本包装类型

    为了便于操作基本类型值,ECMAScript还提供了3个特殊的引用类型:Boolean,Number和String.这些类型与其他引用类型相似,但同时也具有各自的基本类型相应的特殊行为。

    1.基本包装类型概念与Bollean,Number类型

    (1)每当读取一个基本类型值的时候,后台就会自动创建一个对应的基本包装类型的对象。而且,此对象只存在于一行代码的执行瞬间,然后立即被销毁。

    (2)把字符串,数字,布尔值传给构造函数会得到对应的实例。对基本包装类型的实例调用typeof会返回“object”。要注意,使用new操作符调用基本类型的构造函数,与直接调用同名的转型函数是不一样的。

    (3)Boolean类型:需要注意的是,使用构造函数创建布尔的对象进行布尔运算时,对象都会被转换为true。

    (4)Number类型:toString()将数字转换成字符串,接收一个参数,告诉它返回几进制                 toFixed()会按照指定的小数位返回数值的字符串表示,并且会自动舍入

                                    toExponential()返回以指数表示法表示的字符串形式,参数决定小数位            toPrecision()自动调用适合的方法

     1 /*var s1="some text";
     2 var s2=s1.substring(2);         //基本包装类型也有方法
     3 
     4 var s1=new String("some text");
     5 var s2=s1.substring(2);
     6 s1=null;                         //可以这样理解为什么基本类型会有方法
     7 s1.color="red";
     8 alert(s1.color);                 //自动创建的基本包装类型对象只存在于代码创建的一瞬间,undefined*/
     9 
    10 var value="25";
    11 var number=Number(value);
    12 alert(typeof number);            //number
    13 var obj=new Number(value);
    14 alert(typeof obj);               //object
    15 /*把字符串,数字,布尔值传给构造函数就会创建相应的实例,对基本包装类型的实例调用typeof会返回object*/
    16 
    17 /*Boolean类型*/
    18 var falseObject=new Boolean(false);
    19 var result=falseObject&&true;
    20 alert(result);                   //true
    21 var falseValue=false;
    22 result=falseValue&&true;
    23 alert(result);                   //false
    24 
    25 /*Number类型*/
    26 var num=10;
    27 alert(num.toString());//"10"
    28 alert(num.toString(2));//"1010"
    29 alert(num.toString(8));//"12"
    30 
    31 alert(num.toFixed(2));//10.00此方法还会四舍五入
    32 
    33 var num=99;
    34 alert(num.toPrecision(1));//"1e+2"
    35 alert(num.toPrecision(2));//"99"
    36 alert(num.toPrecision(3));//"99.0"

    2.基本包装类型--String类型

    (1)字符方法:charAt()返回对应参数位置的字符          charCodeAt()返回对应字符的编码          ECMAScript5支持使用方括号来访问字符串中的特定字符

    (2)字符串操作方法:concat()与Array的一样,往字符串后添加多个字符串          

    slice():接收两个参数,第一个参数指定开始位置,第二个参数指定到哪里结束,当参数有负数时,此方法会将传入的负数与字符串的长度相加

    substring():接收两个参数,第一个参数指定从哪里开始,第二个参数指定从哪里结束。当有负数时,此方法会把所有的负数都变成0,另外substring(3,0)==substring(0,3)

    substr():接收两个参数,第一个指定从哪里开始,第二个参数指定返回的字符串的个数。当有负数时,此方法会负的第一个参数加上字符串的长度

    (3)位置方法indexOf()和lastIndexOf(),利用这两种位置方法,可以找到所有匹配的字符,并返回位置

    (4)trim():删除字符串前后的所有空格

    (5)大小写转换toLowerCase()和toUpperCase()

    (6)match()与replace()方法都与正则表达式联合起来使用,match()联合正则,将匹配到的字符转换成数组返回。replace()顾名思义,替换匹配到字符。

    (7)localeCompare()比较俩个字符串

    (8)fromCharCode()接收多个字符编码,然后将它们转换成字符串

     1 var stringValue="hello world";
     2 alert(stringValue.charAt(1));  //"e"相应位置的字符
     3 
     4 alert(stringValue.charCodeAt(1));//"101"字符的编码
     5 
     6 var stringValue="hello ";
     7 var result=stringValue.concat("world");
     8 alert(result);  //"hello world" 与数组的concat方法一样
     9 
    10 /*利用两种位置方法,找到所有匹配的字符,并返回位置*/
    11 var stringValue="Lorem ipsum dolor sit amet,consectetur adipisicing elit";
    12 var positions=new Array();
    13 var pos=stringValue.indexOf("e");
    14 while(pos>-1){
    15     positions.push(pos);
    16     pos=stringValue.indexOf("e",pos+1);};
    17 alert(positions); //"3,24,32,35,52"
    18 
    19 var text="cat,bat,sat,fat";
    20 var pattern=/.at/;
    21 var matchs=text.match(pattern);
    22 alert(matchs.index);//0
    23 alert(matchs[0]);//"cat"
    24 alert(matchs.lastIndex);//0
    25 
    26 var pos=text.search(/at/);
    27 alert(pos);//1
    28 
    29 var result=text.replace("at","ond");
    30 alert(result);//"cond,bat,sat,fat"
    31 result=text.replace(/at/g,"ond");
    32 alert(result);//"cond,bond,sond,fond"
    33 
    34 result=text.replace(/(.at)/g,"word($1)");
    35 alert(result);//word(cat),word(bat),word(sat),word(fat)
  • 相关阅读:
    Hibernate Validator
    RocketMQ之八:重试队列,死信队列,消息轨迹
    使用hibernate validator出现
    Hibernate Validator--创建自己的约束规则
    Java应用中使用ShutdownHook友好地清理现场、退出JVM的2种方法
    笔者带你剖析轻量级Sharding中间件——Kratos1.x
    [caffe]深度学习之图像分类模型VGG解读
    类的载入机制
    机器人api(图灵机器人)
    回文串问题总结
  • 原文地址:https://www.cnblogs.com/zhouliang/p/5982172.html
Copyright © 2020-2023  润新知