js学习笔记(一)

来源:互联网 发布:英国gpa算法 编辑:程序博客网 时间:2024/05/16 01:58

1.几个js小技巧

2.Array对象的几个方法

3.操作文档中的form对象

4.js正则表达式使用方式

5.js获取顶层窗口对象的几种方法


一、几个js小技巧

① 使用数组的length属性

var a1 = a2 = [1,2,3];a1 = [];

以上代码使得a1指向空数组,但是a2还指向[1,2,3],如果使用a1.lenth = 0,则引用不会变而是将数组清空,这样a1,a2就指向同一个空数组了。

②数组的push方法

var a1 = [1,2,3];var a2 = [4,5,6];Array.prototype.pust.apply(a1,a2);

以上代码执行后a1=[1,2,3,4,5,6],如果使用常规的var a3 = a1.concat(a2);则需要多构造一个变量。

③特征检测

if(window.opera)    //some code;else    //some code;

这样检测需要初始化特征对象,而是用以下方式检查 秘钥是否在对象里效率更高

if("opera" in window)    //some codeelse    //some code

④检查对象是否为数组

使用typeof返回值包括数字、字符串、对象、函数、未定义对象和布尔值,但是不包括数组类型。是否是数组可以用如下方式判断:

Object.prototype.toString.call(arrObject);

这样就能检测arrObject是不是一个数组对象了。


二、Array对象的几个方法

①concat() 连接两个或更多数组,并返回结果

var a = new Array(1,2);var b = new Array(3,4);var c = new Array(5,6);var d = a.concat(b);var e = a.concat(b,c);var f = a.concat(7,8);
    以上结果为d=[1,2,3,4],e=[1,2,3,4,5,6,],f=[1,2,7,8]。

②pop() 删除并返回数组的最后一个元素

③push() 向数组末尾添加一个或多个元素,返回新的长度

④shift() 删除并返回数组的第一个元素

⑤unshift() 想数组开头添加一个或多个元素,返回新的长度

⑥reverse() 倒序排列数组元素

⑦sort() 升序排列数组元素

⑧slice() 返回已有数组的若干指定元素组成的新数组

var a = new Array(1,2,3,4,5,6,7);var b = a.slice(2);//b=[3,4,5,6,7]var c = a.slice(2,5);//c=[3,4,5]var d = a.slice(-2);//d=[6,7]

⑨toString() 返回数组的字符串形式

⑩join() 返回一个由指定的连接符将数组元素连接成的字符串

var a = new Array(1,2,3);var b = a.join("#");//返回"1#2#3"var c = a.join();//没有连接符返回数组自身[1,2,3]var d = a.join("");//空字符串和没有连接符不是相同的概念,此处返回"123"

三、操作文档中的form对象

    可以通过form表单的name属性获取表单对象,通过表单对象的elements属性获得该表单对象所包含的表单元素。

<form name="fom">    <input type="text" name="t1" value="t1"/>    <input type="text" name="t2" value="t2"/>    <input type="checkbox" name="hobby" value="swimming"/>    <input type="checkbox" name="hobby" value="running"</form><script type="text/javascript">var arr = document.fom.elements;//使用var arr = document.fom或var arr = document.forms[0]或var arr = document.forms[0].elements效果相同for(var i = 0; i < arr.length; i++){alert(arr[i].value);}</script>
    以上程序将先后alert出“t1”、“t2”、“swimming”、“running”。

四、js正则表达式使用方式

var reg = /\w+\d+/;    //或者var reg = new RegExp("\\w+\\d+");alert(reg.test("fasdfa1"));
    使用RegExp对象建立正则表达式的时候引号内的"\"字符需要多加一次转义,有时候这会让语义变得更加不可读,所以建议使用第一种方式创建正则表达式对象。

五、js获取顶层窗口对象的几种方法

① 如果知道当前是第几层子窗口,当然可以通过var win = window.parent.parent.....parent; 这种方式获取顶层window对象。

② 使用var win = window.top; 可以直接获得顶层window对象。

③ 编程方式实现

    这种方式需要在顶层窗体中设置一个隐藏的DOM对象:

<div id="tag" style="display:none"></div>
    然后在子页面的js代码中执行如下程序:

var win = window.selt;var idTag = win.document.getElementById("tag");while(!idTag){        win = win.parent.selt;        idTag = win.document.getElementById("tag");}//执行以上程序后win指向顶层window对象


原创粉丝点击