zoukankan      html  css  js  c++  java
  • js小结


    var c;

    console.log(c); //一个变量未定义,值 undefined

    console.log(typeof c); //未赋值 类型 undefined

    var d = null;

    console.log("d:"+d);    //值:null

    console.log(typeof d);  //类型:object


    //+ 当有字符串参与 表示字符串拼接

    console.log(10 + "3"); // 103

    // - * / 均为数字

    console.log("3"-"2"); // 1

    console.log("20"+20-10); // 2010

    //false --0

    console.log(3-false); // 3

    console.log(4-"djijfi223"); // Nan

    console.log(typeof NaN); // number


    console.log("11a" >= 3); // false

    console.log("12" >= 4);  //true

    //=== 内容与类型都必须一致

    // == 只需内容相同即可,类型不要求

    // != 是对 == 否定  !== 对 === 否定

    console.log(0 == false);

    //逻辑运算府

    //短路现象

    var i = 9;

    console.log(0 || i++); //9 执行|| 运算符,从左到右执行, 遇到0认为假,直接返回第二个表达式

    console.log(i); // 10

    console.log("" ? 56 : 90); // 非0数字转化成true;非空字符串转成true;0--false;空字符串---false

    html    标记语言,负责页面的结构
    css     层叠样式表,负责页面的样式
    javascript      编程语言,负责页面的行为{客户端}
         客户端  特效    动画    交互    数据校验....
         服务器端:node
         数据库:mongodb————json格式

    -------------------------------------------------
    -------------------------------------------------
    书写位置:
         建议:放在body末尾
             嵌入式:
                  <script type="text/javascript">
                     alert("hello world");
                 </script>
             外链文件(实际项目中)
                 <script src="./my.js"></script>
             行内式(了解)
                 <p onclick="alert('haha')">这是一段文字</p>

    熟悉JS常见的语句
         alert("*********************")

        document.write()    在页面中输出信息

        console.log()

    变量:
         var 变量名;
             ex: var x;
                 var a,b;

    es6中: let/const定义变量

    变量类型:
         number: 数字 整数 小数 负数
         string: 字符串 "hello" 'hello'
         boolean :布尔值truefalse
         undefined 未赋值的变量类型就是undefined
         null    空引用

        引用类型
             数组 函数 对象 正则 日期  ...

    运算符:
         算术运算符
         + - * / mod
         ++ --

    应用

    setInterval(function() {

    var eleImg = document.createElement('img');

    eleImg.src = 'star.gif';

    document.body.appendChild(eleImg);

    var width = height = parseInt(Math.round(Math.random(0, 1) * 20)) + 10;

    var _left = parseInt(Math.round(Math.random(0, 1) * (window.innerWidth - width)));

    var _top = parseInt(Math.round(Math.random(0, 1) * (window.innerHeight - height)));

    eleImg.style.width = width + 'px';

    eleImg.style.height = height + 'px';

    eleImg.style.position = 'absolute';

    eleImg.style.left = _left + 'px';

    eleImg.style.top = _top + 'px';

    eleImg.onclick = function() {

    // this.remove();

    document.body.removeChild(eleImg);

                };

            }, 10);

    节点关系

    元素节点:标签

    属性节点:

    文本节点:

    document.body   document.head

    document.documentElement——获取html元素

    节点变量.parentNode——由子节点找到父亲节点

    节点变量.parentNode——由子节点找到父亲节点

    节点变量.firstChildfirstElementChild

    childNodes包含:文本子节点,元素节点

    children:只包含:元素节点

    节点类型(nodeType  description    nodeName    nodeValue)

                    1   元素节点    div...          null

                    3   文本节点    #text          回车换行   

                    8   注释节点    #comment       注释内容

    ---注意:兼容问题IE 678不支持 element这些。

    previousSibling             nextSibling

    previousElementSibling      nextElementSibling

    //在任意位置插入元素

    document.body.insertBefore(插入元素,参照元素);

    //元素克隆

        元素.cloneNode()——浅层复制

        元素.cloneNode(true)——深层复制

    事件:

        注册事件

        ---绑定事件:

        ---DOM0级:

            特点,相同事件绑定,后面函数会覆盖前面的。

            onclick()

        ---DOM2级:ie9不支持

            特点:功能更加丰富

            addEventListener()

            //第一个参数:字符串,表示事件类型,不带on

            //第二个参数:事件处理函数

            //特点:同一个元素可以绑定相同的事件,不会冲突

            ie9一下: attachEvent()

        删除事件

        ---解绑事件   

    [1] eleDelete.onclick = null;

    [2] 解绑

                eleDelete.addEventListener('click', fn);

                eleDelete.removeEventListener('click', fn);

    [3] 兼容处理

                eleDelete.attachEvent('click', fn);

                eleDelete.detachEvent('click', fn);

        DOM事件流

            页面接收事件的顺序:事件发生后,会在元素节点之间按照某种顺序传递、传播。

            顺序传播

            document -> html -> body -> div -> body -> html -> document

                    捕获阶段        当前目标阶段       冒泡阶段

            on*** / attachEvent : 只能得到冒泡阶段

            addEventListener : 捕获阶段 --第三个参数默认是false,即:冒泡阶段

            假如:目标元素绑定了捕获与冒泡两个,则按照代码实际顺序执行

            有的事件不具有冒泡:焦点事件

                        进入、离开                     进入、离开

                onmouseenteronmouseleave   ||  onmouseoveronmouseout

                区别:跟父子元素有关

        事件对象

            //增加形参event,获取事件对象

            var eleDiv = document.querySelector('.box');

            eleDiv.onclick = function(event) {

                console.log(event);

            }

            //或者: windows.event; ---兼容问题:ie6-8支持

            常见事件对象属性

                [DOM事件流]

                -target:触发事件的元素对象 --如:对儿子触发

                -this:绑定事件的对象 --如:对父亲绑定

                -type : 'click'

            阻止浏览器的默认行为——比如链接跳转

            var e = window.event;

            e.preventDefault();

            //ie6~8 兼容: e.returnValu()

            //通用: return false;

            事件冒泡阻止:

                e.stopPropagation();

                ie6~8 : e.cancelBubble = true;

        事件冒泡:局限是会触发父亲、父亲的父亲等。


    事件委托(事件代理、事件委派)

            -核心:给父亲绑定事件,只操作一次DOM,提高程序性能

            -event.target 获取触发事件的元素

        常用鼠标或键盘事件

            鼠标事件:

                onclick

                    onmouseover/onmouseout————父亲儿子之间切换多次执行

                    onmouseenter/onmouseleave————只会执行一次

                    onfocusonblur

                    onmouseuponmousedown

                    onmousemove

            oncontextmenu:禁止右击事件

                event.preventDefault();——阻止右击事件

            selectstart:禁止复制事件

            鼠标事件常用信息:

                event

               //鼠标相对于浏览器窗口可视区坐标

                clientX:    clientY:

                //鼠标相对于电脑屏幕的可视区坐标

                screenX     screenY

                // 兼容性:ie9+ ;

                pageX       pageY


    键盘事件:

            keyup——不区分大小写,默认大写ACII码值

            keydown——不区分大小写

            keypress:不能识别功能键,如 左右箭头,control,shift——区分大小写

        键盘事件对象:keyboard  ---> keyCode:按键对应的字母

        表单元素.focus()——获取焦点

  • 相关阅读:
    最大生成树
    Codeforces#363 Div2
    AOJ2249最短路+最小费用
    Codeforces#364Div2
    POJ3268Dijkstra
    POJ3259负环判定
    Codeforces#362
    POJ3169差分约束系统
    POJ3723最小生成树
    hdu 4038 2011成都赛区网络赛H 贪心 ***
  • 原文地址:https://www.cnblogs.com/macro-renzhansheng/p/13045170.html
Copyright © 2011-2022 走看看