js相关笔记(十二)

1.将伪数组转换成真数组,Array.from(伪数组对象);


2.对象绑定事件时,只要那个对象还存在,事件的绑定一直都有效,对象的变量的赋值,其实只是 地址的引用发生了改变,变量名只是一个暂时存对象引用的地址的字面量而已。


3.操作表格
◆创建表格:var table=document.createElement("table");
◆在表格中插入行:var tr=table.insertRow(0);表示在表格的第一行之前插入一行,table.insertRow(1);表示在表格的第二行之前插入一行,如果你table.insertRow(5);然后你前面的一行不存在,那么就会无法插入而报错,因为没有第六行,所以无法进行操作,索引值0和-1是例外的,成功插入单元行之后就会返回你插入的这个单元行的元素对象。
◆在表格中的行中插入单元格:var td=tr.insertCell(0);表示在单元行的第一列之前插入一个单元格,与在表格中插入单元行的原理类似,都会返回成功插入的单元行,也会因为前面没有单元格但还强行插入时就会报错,索引值0和-1是例外的。
◆在表格中删除行:table.deleteRow(2);表示删除索引值为2的那一行,索引对应的单元行不存在的话,就会报错。
◆在单元行中删除单元格:tr.deleteCell(2);表示删除当前单元行的单元格索引为2的那一个单元格,索引对应的单元格不存在的话就会报错。
★遍历单元行中的单元格【
    //遍历表格中的行与单元格
    //外循环遍历行
    for(var i=0;i<table.rows.length;i++){
        //内循环遍历列
        for(var j=0;j<table.rows[i].cells.length;j++){
            console.log(table.rows[i].cells[j]);
        }
    }



4.window对象是javascript的bom中的顶级对象,其子对象有document文档对象、frames框架对象、history历史记录对象、location地址对象、navigator导航对象、screen屏幕对象


5.window.open(url,target,各种控制窗体的参数),不常用,但是也有用,比如可以模拟a标签,让任何元素都拥有和超链接一样的页面跳转功能

win = window.open("01-window.html","_black","width=200,height=200,top=100,left=100");


window = object.open([URL ][, name ][, features ][, replace]]]]) 
URL:新窗口的URL地址 
name:新窗口的名称,可以为空 
featurse:属性控制字符串,在此控制窗口的各种属性,属性之间以逗号隔开。 
fullscreen= { yes/no/1/0 } 是否全屏,默认no 
channelmode= { yes/no/1/0 } 是否显示频道栏,默认no 
toolbar= { yes/no/1/0 } 是否显示工具条,默认no 
location= { yes/no/1/0 } 是否显示地址栏,默认no 
directories = { yes/no/1/0 } 是否显示转向按钮,默认no 
status= { yes/no/1/0 } 是否显示窗口状态条,默认no 
menubar= { yes/no/1/0 } 是否显示菜单,默认no 
scrollbars= { yes/no/1/0 } 是否显示滚动条,默认yes 
resizable= { yes/no/1/0 } 是否窗口可调整大小,默认no 
width=number 窗口宽度(像素单位) 
height=number 窗口高度(像素单位) 
top=number 窗口离屏幕顶部距离(像素单位) 
left=number 窗口离屏幕左边距离(像素单位) 



6.location对象也是地址对象,相当于浏览器的地址栏,location对象的属性可以将url解析成各个独立的片段
 ◆href属性,表示当前页面 url地址,也能够实现超链接的页面跳转,但是只能在当前页面跳转。
◆hash属性,  表示url中#后面的内容,包含#,也就是锚点中的内容
◆host属性,表示主机域名,即主机名,包括端口
◆ hostname,表示 主机名
◆pathname ,表示url中的路径部分,即文件的目录及文件名
◆port,表示 端口号
◆protocol,表示因特网服务类型,即 协议 一般是http、https
◆search,表示url?后面跟的参数,即查询的符串
■replace(url地址),和href属性类似,能够实现超链接的页面跳转,但是只能在当前页面跳转,href改变的浏览器地址会记录到历史记录中去,而这个方法改变浏览器地址不会记录到历史记录中去。
■reload(true),也就是刷新,表示重新加载当前页面,加参数true表示始终加载服务器上的数据,不加true可能会加载浏览器缓存中的数据
■assign(url地址),就是href属性底层使用的方法,和href属性类似,也能够实现超链接的页面跳转,也还是只能在当前页面跳转,但是和href属性一样,会将重新分配后的url地址记录到历史记录中去。


