14.JavaScript脚本基础

14.1JavaScript简介

  • 1.JavaScript是一种脚本编写语言

  • 2.JavaScript具有简单性

  • 3.JavaScript是动态的

  • 4.JavaScript具有跨平台性

14.2JavaScript基本语法

14.2.1常亮和变量

1.常量是不可以改变的

  • 整型常量:可以使用十六进制,八进制,和十进制表示其值

  • 实型常量:由整数部分加小数部分表示

  • 布尔值:布尔常量只有两种状态:true或false

  • 字符型常量:使用'"括起来的一个或几个字符

  • 空值:空值null,表示什么都没有

  • 特殊字符:以/开头的不可显示的特殊字符

2.变量在程序运行期间是可以改变的

  • 主要作为数据的存取容器

  • 使用变量最好声明

  • 变量声明主要为了明确变量的名字,类型,作用域

  • 申明变量使用var,声明时可存储值也可以不存储

  • 全局变量:定义在所有函数体外

  • 局部变量:定义在函数体之内

3.变量命名的注意点

  • 变量名只能由字母,数字和下划线_组成,以字母开头,除此之外不能有空格和其它字符

  • 变量名不能使用关键字

  • 变量名最好与实际意义对应起来

14.2.2表达式和运算符

1.表达式

  • 表达式就是常量,变量,布尔和运算符的集合

  • 因此表达式可以分为算术表达式,字符表达式,赋值表达式以及布尔表达式

2.运算符

  • 算数运算符:数学运算

    算术运算符

  • 逻辑运算符:比较两个布尔值,返回一个布尔值

    逻辑运算符

  • 比较运算符:比较表达式的值,返回一个布尔值

    比较运算符

14.2.3基本语句

1.if..else语句

if(条件){
  执行语句1
} else {
   执行语句2
}

2.for语句

for(初始化,条件,增量){
   语句集;
   ...
}

3.switch语句

switch()
{
    case: 条件1: 
         语句块1
    case: 条件2: 
         语句块2
     .......
    default
         语句块N
}

4.while循环

while(条件){
   语句集;
    ...
}

5.break语句

//跳出循环
break;

6.continue语句

//挑出当前循环周期
continue;

14.2.4函数

function 函数名称 (参数表) {
   函数执行部分
}

14.3JavaScript的事件

  • JavaScript是基于对象的语言,而基于对象的基本特征,就是采用事件驱动

  • 通常鼠标或键盘的动作称之为事件,由鼠标或键盘引发的一连串程序的动作,称之为事件驱动

  • 对事件进行处理的函数或程序,则称之为事件处理程序

14.3.1onClick事件

鼠标单击事件---当用户单击鼠标时,产生onClick事件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>onClick</title>
</head>
<body>
    <div align="center">
        <img src="img/2.jpg" width="778" height="407">
        <!-- 全屏显示网页 -->
        <input type="button" name="fullsreen" value="全屏" onclick="window.open(document.location,'big','fullscreen=yes')">
        <!-- 还原到原来的窗口 -->
        <input type="button" name="close" value="还原" onclick="window.close()">
    </div>
</body>
</html>

14.3.2onchange事件

1.与表单相关的事件
2.当利用text或者textarea元素输入的字符值改变时发生该事件
3.当在select表格中的一个选项状态改变也会发生该事件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>onchange</title>
</head>
<body>
    招商加盟:
    <form id="form1" name="form1" method="post" action="">
        <p>您的姓名:
            <input type="text" name="textfield" />
        </p>
        <p><br />
            留言内容:<br />
            <br />
            <textarea name="textarea" cols="50" rows="5" onchange=alert("输入留言内容") /></textarea>
        </p>
    </form>
</body>
</html>

14.3.3onSelect事件

文本框中的内容被选中时所发生的事件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>onSelect</title>
</head>
<body>
    <input name="atra" id="atra" tabindex="1" value="选择输入的名字" size="16" onselect=alert("选择输入的名称")>
</body>
</html>

14.3.4onFocus事件

