zoukankan      html  css  js  c++  java
  • WEB前端--JavaScript

    JavaScript

    JavaScript基础

    一、JavaScript简介

    JavaScript是一种嵌入到HTML文件中的描述性语言,由浏览器的解释器将其动态地处理成可执行的代码,能独立地完成与客户端动态交互的网页设计语言。

    JavaScript特点:

    • 脚本语言,开发过程简单;

    • 基于对象,能运用已经创建的对象;

    • 简单,基于java基本语句和控制流,变量类型为弱类型;

    • 动态,直接对用户的输入做出响应;

    • 安全,不访问本地硬盘;

    • 跨平台性,依赖于浏览器本身,与操作系统无关。

    1
    2
    3
    4
    5
    6
    7
    8
    <body>
    ……
    <script type="text/javascript" src="j1.js" ></script>
    <script type="text/javascript">
        f1()
        alert("func");
    </script>
    </body>

    位置:紧贴body底部,加载慢,不影响其他东西显示。

    单行注释://

    多行注释:/*   ……    */

    二、JavaScript基本语法

    1、常量和变量

    常量的值不能改变,变量的值是可以改变的。

    1.1、常量

    整形常量(进制数)、实型常量(小数)、布尔值、空值(null)、特殊字符(/开头不可显示的特殊字符)。

    1.2、变量

    主要作为数据的存取容器

    • 局部变量声明:var name='jack'

    • 全局变量声明:name='jack'

    一般不要写全局变量,都要var声明,否则会造成混乱,什么地方都能改,出错不好排查。

    2、表达式和运算符

    算术运算符:+、-、*、/、%、++、--

    逻辑运算符:&&、||、!

    比较运算符:<、>、<=、>=、=、!=

    3、基本语句

    3.1、if...else语句
    1
    2
    3
    4
    5
    if(条件)
    {执行语句1}
    else
    {执行语句2}
    //没有大括号也行,但这是一种习惯。
    3.2、for语句
    1
    2
    3
    4
    5
    for(初始化;条件;增量)
    {
    语句集;
    ……
    }
    3.3、switch语句

    多分支选择语句,相当于shell的case语句。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    switch()
    {
    case 条件1:
    语句块1
    case 条件2:
    语句块2
    ……
    default
    语句块N
    }
    3.4、while语句
    1
    2
    3
    4
    while(条件){
    语句集;
    ……
    }

    break跳出所有循环;continue结束本次循环,跳到下次循环。

    4、函数

    4.1、普通函数
    1
    2
    3
    function 函数名称(参数){
    函数执行部分
    }
    4.2、自执行函数

    自己定义自己,并执行了自己这个函数。用处:jQuery本身功能满足不了需求,自己(用自执行函数)定义许多扩展功能,下面就能直接用了。

    1
    2
    3
    4
    5
    <script type="text/javascript">
        (function(arg){
            alert(arg)
        })('参数');
    </script>

    5、字符串常用方法和属性

    obj.trim()去除字符串两边的空格a.trim()
    obj.charAt(index)根据索引获取字符串里的字符a.charAt(0)
    obj.substring(start,end)获取字符串的子序列(类似切片)a.substring(0,2)
    obj.indexOf(char)获取字符的索引值a.indexOf('a')
    obj.length    -->字符串属性(property,不带括号计算字符串的长度a.length

    ps:可借用浏览器的console调试

    6、数组

    6.1、声明数组
    1
    2
    3
    var a= [1,2,3]
    var a=Array()
    6.2、添加
    obj.push(ele)追加元素a.push(5)
    obj.unshift(ele)最前面插入元素a.unshift(0)
    obj.splice(index,0,ele)指定索引处插入元素a.splice(2,0,'ele')
    6.3、移除
    obj.pop()尾部移除a.pop
    obj.shift()头部移除a.shift
    obj.splice(index,count)数组指定位置后count个字符a.splice(2,1)
    6.4、切片
    obj.slice(start,end)按索引切片a.slice(0,3)
    6.5、合并
    新数组 = obj1.concat(obj2)

    把obj2合并到obj1里

    a.concat(b)
    6.6、翻转
    obj.reverse()元素都掉个顺序a.reverse()
    6.7、字符串化
    obj.join('连接符')合并成字符串,和python用法位置相反a.join('_')
    6.8、长度
    obj.length计算数组元素个数a.length

    7、字典

    字典是数组的一种特殊形式,键值不必是字符串。可以通过键取值,也可循环。

    1
    2
    3
    4
    5
    6
    7
    >> a={k1:123,k2:456}
    << Object { k1: 123, k2: 456 }
    >> a['k1']
    << 123
    >> for (var item in a){console.log(item);}
    << k1
       k2

    8、异常处理

    1
    2
    3
    4
    5
    6
    7
    try{
        var m=n;
    }catch(e) {
        console.log(e);
    }finally{
        console.log('finally');
    }


    三、JavaScript的事件

    鼠标或键盘引发的一连串程序的动作,称为事件驱动。而对事件进行处理的程序或函数,则称为事件处理程序。

    1、onClick事件(鼠标单击)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <body>
    <div align="center">
        <img src="91@QLVP$85JJ5DD@T1V%7B%604K.png">
    </div>
    <div align="center">
        <input type="button" value="全屏" onclick="window.open(document.location,'big','fullscreen=yes')">
        <input type="button" value="还原" onclick="window.close()">
    </div>
    </body>

    2、onchange事件(表格变化)

    在文本区域外部点击会弹出警告提示对话框

    1
    2
    3
    <form>
    <textarea cols='50' rows='5' onchange=alert("输入留言内容")></textarea>
    </form>

    3、onSelect事件

    文本框中的内容被选定所触发的事件

    1
    <input name=stra id=stra tabIndex=1 value="选择输入的名称" size=16 onSelect=alert("选择输入的名称")>

    在文本框中选中文字后,会弹出选择文字的提示对话框。

    4、onFocus事件

    当单击表单对象时,即将光标放在文本框或选择框上时。

    1
    2
    3
    4
    <label>
    <input type='radio' value='game' onfocus=alert('选择了游戏!')>
    游戏
    </label>

    5、onLoad事件(页面加载时)

    加载网页文档时触发,作用是在首次载入一个页面文件时检测cookie值,并用一个变量为其赋值,使其可以被源代码使用。

    1
    2
    3
    4
    5
    6
    <script type="text/javascript">
    function mm(msg){
        alert(msg);
    }
    </script>
    <body onload="mm('欢迎光临')"></body>
    1
    2
    3
    4
    5
    6
    7
    8
    //window方法
    <body>
        <script type="text/javascript">
            window.onload=function(){
                alert("欢迎光临");
        }
        </script>
    </body>

    上面是整个页面加载完成,一般情况都是当框架加载完成就触发:

    1
    2
    3
    4
    5
    6
    7
    <body>
        <script type="text/javascript">
            document.ready=function(){
                alert("欢迎光临");
        }
        </script>
    </body>

    6、onUnload事件(退出网页时)

    并可更新cookie的状态

    1
    2
    3
    4
    5
    6
    <script type="text/javascript">
    function mm(msg){
        alert(msg);
    }
    </script>
    <body onunload="mm('再见!')"></body>

    7、onBlur事件

    与onFocus相对,文本框(text extareaselect)不在拥有焦点,退到后台时触发。

    8、onMuouseOver事件

    当鼠标移动到某个对象上面时触发

    9、onMouseOut事件

    当鼠标离开某个对象时触发

    10、onDblClick事件

    鼠标双击时触发

    1
    <body ondblclick="触发的一个函数"></body>

    11、其它事件

    https://www.baidu.com/baidu?wd=js%CA%C2%BC%FE%C1%D0%B1%ED&tn=91529300_hao_pg

    四、浏览器的内部对象

    使用内部对象,可实现与HTML文档进行交互。这些内部对象提供了丰富的内部方法和属性,减轻了编程人员的工作,提高了变成效率。

    1、navigator对象(浏览器对象)

    提供有关浏览器的信息。

    appName浏览器的名称
    appVersion浏览器的版本
    appCodeName浏览器的代码名称
    browserLanguage浏览器使用的语言
    plugins可以使用的插件信息
    platform浏览器所使用的平台,如win32等
    cookieEnabled浏览器是否使用了cookie

    2、document对象(文档对象)

    document对象包含了与文档元素一起工作的对象,它位于最底层,对实现页面信息交互起着关键作用,所以,在这些对象系统中,文档对象属性最重要。

    最重要的三个对象:links、anchor和form。

    document对象有以下方法:输出显示write()和writeln():该方法主要用来实现在web页面上显示输出信息。

    3、window对象(窗口对象)

    window对象处于对象层次的最顶端,提供了处理浏览器窗口的方法和属性。

    4、location对象(位置对象)

    位置对象时一个静态的对象,它描述的是某一个窗口对象所打开的地址。location对象常用的方法包括:

    • reload():相当于浏览器上的“刷新”功能。

    • replace():打开一个url后,单击浏览器的‘后退’,不能返回到之前的页面。

    5、history对象

    浏览器的浏览历史,常用方法:

    • back():后退

    • forward():前进

    • go():进入指定的页面



    DOM编程

    一、dom简介

    文件对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口。

    二、基础知识

    1、选择器:

    • document.getElementById('id')

    • document.getElementsByName('name')

    • document.getElementsByTagName('tagname')

    举例:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <body>
    <div id="l1">
        123
    </div>
    <script type="text/javascript">
        var i= document.getElementById("l1"); //找
        i.innerText="456";    //改
    </script>
    </body>

    注:Firefox不太好使

    2、获取或者修改样式 obj.className

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            .red{
                background-color: red;
            }
        </style>
    </head>
    <body>
    <div id="l1">
        123
    </div>
    <input type="button" onclick="edit();" value="变红">
    <input type="button" onmousemove="rollback();" value="不变">
     
    <script type="text/javascript">
        function edit(){
            var i= document.getElementById("l1")
            i.className = "red"
        }
        function rollback(){
            var i=document.getElementById("l1")
            i.className = ""
        }
    </script>
    </body>
    </html>


    3、获取或设置属性 

    setattribute(key,val)    getattribute(key)

    1
    2
    3
    4
    5
    6
    7
    <div name="myname" id="l1">123</div>
    <script type="text/javascript">
        var i= document.getElementById("l1");
        var ret= i.getAttribute('name');
        console.log(ret);  //在控制台中打印找到的‘myname’
        i.setAttribute('name','yourname');
    </script>

    4、改样式 

    obj.style.元素

    1
    2
    3
    4
    5
    <div id='l1' style="font-size: 30px;background-color: green">123</div>
    <script type="text/javascript">
        var i= document.getElementById("l1");
        i.style.backgroundColor="pink";
    </script>

    5、表单提交

    document.getElementById(‘form’).submit()

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <form id="form1" action="https://www.sogou.com/web?" >
        <input type="text" name="query" >
        <input type="button" onclick="submit_form();" value="提交">
    </form>
    <script type="text/javascript">
        function submit_form(){
            document.getElementById('form1').submit()
        }
    </script>

    6、其它函数

    • console.log()

    • location.href = "url" 和 open('url')     //类似于window.open('http://www.baidu.com')

    • alert()     

    • confirm()        //弹出框,true|false的选择

    • obj = setInterval("alert()",2000);    clearInterval(obj);     //让前面的alert每2秒钟执行一次,clearInterval是终止obj那个句柄

    • setTimeout();    clearTimeout(obj)    //只执行一次,过几秒钟就没。

    7、实例

    跑马灯:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset='utf-8' >
            <title>欢迎blue shit莅临指导&nbsp;&nbsp;</title>
            <script type='text/javascript'>
                function Go(){
                    var content = document.title;
                    var firstChar = content.charAt(0)
                    var sub = content.substring(1,content.length)
                    document.title = sub + firstChar;
                }
                setInterval('Go()',1000);
            </script>
        </head>
        <body>  
        </body>
    </html>
    索框:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset='utf-8' />
            <title></title>
             
            <style>
                .gray{
                    color:gray;
                }
                .black{
                    color:black;
                }
            </style>
            <script type="text/javascript">
                function Enter(){
                   var id= document.getElementById("tip")
                   id.className = 'black';
                   if(id.value=='请输入关键字'||id.value.trim()==''){
                        id.value = ''
                   }
                }
                function Leave(){
                    var id= document.getElementById("tip")
                    var val = id.value;
                    if(val.length==0||id.value.trim()==''){
                        id.value = '请输入关键字'
                        id.className = 'gray';
                    }else{
                        id.className = 'black';
                    }
                }
            </script>
        </head>
        <body>
            <input type='text' class='gray' id='tip' value='请输入关键字' onfocus='Enter();'  onblur='Leave();'/>
        </body>
    </html>









  • 相关阅读:
    数値処理
    linux使用rsync+inotify-tools+ssh实现文件实时同步
    Linux内核分析第九次作业
    Linux内核原理第八次作业
    Linux内核分析第七次作业
    Linux内核分析第六次作业
    《Linux内核原理与设计》第五周作业
    《Linux内核原理与分析》第四次作业
    Linux内核分析第三次作业
    Linux内核分析第二次作业
  • 原文地址:https://www.cnblogs.com/daliangtou/p/5188304.html
Copyright © 2011-2022 走看看