三爪的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); return:hello 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的多少此方x1或0,这里多少次方就是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的话,它也不会再去计算第二个表达式.
浙公网安备 33010602011771号