单击表单对象时,即将光标放在文本框或选择框时产生onFocus

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>onFocus</title>
</head>
<body>个人爱好:
    <form name="form1" method="post" action="">
    <p>
        <label><input type="radio" name="RadioGroup1" value="游戏" onfocus=alert("选择游戏!") />游戏</label>
        <br>
        <label><input type="radio" name="RadioGroup1" value="上网" onfocus=alert("选择上网!") />上网</label>
        <br>
        <label><input type="radio" name="RadioGroup1" value="唱歌" onfocus=alert("选择唱歌!") />唱歌</label>
        <br>
        <label><input type="radio" name="RadioGroup1" value="跳舞" onfocus=alert("选择跳舞!") />跳舞</label>
        <br> 
        <label><input type="radio" name="RadioGroup1" value="画画" onfocus=alert("选择画画!") />画画</label>
        <br>
    </p>
    </form>
</body>
</html>

14.3.5onLoad事件

加载网页文档时,会产生该事件,onLoad事件的作用是在首次载入一个页面文件时检测cookie的值,并用一个变量为其赋值,使其可以被源代码使用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>onLoad</title>
    <script type="text/javascript">
        function show(string) {
            alert(string);
        }
    </script>
</head>
<body onload="show('欢迎光临')">
    
</body>
</html>

14.3.6onUnload

当退出网页时引发onUnload事件,并可更新cookie的状态

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>onLoad</title>
    <script type="text/javascript">
        function show(string) {
            alert(string);
        }
    </script>
</head>
<body onunload="show('关闭本文档')">

</body>
</html>

14.3.7onBlur事件

失去焦点正好与获得焦点事件对应,当text对象,textarea对象或select对象不在拥有焦点而退到后台时,引发该事件

//将光标移动到任意一个文本框,再将文本框移动到其他的位置,就会触发事件
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>onLoad</title>
    <script type="text/javascript">
        function show(string) {
            alert(string);
        }
    </script>
</head>
<body>
    <p>会员注册:</p>
    <p>账号:
        <input type="text" name="textfield1" onblur="show('文档中的账号文本域失去焦点')" />
    </p>
    <p>密码:
        <input type="text" name="textfield2" onblur="show('文档中的密码文本域失去焦点')" />
    </p>
</body>
</html>

14.3.8onMouseOver事件

鼠标移动到某对象范围的上方时触发的事件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>onMouseOver</title>
    <style type="text/css">
        <!--
        #Layer{
            position: absolute;
            width: 257px;
            height: 171px;
            z-index: 1;
            visibility: hidden;
        }
        -->
    </style>
    <script type="text/javascript">

        function MM_findObj(n,d) {
            var p,i,x;
            if (!d) d = document;
            if ((p=n.indexOf("?"))>0 && parent.frames.length) {
                d = parent.frames[n.substring(p+1)].document;
                n = n.substring(0,p);
            }
            if (!(x = d[n] && d.all)) x = d.all[n];

            for (var i = 0; !x && i < d.forms.length; i++) x = d.forms[i][n];
            for (var i = 0; !x&&d.layers&&i<d.layers.length; i++) x = MM_findObj(n,d.layers[i].document);
                if (!x && d.getElementById) x = d.getElementById(n);
            return x;
        }

        function MM_showHideLayers() {
            var i,p,v,obj,args=MM_showHideLayers.arguments;
            for (var i = 0; i < (args.length-2); i+=3) {
                if ((obj=MM_findObj(args[i])) != null) {
                    v = args[i+2];
                    if (obj.style) {
                        obj = obj.style;
                        v = (v=='show')?'visible':(v=='hide')?'hidden':v;
                    }
                    obj.visibility = v;
                }
            }
        }
    </script>
</head>
<body>
    <input type="submit" name="Submit" onmouseover="MM_showHideLayers('Layer','','show')" value="显示图像" />
    <div id="Layer"><img src="img/2.jpg" width="257" height="171"></div>
    
</body>
</html>

14.3.9onMouseOut事件

鼠标指针离开某对象范围时触发的事件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>onMouseOver</title>
    <style type="text/css">
        <!--
        #Layer{
            position: absolute;
            width: 257px;
            height: 171px;
            z-index: 1;
            visibility: hidden;
        }
        -->
    </style>
    <script type="text/javascript">

        function MM_findObj(n,d) {
            var p,i,x;
            if (!d) d = document;
            if ((p=n.indexOf("?"))>0 && parent.frames.length) {
                d = parent.frames[n.substring(p+1)].document;
                n = n.substring(0,p);
            }
            if (!(x = d[n] && d.all)) x = d.all[n];

            for (var i = 0; !x && i < d.forms.length; i++) x = d.forms[i][n];
            for (var i = 0; !x&&d.layers&&i<d.layers.length; i++) x = MM_findObj(n,d.layers[i].document);
                if (!x && d.getElementById) x = d.getElementById(n);
            return x;
        }

        function MM_showHideLayers() {
            var i,p,v,obj,args=MM_showHideLayers.arguments;
            for (var i = 0; i < (args.length-2); i+=3) {
                if ((obj=MM_findObj(args[i])) != null) {
                    v = args[i+2];
                    if (obj.style) {
                        obj = obj.style;
                        v = (v=='show')?'visible':(v=='hide')?'hidden':v;
                    }
                    obj.visibility = v;
                }
            }
        }
    </script>
