js总结4(bom&dom&ES5&ES6)

一、ES5新提供的

        1、保护对象:每个对象都有四大特性:"属性名":{"value":实际保存值的地方,"writable":true,"enumerable":true,"configurable":true},    configurable:控制着是否可以被删除, 总开关,一旦改为false其他特性不能再做修改。

        三个级别:防扩展:Object.preventExtensions(obj);密封:Object.seal(obj);冻结:Object.freeze(obj);

        2、数组新API:

        判断:var bool=arr.every/some((val,i,arr)=>判断条件);

        遍历:arr.forEach((v,i,a){     操作}); var newArr=arr.map((val,i,arr)=>操作);--map不会修改原数组

        过滤:var subArr=arr.filter((val,i,arr)=>判断条件)

        汇总:var sum=arr.reduce((prev,val,i,arr)=>prev+val);

       借用:

固定的三个用法:

        查找数组里最大值或最小值:Math.max/min.apply(Math,arr)

        查看数据类型:Object.prototype.toString.call/apply(**)

        将类数组转为普通数组:var newName=Array.prototype.slice.call/apply(类数组)

        严格模式:use strict;

        ES6的:模板字符串:`${变量}`;let方式,可以代替var ,会有一个块级作用域,阻止了声明提前,绑定了事件的多个元素,会记录着他的下标;箭头函数:所有的回调函数都可以简化成箭头函数

二、dom

        1、DOM树:树根:document

        2、dom元素的三大属性:xx.nodeType:会返回一个数字,每种元素返回的数字不一样;xx.nodeValue:获取属性节点的值

        xx.nodeName:获取属性节点的值,返回的是一个大写的标签名

        3、查找元素:

通过 HTML 的属性来查找元素
    ID:var elem=document.getElementById("id");
    标签名:var elems=document.getElementsByTagName("标签名");
    class名:var elems=document.getElementsByClassName("标签名");
    name名:var elems=document.getElementsByName("name值"); - 表单控件使用

通过 CSS 选择器来查找元素
    var elem=document.querySelector("任意css选择器");
    强调:万一匹配到多个元素,也只会返回第一个,没找到返回null
    var elems=document.querySelectorAll("任意css选择器");
    强调:找到多个元素
    使用场景:复杂查找时

    父:xx.parentNode;
    子:xx.children;
    第一个儿子:xx.firstElementChild;
    最后一个儿子:xx.lastElementChild;
    前一个兄弟:xx.previousElementSibling;
    下一个兄弟:xx.nextElementSibling;

        递归:简单来说就是一个函数中再一次调用了自己本身,肯定有一刻会让他停下来
    何时:遍历DOM树,专门用于【遍历层级不明确】的情况
    如何:2步
        1、创建一个函数:
            function 函数名(root){
                //1、第一层要做什么操作,直接做
                //2、判断他有没有下一级,如果有的话再次调用此方法,但是传入的实参变成他的儿子
            }        
        2、调用函数,传入根节点
            函数名(实际的root)

        4、操作元素:

         内容:innerHTML/innerText/value

        属性:
      核心:getAttribute("属性名")/setAttribute("属性名","属性值")/removeAttribute("属性名")
      HTML:elem.属性名/elem.属性名="属性值"/elem.属性名=""

        样式:
              内联:elem.style.css属性名
              样式表:
              var sheet=document.stylesheets[i];
                var rules=sheet.cssRules;
                var rule=rules[i];
                rule.style.css属性名

        4、JS创建元素和渲染

        创建元素&渲染DOM树
    var a=document.createElement("a");
    a.innerHTML="百度一下";
    a.href="url"
    父亲.appendChild(a);
    父亲.insertBefore(a,已有子元素);
    父亲.replaceChild(a,已有子元素); 

        删除:elem.remove();

三、BOM 

        1、定时器:先等待再执行

        周期性:setInterval();一次性定时器:setTimeout;停止定时器:clearInterval(timer);

        2、获取位置

                1、获取浏览器完整大小:outerWidth.outHeight;

                2、获取浏览器的文档显示区域:innerWidth innerHeight;

                3、屏幕大小:screen.width screen.height

                4、获取鼠标的位置:e.screenX    e.screenY;//相对于屏幕的坐标
                    e.clientX    e.clientY;//相对于文档显示区域的坐标
                    e.pageX        e.pageY;//相对于网页的坐标

        3、location对象:保存当前窗口的url网址:跳转:location=“新url”;替换location.replace("新url"),就不能后退了;刷新:location.reload();

        4、客户端存储--相当于cookie

                localStorage本地级,sessionStorage会话级

                设置:xxxStorage.自定义=值;

                读取:xxxStorage.自定义;

                删除和清空:xxxStorage.removeItem("属性名");xxxStorage.clear(); -- 清空所有数据

        5、event:事件对象

                获取事件对象:事件函数中第一个形参;老IE:var e=event;

                阻止冒泡:让点击子元素而不影响父元素

兼顾着老IE
if(e.stopPropagation){
				e.stopPropagation
			}else{
				e.cancelBubble=true;
			}

                事件委托:将绑定事件绑定在父元素身上,利用冒泡,来减少事件的绑定,提升网页性能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值