【JS】JavaScript高级程序设计笔记 第2章 ECMAScript基础

alert(typeof sText); //返回类型string

Number类型

var iNum = 070; //八进制的70

var iNum = 0xAB; //十六进制的AB

var fNum = 3.25e5 //科学计数法325000

var fNum = 3.25-e5 //科学计数法0.0000325

专门标示无穷大的值infinity

Number.POSITIVE_INFINITY = infinity;

Number.NEGATIVE_INFINITY = -infinity;

var iResult = iNum*some_really_large_number;
if (isFinite(iResult)) { //判断是否为有限数字
alert("有限数字");
}else {
alert("无限数字");
}

alert(isNaN("blue")); //非数(not a number)成立返回true

alert(isNaN("123")); //非数不成立,返回false

String类型

字符字面量

\n
换行

\t
制表符

\b
空格

\r
回车

\f
换页符

\\
反斜杠

\'
单引号

\"
双引号

\0nnn
八进制代码nnn(n是0到7中的一个八进制数字)表示的字符

\xnn
十六进制代码nn(n是0到F中的一个十六进制数字)表示的字符

\unnn
十六进制代码nnn(n是0到F中的一个十六进制数字)表示的字符

字符串的toString()方法,将任何类型转化为字符串

var iNum=10;
iNum.toString(); //"10"
iNum.toString(2); //"1010"
iNum.toString(8); //"12"
iNum.toString(16); //"A"

parseInt() 与 parseFloat()

将非数字的原始值转换成数字,从左边第一位数字开始判断,如原始值中掺杂其他字符,则判断到当前位置后停止判断,可后接参数指定原始值的进制 (P19)

例子:
var iNum = parseInt("123blue");    //返回 123
var iNum = parseInt("0xA");          //返回 10
var iNum = parseInt("22.5");          //返回 22
var iNum = parseInt("NaN");          //返回 NaN

var iNum = parseInt("11",2);        //将原始值看做2进制,返回十进制 3
var iNum = parseInt("11",8);        //将原始值看做8进制,返回十进制 9
var iNum = parseInt("11",10);        //将原始值看做10进制,返回十进制 11

如十进制前包含0,如01234,为防止将其当成8进制数处理,最好加参数
var iNum = parseInt("01234",10);   //返回1234

var iNum = parseFloat("22.34.5");     //返回 22.34   其它同parseInt()

Boolean() 强制类型转换

当要转换的值至少有一个字符串、非0数字或对象时,Boolean()返回true。如果该值是空字符串、数字0、undefined或null,它将返回false。

例子:
var b1 = Boolean("");
var b1 = Boolean("null");
var b1 = Boolean("0");      //以上三个返回值均为false

var b1 = Boolean("hi");
var b1 = Boolean("100");
var b1 = Boolean("new Object()");     //以上三个返回值均为true

Number() 强制类型转换

与parseInt和parseFloat类似,只是它转换整个值,而不是部分值,当整个值无法转换时,Number()将返回NaN。

例子:
Number(false);             //返回0
Number(null);               //返回0
Number(undefined);     //NaN
Number(new Object);   //返回NaN
Number("5.5");            //返回5.5
Number("5.6.7");          //返回NaN

String() 强制类型转换

与toString()不同在于,对null或undefined值强制转换可以生成字符串而不引发错误

例子:
var s1 = String(null);         //"null"

var oNull = null;
var s2 = oNull.toString();    //不会转换,而且会产生错误

toFixed() ,toExponential()

toFixed()方法返回具有指定小数的数字的字符串标示,小数范围0-20,超出范围的值会引发错误(P24)

例子:
var oNumObj = new Number(99);
alert( oNumObj.toFixed(2) );    //输出"99.00"

toExponential()方法返回用科学计数法表示的字符串形式,参数为指定数字的小数,会根据参数对原数字取近似值(P24)

例子:
var oNumObj = new Number(99);
alert( oNumObj.toExponential(1) );    //输出"9.9e+1"

toPrecision()方法返回最有意义的形式,他的参数表示数的数字总是,不包括指数(P24)

例子:
var oNumObj = new Number(99);
alert( oNumObj.toPrecision(1) );    //输出"1e+2",近似到100,然后取1位数字,不包括e

WIth

with语句用于设置代码在特大对象中的作用域(P50)

例子:
var sMessage = "hello";
with ( sMessage ) {
     alert ( toUpperCase() );    //toUpperCase被with指定为sMessage,所以输出"hello"
}

charAt(),charCodeAt()

根据指定的位置,查找字符串的单个字符(P25)

例子:
var sMessage = "hello";
alert ( sMessage.charAt(1) );    //输出"e"
var sMessage = "hello";
alert ( sMessage.charCodeAt(1) );    //输出"101"
.

concat()

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

例子:
var s1 = "hello";
var s2 = s1.concat(" world");
alert ( s2 );    //输出"hello world"
实际中常见的是用加号连接字符串
var s1 = "a";
var s2 = s1+"b";
alert(s2);     //输出"ab"
.

indexOf(),lastIndexOf()

返回指定字符串在另一个字符串中的位置,如没找到,则返回-1。两者不同之处在于indexOf()在字符串开头开始检索,而lastIndexOf()则是从字符串结尾开始检索(P26)

例子:
var s1 = "abcdcba";
alert ( s1.indexOf("a") );    //输出位置"0"
alert ( s1.lastIndexOf("a") );    //输出位置"6"
实际中可以用某些特殊字符串当做标记,将需要的内容放在两个标记中间,然后用该方法取得需要内容在整个文档中包含的前后位置,用slice()取得内容。

