三爪的JS奋斗史 - 第三回

今天的内容好多都在以前的书里面有所了解,但ECMAscript还是有其他不同的定义的.还是弱弱的记录下.

虽然很白..但毕竟是基础..好多时候我在写些小脚本的情况下,老不清某个 方法 和 属性 .回头感叹..

啊...基础不好啊..
废话不多说,发完了。在复习下..噢噢~~~好学生必备法则..复习回味...
Number类

 

Number类是Number原始类型的引用类型,要创建Number对象采用如下:

Var oNumberObject = new Number(55);

Number

valueOf(返回类的原始值) ;

toFixed(返回指定位数的小数位字符串);

toExponential(返回科学计数的字符串);

toPrecision(); 四个方法,但为了程序健壮,建议使用原始值

 

 

string

String类是String原始类型的对象表示法

Var sStringObject = new String(“hello world”);

 

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

 

属性length 返回字符串中的个数;

charAt()返回 单个字符,charCodeAt返回单个字符的编码 a=97 A=65

 

concat()方法 + 相同,但保持原始值不变;

var a = new String(“hello”);

var sResult = a.concat”world”;

Var sResult = a + “world”; 相同;但concat更能体现逻辑行为;

alert(sResult);               returnhello world

 

indexOf( ) 方法是从位置0开始检索子串;

lastIndexOf( ) 方法是从字符串的结尾开始检索子串;

如:

Var sArray = new String(“hello world”)

Alert(sArray.indexOf(“o”));

Alert(sArrat.lastIndexOf(“o”));

 

localeCompare(),对字符串值进行排序

 

slice() substring() 返回要处理的字符串子串,方法只有在参数为负数时有区别,

slice方法会用字符串的长度加上参数,substring()方法则将其作为0处理。

如:Var sArray = new String(“hello world”)

Alert(sArray.slice(3));        return: lo world;

Alert(sArray.slice(-3));       return:  rld;

Alert(sArray.substring(-3));   return: hello world;

 

 

大小写转换:

toLowerCase(); toUpperCase(); 是原始方法

toLocaleLowerCase();toLocaleUpperCase() 是基于特定的区域实现的.

使用 区域 特定的方法比较安全.

 

String类的所有属性和方法都可以应用在String原始值上,因为它们是伪对象;

 

Instanceof 运算符

Instanceof方法要求开发者明确的确认对象为某特定类型

如: var a = new String(“hello world”);

      Alert(a instanceof String);   return: true;

 

运算符

 

1.       delete 运算符删除对以前定义的对象属性或方法的引用,但它不能删除未定义的属性或方法;

 

2.       void 运算符对任何值都返回 undefined,该运算符通常用于避免输出不应该输出的值;

如:

<a href=”javascript:window.open(‘about:blank’)”>Click me</a> 会在页面上返回 [Object]

应该避免如下

<a href=”javascript:viod(window.open(‘about:blank’) )” >Click me</a>

 

3.       前增量/前减量运算符   ++i,--i, 不解释;

 

4.       后增量/ 后减量运算符 a++, a--;不解释;

 

5.       一元加法 一元减法

尽管一元加法对数字无作用,但对字符串却有效果,会把数字型String变成Number;

Var sNum = “25”;

Alert(typeof sNum); return: String;

Var iNum = +sNum;

Alert(typeof iNum);    return:Number;

   一元减法会对数字求负。它也会把String变为Number,还会对它求负

 

位运算符

  

   整数,整数分为有符号整数与无符号整数..32位, 32位是符号位.溢出的话可能改变符号位.数值范围 -2147483648 2147483647 ;关于二进制 10进制就不写了,反正就是2的多少此方x10,这里多少次方就是2进制所在的位置.当然是从0开始算;

 

位运算符NOT

位运算NOT由否定号(~)表示,NOT的实质是对数字求负,然后减1

如:var iNum = 25; var iNum2= ~iNum; alert(iNum2); return: -26;

位运算符AND

运算符AND 和号( & )表示,直接对数字的二进制形式进行运算。

只有1 & 1的时候结果才为1,其他情况皆为0

 

位运算符OR 

运算符or 和号( | )表示,直接对数字的二进制形式进行运算。

只有0 & 0的时候结果才为0,其他情况皆为1;

 

位运算符XOR 异或

^ 表示,只有1 ^ 0的情况 下为 1 ,其他情况为0

 

左移运算,

<<表示, 左移操作保留符号位,因为在ECMAstript中开发者不能直接访问第32个数位,

 

有符号的右移运算

>>表示,会保留第32个数位;

 

无符号的右移运算

>>>表示,哈哈..这个就会改变符号位了..要注意咯.

 

 

 

Boolean运算符

1.逻辑not 由( )表示.not运算符返回的一定是Boolean

 

   如果运算数是对象,返回false;

    如果运算数是0 返回 true;

    如果是0以外的任何数字 返回false;

    如果是null,返回true;

    如果是NaN~~~~~~~

    如果是undefined ,发生错误- -!!!;

 

常用的例子

 哈哈,我一般用来检测浏览器是否支持某个DOM

if(!document.getElementById) return false;

 if(!document.getElementsByTagName(“p”)) return false;

当然还可以作为跳出while循环的条件.

var bFound = false;

   Var I = 0;

   While(!bFound){If( 某某条件 ){ bFound = true;} Else { /*……*/ }}

 

 

2.逻辑AND运算符,由双和号 && 表示;

      如果一个运算数是对象,另一个是Boolean,返回该对象

      如果两个运算符都是对象,返回第二个对象

      如果某个运算符为null 返回null

      如果~~~~~~~~~~~~NaN 返回 NaN

      如果为undefined 发生错误

 另外如果第一个表达式为false的话,它是不会再去计算第二个表达式.

 

3.逻辑or运算符 ,由双竖线( || )表示

     

如果两个运算符都是对象,返回第一个对象

      除此之外与and相同

如果第一个表达式为true的话,它也不会再去计算第二个表达式.

 

posted @ 2009-09-15 23:33  三爪  阅读(158)  评论(0)    收藏  举报