js 高级学习笔记 ( 七 ) 引用类型

JS对象与基本类型详解
本文深入探讨了JavaScript中的各种对象类型,包括Object、Boolean、Number及String对象的基本属性和方法,并通过具体示例展示了这些对象如何在实际编程中应用。

1,  引用类型通常叫 , 类 class

 

var   o = new Object();

    有参数要用括号, 没有参数 也可以不用括号 

 

var o = new Object;

 

     注意:尽管括号不是必需的,但是为了避免混乱,最好使用括号。

 

2,  ECMAScript 中的Object 对象和 java中的Object 对象很像. 

 

     其他的对象都继承自Object 对象 , Object的所有属性方法都会出现在其他对象中. 

 

 

3,  Object 属性 

 

      constructor

                   对创建对象的函数的引用 (指针),   该指针指向Object()函数 .

      Prototype 

对该对象原型的引用, 默认返回Object 对象的实例. 

 

4,  Object 方法

 

     判断对象是不是有某个属性 :                            hasOwnProperty(property)     

 

     判断对象是不是另一个对象的原型:                    isPrototypeof(object)

 

     判断这个属性是不是能用for ... in 进行 遍历       propertyIsEnumerable

 

     返回对象的原始字符串表示     toString()

 

     返回最适合该对象的原始值 ,  大部分情况下和 toString()方法相同 . 

 

     -----------------------

      上面的每种属性方法都会被其他对象覆盖.

 

 

5,   Boolean 对象 

 

      Boolean 对象是对 boolean 原始类型的引用类型

 

    ----------

var  oBooleanObj = new Boolean(true) ;

    总之 这玩意儿不好用 ,直接用原始类型好了 .

 

6,   Number 对象 

 

      number对象的引用类型  Number对象 ...

 

var oNumberObject = new  Number(95);
  

     toFixed() 方法 :  返回指定位数的小数的字符串 .

 

var nMyNumber = new Number(89);
alert(nMyNumber.toFixed( 2 )) ;         // 输出 89.00

    toFixed() 方法能返回 0-20 小数的数字, 超过了就会引发错误 .

 

    toExponential ()方法表示 科学计数法

 

    toPrecision() 方法 邪门的很 , 

    -----------

    number对象也少用 .http://www.w3school.com.cn/js/jsref_obj_number.asp 参考手册

 

 

7,  String 对象 

 

      toString()方法 和 valueOf 方法相同.  

 

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

    -------------

   怎么知道字符串有多长呢  ?

 

    length 属性

 

var oStringObject = new String("hello world");
alert(oStringObject.length);	//输出 "11"  

   ------------

   怎么样取得字符串指定位置的值呢  ? 

   charAt() 方法和 charCodeAt()方法 

 

var oStringObject = new String("hello world");
alert(oStringObject.charAt(1));	//输出 "e"

   charAt ()  返回指定位置的字符的字符串.   

 

var oStringObject = new String("hello world");
alert(oStringObject.charCodeAt(1));	//输出 "101"

 

    charCodeAt () 得到ASCII 码 .

 

    ------- 

    怎么样连接两个字符串呢 ?  

     concat() 方法 

 

var oStringObject = new String("hello ");
var sResult = oStringObject.concat("world");
alert(sResult);                      //输出 "hello world"
alert(oStringObject);            //输出 "hello "

 

    concat() 方法连接两个字符串并保持 原字符串对象不变 .

    可以用 "+" 号来代替 .

 

   ---------

    怎么知道字符串中是否存在某个字符 ?

 

     indexOf () 方法 ,  返回字符的下标 , 找不到就返回 -1 .

 

var oStringObject = new String("hello world!");
alert(oStringObject.indexOf("o"));		输出 "4"
alert(oStringObject.lastIndexOf("o"));	输出 "7"

   lastIndexOf()  和 indexOf()相反 从字符串的末尾 开始向前检索 .

 

   ---------

    怎么进行字符串排序比较 ?? 按字母的先后顺序 比较 ... 

 

     localCompare()方法

 

var oStringObject = new String("yellow");
alert(oStringObject.localeCompare("brick"));		//输出 "1"
alert(oStringObject.localeCompare("yellow"));		//输出 "0"
alert(oStringObject.localeCompare("zoo"));		//输出 "-1"
 

    那怎么判断 两个值 的前后呢,  用什么来标识呢  ?  

 

    用正数 ,负数 , 和  零 .  所以不是一定会返回 1, 0 和-1 , 的 实现不同会有不同. . 

 

var oStringObject1 = new String("yellow");
var oStringObject2 = new String("brick");

var iResult = sTestString.localeCompare("brick");

if(iResult < 0) {
  alert(oStringObject1 + " comes before " + oStringObject2);
} else if (iResult > 0) {
  alert(oStringObject1 + " comes after " + oStringObject2);
} else {
  alert("The two strings are equal");
}

   按上面的写比较好. 

 

   ---------

 

   怎么样去截取字符串呢 ?  

 

    有两个方法 slice() ,subString() 方法..  

    他们和concat() , 方法一样不会改变String原始对象 , 只是返回String的值

 

    那他们有什么区别,不都一样吗  ?  有什么应用场景

 

    subSting 处理的参数都是正数 , 碰到负的参数就变成 0 . 

    slice() 会用 字符串的长度 加上负数 , 作为新的参数. 

 

var oStringObject = new String("hello world");
alert(oStringObject.slice("-3"));		        //输出 "rld"
alert(oStringObject.substring("-3"));	        //输出 "hello world"
alert(oStringObject.slice("3, -4"));		//输出 "lo w"
alert(oStringObject.substring("3, -4"));	//输出 "hel"

   当只有参数 -3 时,slice() 返回 "rld",substring() 则返回 "hello world"。这是因为对于字符串 "hello world",slice("-3") 将被转换成 slice("8"),而 substring("-3") 将被转换成 substring("0").

 

   ---------

   怎么进行大小写的转换类 >?<

   toLowerCase() 

   toUpperCase()

   toLocalLowerCase()

   toLocalUpperCase()  

 

   为什么会有 toLocal 方法呢,  个别地区的大小写转换有特定的规则 ,所以不知道的地方可以用Local ..

   ----------

   怎么判断两个 类型是否一样  ?

 

   js 里面有 instanceof 和Java的一样 

 

var oStringObject = new String("hello world");
alert(oStringObject instanceof String);	//输出 "true"
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值