</head>
<body>
    <input type="submit" name="Submit" onmouseout="MM_showHideLayers('Layer','','show')" value="显示图像" />
    <div id="Layer"><img src="img/2.jpg" width="257" height="171"></div>
    
</body>
</html>

14.3.10onDblClick事件

鼠标双击时触发的事件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>onDblClick</title>
    <script type="text/javascript">
        function show(theURL,winName,features) {
            window.open(theURL,winName,features);
        }
    </script>
</head>
<body ondblclick="show('christmas.htm','','width = 700,height = 530')">
    双击此链接,可以打开“christmas.htm”文档
</body>
</html>

14.3.11其它常用事件

1
2
3
4

14.4浏览器的内部对象

  • 浏览器对象navigator:提供有关浏览器的信息

  • 文档对象document:document对象包含了与文档元素一起工作的对象

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

  • 位置对象location:location对象提供了与当前打开的URL一起工作的方法和属性,它是一个静态的对象

  • 窗口对象history:history对象提供了与历史清单有关的信息

14.4.1navigator对象

存取浏览器的相关信息

navigator常用属性
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>navigator</title>
    <script type="text/javascript">
        function check() {
            name = navigator.appName;

            document.write("你现在使用的是"+navigator.appName+"网页浏览器");
        }
    </script>
</head>
<body onload="check()"> 
</body>
</html>

14.4.2document对象

  • anchor锚对象:是指<a name=...></a>标记在HTML源代码中存在时产生的对象,它包含了文档中所有的anchor信息

  • links链接对象:是指用<a href = ...></a>标记链接一个超文本或超媒体的元素作为一个特定的URL

  • form窗体对象:是文档对象的一个元素,它含有多种格式的对象存储信息,使用它可以在JavaScript脚本中编写程序,并可以用来动态改变文档的行为

  • document对象有以下方法:write(),writeln()用来实现在Web页面上显示输出信息

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>document</title>
    <script type="text/javascript">
        function Links() {
            n = document.links.length;
            s= "";
            for (i = 0; i < n; i++) {
                s = s+document.links[i].href+"\n";
                if (s == "") {
                    s == "没有任何链接";
                }else{
                    alert(s);
                }
            }
        }
    </script>
</head>
<body>
    <form>
        <input type="button"  value="所有链接地址" onclick="Links()"><br>
    </form>
    <p>
        <a href="#">文档1</a><br>
        <a href="#">文档2</a><br>
        <a href="#">文档3</a><br>
        <a href="#">文档4</a><br>
        <a href="#">文档5</a><br>
    </p>
</body>
</html>

14.4.3windows对象

windows对象处于对象层次的最顶端,它提供了处理navigator窗口的方法和属性

windows对象常用的方法
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>字体大小和行距</title>
    <style type="text/css">
        .gy{
            -webkit-filter: glow(color=pink,direction=5)
        }
    </style>
</head>
<body>
    <div class="gy"><p align="center" ><font style="filter: grayscale(20%);">你好</font></p></div>
</body>
</html>

14.4.4location对象

location对象是一个静态的对象,它描述的是一个窗口对象打开的地址

location常见的属性

14.4.5history对象

history对象是浏览器的浏览历史

  • back():后退,与单击后退按钮是等效的

  • forward():前进,与单击前进按钮是等效的

  • go():后退,用来进入指定的页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>history</title>
</head>
<body>
    <a href="index1.html">history对象</a>
    <form name="form1" method="post" action="">
        <input type="button" name="按钮1" value="返回" onclick="history.back()">
        <input type="button" name="按钮2" value="前进" onclick="history.forward()">
    </form>
</body>
</html>
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,087评论 1 32
  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 5,096评论 0 21
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,865评论 6 13
  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 3,473评论 1 11
  • 关于 Swift 重要这个文档所包含的准备信息, 是关于开发的 API 和技术的。这个信息可能会改变, 根据这个文...
    无沣阅读 4,275评论 1 27