slice(),substring()

接受1到2个参数,返回由参数指定截取的字符串,第一关参数是子串的起始位置,第二个参数是子串终止前的位置,也就是说,终止位置处的字符串不包括在返回值内,与concat()一样,不改变String对象自身的值。它们只返回原始的String值。保持String对象不变。(P27)

例子:
当参数为正值,slice()与substring()是一样的.
var s1 = "hello world";
alert ( s1.slice(3) );    //输出位置"lo world"
alert ( s1.substring(3) );    //输出位置"lo world"
alert ( s1.slice(3,7) );    //输出位置"lo w"
alert ( s1.substring(3,7) );    //输出位置"lo w"
当参数为负数,slice()与substring()有如下区别,slice()参数为负时,会变成从后边数,而substring会简单把负数变成0.
var s1 = "hello world";
alert ( s1.slice(-3) );    //输出位置"rld"
alert ( s1.substring(-3) );    //输出位置"hello world"
alert ( s1.slice(3,-4) );    //输出位置"lo w"
alert ( s1.substring(3,-4) );    //输出位置"hel"
.

toUpperCase(),tolowerCase()

转换大小写。(P28)

例子:
var s1 = "AAbbcc";
alert ( s1.toUpperCase() );    //输出位置"AABBCC"
alert ( s1.toLowerCase() );    //输出位置"aabbcc"
.

arguments()

在函数中,无需明确指出参数名,就能访问它们。第一个参数可以用arguments[0]访问,第二个参数可以用 arguments[1]访问,依次类推,无需声明参数,无需指定参数个数,ECMAScript最多接受25个参数而不会引发错误。任何遗漏的参数都会以undefine传递给函数,多余的参数将被忽略(P53)

例子:
function sum () {
     var s=0;
     for(i=0;i<arguments.length;i++){
          s += arguments[i]
     }
     return s;     //返回的值为10
}
var a = sum(1,2,3,4);
alert(a);

join()

给数组加上自定义的分隔符并输出连接后的字符串(P62)

例子:
var aColor = ["red","green","blue"];
alert(aColor.join(","));     //返回"red,green,blue",与用aColor.toString()或aColor.valueOf()返回相同
alert(aColor.join("-spring-"));     //返回"red-spring-green-spring-blue"

split()

指定分隔符,按此分隔符将字符串转成数组.....如果把空字符串指定成分隔符,split()方法将返回数组中每个项是字符串的字符(P62)

例子:
var aColor = "red,green,blue";
alert(aColor.split(","));     //返回数组"red","green","blue"
var aColor = "red";
alert(aColor.split(""));    //空字符为分隔符时,返回数组"r","e","d"

setTimeout() , setInterval() , clearTimeout() , clearInterval()

指定按时间延迟触发,第一个触发一次,第二关循环触发(P127)

例子:
<script type="text/javascript">
function say(){
alert("123");
}
function tip() {
aaa = setTimeout("say()",2000);
}
</script>
<div id="box">
<p><a href="index.aspx" onmouseover="tip()" onmouseout="clearTimeout(aaa);">点这直接进入</a></p>
</div>

BOM中document对象 的 属性

lastModified 页面上次修改日期
referrer 浏览器历史中后退一个位置的URL
title 网页<title>中显示的文本 可读写
URL
当前载入的页面的URL 可读写 (P130)

例子:
document.title = "可以更改标题";
document.URL = http://hi.baidu.com/adsiion ; //可以跳转到指定页,也可以获得当前页地址

BOM中document对象 的 集合

anchors 页面中所有锚点的集合
applets 页面中所有applet的集合
embeds 页面中所有嵌入式对象的集合,由<embed />标签表示
forms 页面中所有表单的集合
images 页面中所有图像的集合
links 页面中所有链接的集合

例子:
document.images[0] = "0.gif";
document.images["imgName"] = "0.gif";
document.forms[0]
document.forms["formName"]

BOM中document对象 的 方法

write() 页面文档中写入字符串
writeln() 页面文档中写入字符串, 并加入\n
注意: 要插入内容属性,必须在完全载入页面前调用write()和writeln()方法。如果任何一个方法是在页面载入后调用的,它将抹去页面的内容,显示指定的内容。
open() 打开文档进行编写
close() 关闭用open()打开的文档

例子:
var oNewWin = window.open("about:blank", "newwindow", "height=150,width=300,top=10,left=10,resizeable=yes");
oNewWin.document.open();
oNewWin.document.write("<html><head><title>新窗口</title></head>");
oNewWin.document.write("<body>这是一个新窗口</body></html>");
oNewWin.document.close();

location对象

获取操作全部或部分地址,常用的href(),reload()从缓存重载,reload(true)从服务器端重载 (P132)

详细参见: http://www.w3school.com.cn/htmldom/dom_obj_location.asp

navigator对象

查看浏览器信息 http://www.w3school.com.cn/htmldom/dom_obj_navigator.asp

screen对象

查看用户屏幕信息

availHeight 窗口可以使用的屏幕高度,其中包括操作系统元素(入windows的工具栏)需要的空间

colorDepth 显示器颜色位数,一般为16或32位

height 屏幕的高度

例子:
window.moveTo(0,0);
window.resizeTo(screen.availHeight , screen.availWidth);    //将窗口拉直全屏

posted on 2011-04-04 10:06  Eason Jiang  阅读(302)  评论(0)    收藏  举报

导航