本文整理JavaScript开发中必须掌握的基础语法与常用API。内容涵盖变量声明、数据类型转换、字符串与数学运算方法,以及DOM元素获取与表单处理。同时详解window对象下的窗口控制、历史记录、对话框交互及时间处理函数,为初学者提供全面的参考速查。
JavaScript 基础语法与类型
使用 document.write("") 方法可向文档输出内容。
JavaScript 中单行注释使用双斜杠 // 表示。
传统 HTML 文档的结构顺序为:document 根节点包含 html 元素,html 下依次包含 head 和 body。
浏览器窗口内的 DOM 树结构顺序为:window 对象包含 navigator、screen、history、location 和 document。
获取表单中指定元素的名称或值,可通过 document.getElementById("表单中元素的ID号").name 或 .value 实现。
实现小写转大写的 JavaScript 代码为:document.getElementById("output").value = document.getElementById("input").value.toUpperCase();。
JavaScript 中的值类型包括:String、Number、Boolean、Null、Object 和 Function。
将字符型转换为数值型可使用 parseInt() 和 parseFloat() 函数。
将数字转换为字符型,可通过执行 (""+变量) 的方式实现。
获取字符串长度的属性为 length。
JavaScript 中字符与字符之间的连接使用加号 + 操作符。
JavaScript 中的比较操作符包括:==(等于)、!=(不等于)、>(大于)、>=(大于等于)、<(小于)和 <=(小于等于)。
在 JavaScript 中声明变量需使用 var 关键字。
JavaScript 的判断语句结构为:if(condition){}else{}。
JavaScript 中的循环结构语法为:for([initial expression];[condition];[upadte expression]) {inside loop}。
用于中止循环的命令是 break。
JavaScript 中函数的定义语法为:function functionName([parameter],...){statement[s]}。
当文件中存在多个 form 表单时,可以使用 document.forms[0] 和 document.forms[1] 来分别引用。
窗口操作包括:打开窗口 window.open(),关闭一个窗口 window.close(),以及获取窗口本身 self。
状态栏的设置语法为:window.status="字符";。
弹出提示信息框使用 window.alert("字符");。
弹出确认框使用 window.confirm();。
弹出输入提示框使用 window.prompt();。
指定当前显示链接的位置可通过 window.location.href="URL" 设置。
取出窗体中所有表单的数量使用 document.forms.length。
关闭文档的输出流使用 document.close();。
字符串追加连接符为 +=。
创建文档元素的方法包括 document.createElement() 和 document.createTextNode()。
获取元素的标准方法是 document.getElementById()。
DOM 元素与表单操作
设置表单中所有文本型成员的值为空,需遍历表单元素。
var form = window.document.forms[0]
for (var i = 0; i<form.elements.length;i++){
if (form.elements.type == "text"){
form.elements.value = "";
}
}
判断复选按钮是否选中,使用 document.forms[0].checkThis.checked 属性,该属性返回 TRUE 或 FALSE。
获取单选按钮组的长度,语法为 document.forms[0].groupName.length(注意单选按钮名称必须相同)。
判断单选按钮组是否被选中同样使用 checked 属性。
获取下拉列表框的值,语法为 document.forms[0].selectName.options[n].value,其中 n 可通过下拉列表框名称加上 .selectedIndex 确定。
字符串与数学处理函数
字符串的定义方式为:var myString = new String("This is lightsword");。
字符串转大写使用 string.toUpperCase();,转小写使用 string.toLowerCase();。
返回字符串2在字符串1中出现的位置使用 String1.indexOf("String2"),若返回值 !=-1 则说明未找到。
取字符串中指定位置的一个字符使用 StringA.charAt(9);。
取出字符串中指定起点和终点的子字符串使用 stringA.substring(2,6);。
常用数学函数包括:Math.PI(返回圆周率)、Math.SQRT2(返回开方)、Math.max(value1,value2)(返回最大值)、Math.pow(value1,10)(返回 value1 的十次方)、Math.round(value1)(四舍五入)、Math.floor (Math.random()*(n+1))(返回随机数)。
日期对象与窗口控制
定义日期型变量的方式为:var today = new Date();。
日期函数列表包括:dateObj.getTime() 得到时间,dateObj.getYear() 得到年份,dateObj.getFullYear() 得到四位年份,dateObj.getMonth() 得到月份,dateObj.getDate() 得到日,dateObj.getDay() 得到星期几,dateObj.getHours() 得到小时,dateObj.getMinutes() 得到分,dateObj.getSeconds() 得到秒。设置方法包括:dateObj.setTime(value)、dateObj.setYear(val)、dateObj.setMonth (val)、dateObj.setDate(val)、dateObj.setDay(val)、dateObj.setHours、dateObj.setMinutes(val)、dateObj.setSeconds(val)。注意:此日期时间从 0 开始计。
FRAME 的表示方式包括:[window.]frames[n].ObjFuncVarName、frames["frameName"].ObjFuncVarName 和 frameName.ObjFuncVarName。
parent 代表父亲对象,top 代表最顶端对象。
打开子窗口的父窗口对象为:opener。
表示当前所属位置的关键字是:this。
当在超链接中调用 JS 函数时,以 (javascript :) 开头后加函数名。
在老的浏览器中不执行此 JS 的写法为:<!-- //-->。
引用外部 JS 文件的代码为:<script type="text/javascript" src="aaa.js"></script>。
指定在不支持脚本的浏览器显示的 HTML 使用 <noscript></noscript>。
高级交互与内置对象
当超链接和 onclick 事件同时存在时,老版本浏览器转向 a.html,否则转向 b.html。示例:<a href="a.html" onclick="location.href='b.html';return false">dfsadf</a>。
JavaScript 的内建对象包括:Array、Boolean、Date、Error、EvalError、Function、Math、Number、Object、RangeError、ReferenceError、RegExp、String、SyntaxError、TypeError、URIError。
JavaScript 中的换行符为:\n。
窗口全屏大小的实现代码为:<script>function fullScreen(){ this.moveTo(0,0);this.outerWidth=screen.availWidth;this.outerHeight=screen.availHeight;}window.maximize=fullScreen;</script>。
JavaScript 中的 all 代表其下层的全部元素。
设置 JS 中的焦点顺序,语法为:document.getElementByid("表单元素").tabIndex = 1。
innerHTML 的值是表单元素的 HTML 内容,例如 <p id="para">"how are <em>you</em>"</p>,则 innerHTML 的值为:how are <em>you</em>。
innerText 的值与 innerHTML 类似,但不会显示 <em> 等 HTML 标记。
contentEditable 可设置元素是否可被修改,isContentEditable 返回是否可修改的状态。
isDisabled 判断是否为禁止状态,disabled 属性用于设置禁止状态。
length 属性用于取得长度,返回整型数值。
addBehavior() 是一种 JavaScript 调用的外部函数文件,其扩展名为 .htc。
window.focus() 使当前窗口在所有窗口之前显示。
blur() 指失去焦点,与 focus() 功能相反。
select() 指元素处于选中状态。
防止用户对文本框中输入文本的方法为:onfocus="this.blur()"。
取出该元素在页面中出现的数量,语法为:document.all.tags("div(或其它HTML标记符)").length。
JavaScript 中分为两种窗体输出:模态 window.showModaldialog() 和非模态 window.showModeless()。
状态栏文字的设置语法为:window.status='文字',默认状态栏文字设置语法为:window.defaultStatus = '文字.';。
添加到收藏夹的语法为:external.AddFavorite("http://www.dannyg.com";,"jaskdlf");。
JavaScript 中遇到脚本错误时不做任何操作的设置语法为:window.onerror = doNothing;,指定错误句柄的语法为:window.onerror = handleError;。
JavaScript 中指定当前打开窗口的父窗口使用 window.opener,支持 opener.opener... 的多重继续。
JavaScript 中 self 指的是当前的窗口。
JavaScript 中状态栏显示内容的语法为:window.status="内容"。
JavaScript 中 top 指的是框架集中最顶层的框架。
关闭当前窗口的语法为:window.close();。
提出是否确认的框的代码为:if(confirm("Are you sure?")){alert("ok");}else{alert("Not Ok");}。
JavaScript 中的窗口重定向语法为:window.navigate("http://www.sina.com.cn";);。
JavaScript 中的打印功能使用 window.print()。
提示输入框的语法为:window.prompt("message","defaultReply");。
JavaScript 中的窗口滚动条滚动语法为:window.scroll(x,y)。
JavaScript 中的窗口滚动到指定位置使用 window.scrollby。
JavaScript 中设置时间间隔的语法为:setInterval("expr",msecDelay) 或 setInterval(funcRef,msecDelay) 或 setTimeout。
JavaScript 中的模态显示在 IE4+ 有效,在 NN 中无效,语法为:showModalDialog("URL"[,arguments][,features]);。
退出之前使用的句柄代码为:function verifyClose(){event.returnValue="we really like you and hope you will stay longer.";}} window.onbeforeunload=verifyClose;。
当窗体第一次加载时使用的文件句柄为:onload()。
当窗体关闭时调用的文件句柄为:onunload()。
window.location 的属性包括:protocol(http:)、hostname(www.example.com)、port(80)、host(www.example.com:80)、pathname("/a/a.html")、hash("#giantGizmo",指跳转到相应的锚记)、href(全部的信息)。
刷新当前页面使用 window.location.reload()。
window.history.back() 返回上一页,window.history.forward() 返回下一页,window.history.go(返回第几页,也可以使用访问过的URL)。
document.write() 不换行输出,document.writeln() 换行输出。
防止链接文字折行的代码为:document.body.noWrap=true;。
变量名.charAt(第几位) 用于取该变量的第几位的字符。
"abc".charCodeAt(第几个) 用于返回第几个字符的 ASCII 码值。
字符串连接可使用 string.concat(string2),或用 += 进行连接。
变量.indexOf("字符",起始位置) 用于返回第一个出现的位置(从 0 开始计算)。
string.lastIndexOf(searchString[,startIndex]) 用于返回最后一次出现的位置。
string.match(regExpression) 用于判断字符是否匹配。
string.replace(regExpression,replaceString) 用于替换现有字符串。
string.split(分隔符) 用于返回一个数组存储值。
string.substr(start[,length]) 用于取从第几位到指定长度的字符串。
string.toLowerCase() 用于使字符串全部变为小写。
string.toUpperCase() 用于使全部字符变为大写。
parseInt(string[,radix(代表进制)]) 用于强制转换成整型。
parseFloat(string[,radix]) 用于强制转换成浮点型。
isNaN(变量) 用于测试是否为数值型。
定义常量的关键字为 const,定义变量的关键字为 var。