7.模拟超链接页面跳转的四种方式
◆window.open(url,target);可以完全实现和超链接一样的页面跳转功能,如window.open(https://www.jd.com,_black);重新打开一个窗体跳转到京东页面,如果把_black改成_self则会在当前页面跳转
◆location.href=url;重新设置当前地址栏的地址,可以模拟超链接的target属性为_self,只会在当前页面跳转,跳转的地址会被记录在历史记录中去。
◆location.replace(url);替换当前地址栏的地址,可以模拟超链接的target属性为_self,只会在当前页面跳转,跳转的地址不会被记录在历史记录中去。
◆location.assign(url);重新分配当前地址栏的地址,可以模拟超链接的可以模拟超链接的target属性为_self,只会在当前页面跳转,跳转的地址会被记录在历史记录中去,因为href属性内部调用的就是location.assign方法。


8.navigator领航或导航对象,可以获取当前客户端中信息,如navigator.userAgent可以获取当前浏览器支持的操作系统,如navigator.platform可以获取当前使用的浏览器的操作系统(不是很准)。


9.history历史记录对象,所有你访问的网站都会存在历史记录对象中,你可以通过回退或者前进来找到你上一次访问的网站或上一次的下一次访问的网站,可以通过

    window.history.back();//后退
    window.history.forward();//前进
    window.history.go(-1);//后退一步
    window.history.go(1);//前进一步
】来实现,使用go方法时可以前进或者后退多步。


10.使用窗体对象的moveTo(x,y)方法,可以实现窗体移动,如果你不断的弹出新窗体,然后再使用这个moveTo()方法,可以制造出类似满屏谈窗口的病毒出来,但是很多浏览器已经默认禁止弹窗了,所以可能无效。


11.定时器的两个种类,循环定时器setInterval,炸弹定时器setTimeout,循环定时器是死循环的执行,炸弹定时器是只会执行一次,定时器的第一个参数是循环执行的功能代码块儿,第二个参数是毫秒为单位的时间, 定时器使用的方式都一样的,都会返回当前定时器的对象,也可以通过clearInterval和clearTimeout来清除当前正在执行的定时器.


12.使用定时器的三种方式
◆【
//第一种使用循环定时器的方式
        setInterval(function(){
            console.log("匿名函数的方式");
        },1000);

◆【
        //第二种使用循环定时器的方式
        function fn(){
            console.log("普通函数的方式");
        }
        setInterval(fn,1000);

◆【
//第三种使用循环定时器的方式
        function fn2(){
            console.log("初始化函数对象:new Function();等同于内部内嵌了一个匿名函数");
        }
        setInterval("fn2()",1000);

★无论是setInterval还是setTimeout都是一样的。


13.定时器是可以清除掉的,设置完定时器之后会返回当前定时器的对象,可以通过clearInterval和clearTimeout来清除当前正在执行的不同类型的定时器

//第一种使用定时器的方式
    var i1 = setInterval(function () {
        console.log("匿名函数的方式");
        //执行完一次之后清除当前定时器
        clearInterval(i1);
    }, 1000);


    //第二种使用定时器的方式
    function fn() {
        console.log("普通函数的方式");
        //执行完一次之后清除当前定时器
        clearInterval(i2);
    }
        var i2 = setInterval(fn, 1000);


    //第三种使用定时器的方式
    function fn2() {
        console.log("初始化函数对象:new Function();等同于内部内嵌了一个匿名函数");
        //执行完一次之后清除当前定时器
        clearInterval(i3);
    }
    var i3 = setInterval("fn2()", 1000);



14.style属性其实是一个行内样式转换后的对象,它无法获取内嵌的样式表中的样式,也无法获取外链的样式表中的样式,更无法获取不再行内样式中的样式,所以,当你使用style对象操作样式属性时,一定注意,你页面标签是否有这个行内样式的属性,如果没有,你只能够给这个行内的样式属性赋值,并不能拿它参与运算的判断或者运算的赋值 +=  -=  *=  /=之类的运算。


15.定时器对象其实是一个number类型的。







posted @ 2018-06-10 18:05  我叫贾文利  阅读(93)  评论(0编辑  收藏  举报