JavaScript

JavaScript

JavaScript的基本结构

<script type="text/javascript">
    <!--
        JavaScript语句;
    -->
</script>

JavaScript的应用(输出第一个helloworld)

<!DOCTYPE html>
<html>
<head>
    <title>第一个JavaScript</title>
    <meta charset="utf-8">
    <script type="text/javascript">
        document.write("<h1>Hello World.</h1>")
    </script>
</head>
<body>
</body>
</html>

需要知道的是:<script>...</script>可以包含在文档中的任何地方,只要保证这些代码在被使用前已读取并加载到内存即可。

页面引入JavaScript(三种方式)

1.使用<script></script>

    <script type="text/javascript">
        alert("欢迎您");
    </script>

2.使用外部JavaScript文件

<script type="text/javascript" src="hello.js"></script>

3.在HTML中直接使用JavaScript

<input type="button" name="btn" value="弹出消息框" onclick="javascript:alert('欢迎您');"/>

变量

方式一:在JavaScript中,先声明变量再赋值。例如:var width; width=5;在这里,var是用于声明变量的关键字,width是变量名

方式二:同时声明和赋值变量。例如:var catName="皮皮";  var x,y,z=10;

方式三:不声明直接赋值。例如:width=5;

总结:变量可以不经声明而直接使用,但这种方法很容易出错,也很难查找排错,不推荐使用。

数据类型

undifined

例:var width; 变量width没有初始值,将被赋予值undefined

null

表示一个空值,与undefined相等

Number

例:var iNum=23; //整数    var iNum=23.4;//浮点数

boolean

true和false

string

一组被引号(单引号或双引号)括起来的文本。例:var string1="This is a string";

typeof运算符

typeof检测变量的返回值

type运算符返回值如下:

1.undefined:变量被声明后,但未被赋值

2.string:用单引号或双引号来声明的字符串

3.boolean:true或false

4.number:整数或者浮点数

5.object:JavaScript中的对象、数组、和null

运算符号

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

赋值运算符:=

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

逻辑运算符:&& || !

JavaScript的逻辑控制语句

if...else条件语句

switch多分支语句

for循环语句

while循环语句

使用break进行循环中断

注释

单行注释以//开始,以行末结束。

多行注释以/*开始,以*/开始,符号/*......*/指示中间的语句是该程序中的注释。

常用的输入输出

1.alert()

alert("欢迎您");

2.prompt()

        prompt("提示信息","输入框的默认信息");
        prompt("请输入姓名","张三");        

语法约定

1.代码区分大小写

1.1 javascript的关键字,例如for和if,永远都是小写

1.2 内置对象,例如Math和Date是以大写字母开头

1.3 DOM对象的名称通常是小写,但是方法名采用驼峰命名法

2.变量、对象和函数的名称

1名称可以包含大小写英文字母,数字,下划线,和美元符号

JavaScript和java的区别

变量声明:java需要制定数据类型,JavaScript是弱变量,使用var声明

数据类型:数据类型不同,JavaScript使用number

运算符:相同

条件结构:相同

循环结构:java的foreach循环用于遍历集合元素,格式为for(变量:集合){...}。而JavaScript格式为:for(变量 in 对象){...},用于遍历数组或对象的属性

JavaScript函数

函数的含义:类似于java中的方法,是完成特定任务的代码语句块。使用更简单,不用定义属于某个类,直接使用

函数的分类:系统函数,自定义函数(有参函数、无参函数、参数的调用)

常用的系统函数

parseInt():将字符串转换为整型数字,例如:parseInt("86")将字符串"86"转换为整型值86

parseFloat():将字符串转换为浮点型,如:parseFloat(“23.33”)将字符串转换为浮点值23.33

isNaN():判断非数组,如var str=isNaN("123");将返回false

eval():计算表达式的值,例如,eval("2+2);返回5

自定义函数

创建函数:

无参函数:

        function name(){
            //javascript代码;
        }

有参函数:

        function name(参数1,参数2,参数3,...){
            //javascript代码;
        }

调用函数

方法一:函数调用一般和表单元素的时间一起使用,例:

     事件名=函数名()
        例:
        oncllick="函数名()";

方法二:直接使用函数名(传递的实参值)例如:

var result=add(2,3);

程序调试

1.alert方法

2.IE开发人员工具:单步进入、单步跳过、单步退出

BOM(浏览器对象模型)

1.BOM是Browser Object Model的缩写,简称浏览器对象模型

2.BOM提供了独立于内容而与浏览器窗口进行交互的对象

3.由于BOM主要用于管理窗口与窗口之间的通讯,因此其核心对象是Windows

4.BOM由一系列相关的对象构成,并且每个对象都提供了很多方法与属性

Window对象

Window对象是BOM的顶层(核心)对象,所有对象都是通过它延伸出来的,也可以成为window的子对象

由于window对象表示当前窗口对象,是一个全局对象。JavaScript中的任何一个全局函数或变量都是window的属性

window对象的常用属性

screen:有关客户端的屏幕和显示性能的信息

history:有关客户访问过的url的信息

location:记录当前URL的信息

prompt:显示可提示用户输入的对话框

alert:显示带有一个提示信息和一个确定按钮的警示框

confirm:显示一个带有提示信息、确定和取消按钮的对话框

close :关闭浏览器窗口

open:打开一个新的浏览器窗口,加载给定URL所指定的文档

setTimeout:在指定毫秒数后调用函数或计算表达式

setInterval:按照指定的周期(以毫秒计)来调用函数或表达式

关闭浏览器窗口:

     function close1(){
            window.close();
        }

打开一个新的窗口:

        function openWindow(){    
window.open("http://www.google.com",'','width=1200px,height=400px, menubar=1;'); }

JavaScript的Date可以用来获取系统时间(完整实例):

<!DOCTYPE html>
<html>
<head>
    <title>time</title>
    <meta charset="utf-8">
</head>
<body>
<!-- 显示系统时间-->
<div id="timeDiv">显示系统时间</div>
    <script type="text/javascript">
        //获得年月日,时分秒
        function shijian(){
            var date=new Date();
            //获得年份
            var year=date.getFullYear();
            //获得月份
            var month=date.getMonth()+1;
            //获得日子
            var day=date.getDate();
            //获得小时
            var hour=date.getHours();
            //获得分钟
            var min=date.getMinutes();
            //获得秒
            var sec=date.getSeconds();
            var time=year+""+month+""+day+""+hour+":"+min+":"+sec;
            //获得DIV对象
            var div=document.getElementById("timeDiv");
            //div调用属性
            div.innerHTML=time;
        }
        shijian();
    </script>
</body>
</html>

运行效果为:

2018年4月16日 19:52:56

innerHTML与innerText的区别:
div.innerHTML="<h1>aaaaaa</h1>"//可以解析<h1>标签
div.innerText="<h1>aaaaaa</h1>"//当成字符串

JavaScript在网页中动态显示时间

可通过

window.setInterval('displayTime()',1000);

每隔1s调用一次displayTime()方法,达到时间动态显示的效果

方法的递归调用

setTimeout('displayTime()',1000);

通过setTimeout方法,1s调用一次本方法,自己调用自己成为方法的递归

操纵HTML属性

<!DOCTYPE html>
<html>
<head>
    <title>操纵属性</title>
</head>
<body>
<span id="my_span">span的内容</span>
<div>
看书<input type="checkbox" name="love" value="看书">
写字<input type="checkbox" name="love" value="写字">
上网<input type="checkbox" name="love" value="上网">
</div>
<p>11</p>
<p>11</p>
<p>11</p>
<p>11</p>
</body>
</html>
<script type="text/javascript">
    //dom对象获得标签
    var sp=document.getElementById("my_span");
    sp.innerText="hahah";//更改值
    sp.style.backgroundColor="blue";//背景颜色
    //得到对象数组
    var cks=document.getElementsByName("love");
    //cks[0].value  通过下标取值
    //cks.item(0).value
    document.write(cks.length+"    "+cks[0].value+"    "+cks.item(0).value);
    //通过标签名称得到对象数组
    var biaoqian=document.getElementsByTagName("p");
    document.write(biaoqian);
</script>

JavaScript循环获取属性,改变属性值,达到全选与取消全选的操作:

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    全选
    <input type="checkbox" id="all" onchange="sel()">
    <br/>
    <input type="checkbox" id="all" name="hobby">11
    <input type="checkbox" id="all" name="hobby">22
    <input type="checkbox" id="all" name="hobby">33
    <input type="checkbox" id="all" name="hobby">44
    <input type="checkbox" id="all" name="hobby">55
    <input type="checkbox" id="all" name="hobby">66
</body>
</html>
<script type="text/javascript">
    function sel(){
    var all=document.getElementById("all");
    //获得5个复选框对象
    var cks=document.getElementsByName("hobby");
    //复选框被选中返回true
    var result=all.checked;
    if(result==true){
        //循环cks数组
        for (var i = 0; i<cks.length; i++) {
            //全部选中
            cks.item(i).checked=true;
        }
    }else{
        //全不选
        //循环cks数组
        for (var i = 0; i<=cks.length; i++) {
        //全不选
        cks.item(i).checked=false;
        }
    }
}
</script>

JavaScript实现表单的删除、新增、改变标题操作

<!DOCTYPE html>
<html>
<head>
    <title>JS实现功能</title>
    <meta charset="utf-8">

    <style type="text/css">
        .title{
            font-size: 30px;
            background-color: #cccccc;
        }
    </style>
</head>
<body>
    <div style="float: left;">
    <table border="2px" cellspacing="0" cellpadding="0" width="400px" height="100px" id="mt">
        <tr>
            <th>姓名</th>
            <th>年龄</th>
        </tr>
        <tr>
            <th>小黄</th>
            <th>40</th>
        </tr>
        <tr>
            <th>小邱</th>
            <th>64</th>
        </tr>
        <tr>
            <th>小董</th>
            <th>40</th>
        </tr>
    </table>
    </div>
<div>
<button onclick="add()">添加一行</button>
<button onclick="del()">删除一行</button>
<button onclick="update()">修改标题</button>
</div>
</body>
</html>
<!--添加JS代码-->
<script type="text/javascript">
    //获得表格对象
    var table=document.getElementById("mt");
    //添加一行操作
    function add(){
        //添加一行
        var newTr=table.insertRow();
        //设置内容居中
        newTr.align="center";
        //背景颜色
        //newTr.style.backgroundColor='blue';
        newTr.style.fontWeight='bold';
        //添加单元格td
        var td1=newTr.insertCell();
        var td2=newTr.insertCell();
        //给单元格添加内容
        td1.innerText="小黑";
        td2.innerText=22;
    }

    //删除一行操作
    function del(){
        //获得表格的行数
        var len=table.rows.length;
        //删除行(每次删除最后一行)
        table.deleteRow(len-1);
    }

    //修改标题
    function update(){
        //修改表格中的第一行
        var fisrtRow=table.rows[0];//tr
        fisrtRow.className='title';
    }
</script>

JavaScript横向菜单,达到移动到菜单位置改变其背景颜色

<!DOCTYPE html>
<html>
<head>
    <title>横向菜单</title>
    <meta charset="utf-8">
    <style type="text/css">
        ul li{
            list-style: none;
            float: left;
            margin:  20px;
            color: #FFFFFF;
            width: 80px;
            height: 30px;
            background-color: #cccccc;
            text-align: center;
            font-weight: bold;
            font-size: 18px;
        }
    </style>
</head>
<body>

<ul>
    <li>首页</li>
    <li>电视剧</li>
    <li>电影</li>
    <li>综艺</li>
    <li>公开课</li>
</ul>
</body>
</html>
<script type="text/javascript">
    //返回所有li标签对象
    var lis=document.getElementsByTagName("li");
    //得到每一个li对象
    for (var i = 0; i < lis.length; i++) {
        //鼠标放上触发一个时间onmouseover
        lis.item(i).onmouseover=function(){
            //给每个li添加一个背景颜色
            this.style.backgroundColor='red';
        }

        //光标移开
        lis.item(i).onmouseout=function(){
            //给每个li添加一个背景颜色
            this.style.backgroundColor='#cccccc';
        }
    }
</script>

下拉列表框对象,实现省市级联列表

<!DOCTYPE html>
<html>
<head>
    <title>下拉列表框对象</title>
    <meta charset="utf-8">
    <style type="text/css">
        select{
            width: 300px;
            height: 30px;
            font-size: 16px;
        }
    </style>
</head>
<body>

<!--下拉列表-->
<select id="pro" onclick="getCity()">
    <option value="河北">河北</option>
    <option value="河南">河南</option>
    <option value="广西">广西</option>
    <option value="山东">山东</option>
</select>

<!--城市列表-->
<select id="city"></select>

</body>
</html>
<script type="text/javascript">
    //获得省的对象
    var pro=document.getElementById("pro");
    //城市列表对象
    var city=document.getElementById("city");
    //获得具体的城市信息
    function getCity(){
        //得到具体省的信息
        var proValue=pro.value;

        city.options.length=0;

        if ('河南'==proValue) {
            //向城市下拉列表中添加信息
            city.add(new Option('郑州市','郑州'));
            city.add(new Option('商丘市','商丘'));
            city.add(new Option('信阳市','信阳'));
            city.add(new Option('周口市','周口'));
        }else if('河北'==proValue){
            //向城市下拉列表中添加信息
            city.add(new Option('石家庄市','石家庄'));
            city.add(new Option('保定市','保定'));
            city.add(new Option('张家口市','张家口'));
            city.add(new Option('秦皇岛市','秦皇岛'));
        }else if('广西'==proValue){
            //向城市下拉列表中添加信息
            city.add(new Option('百色市','百色'));
            city.add(new Option('桂林市','桂林'));
            city.add(new Option('玉林市','玉林'));
        }else if('山东'==proValue){
            city.add(new Option('济南市','济南'));
            city.add(new Option('青岛市','青岛'));
            city.add(new Option('潍坊市','潍坊'));
            city.add(new Option('烟台市','烟台'));
        }

    }

</script>

数组

取值:

alert(arr[0]+arr[1]+arr[2]);

排序:

  arr.sort();
    for (var i =  0; i <arr.length; i++) {
        document.write(arr[i]);
    }

添加分隔符:

    var a=arr.join("/");
        for (var i =  0; i <a.length; i++) {
        document.write(a[i]);
    }    

复杂的省市级联列表

<!DOCTYPE html>
<html>
<head>
    <title>复杂省市级联</title>
</head>
<body>
<!--省的下拉列表-->
<select id="pro" onchange="getCity()">
    <option>请选择省</option>
</select>
<!--城市的下拉列表-->
<select id="city"></select>
</body>
</html>
<script type="text/javascript">

var cityList = new Array();
cityList['河北省'] = ['邯郸市','石家庄市','秦皇岛市','张家口市','天津市'];
cityList['河南省'] = ['郑州市','洛阳市','商丘市','新郑市','焦作市','周口市'];
cityList['湖北省'] = ['武汉市','宜昌市','恩施市','孝感市','十堰市']; 
    //初始化省份信息
    window.onload=initPro;//initPro这个名字是随便起的
    function initPro(){
        //获得省的对象
        var pro=document.getElementById("pro");
        //cityList数组中的文字下标
        for(var i in cityList){
            //添加下拉列表项
            pro.add(new Option(i,i));
        }
    }

    //获得城市信息
    function getCity() {
        //获得所选省份的名称
        var proName=document.getElementById("pro").value;
        //获得城市下拉列表对象
        var city=document.getElementById("city");
        //重置城市的下拉列表
        city.options.length=0;
        for(var i in cityList){
            //判断文字下标时候和选择的proName一致
            if (i==proName) {
                //添加对应省份的城市信息
                for(var j in cityList[i]){
                    city.add(new Option(cityList[i][j],cityList[i][j]))
                }
            }
        }

    }
</script>

需求:制作使用prompt()函数在页面中弹出提示,根据用户输入的周一到周日的不同,弹出不同的信息提示框:

<!DOCTYPE html>
<html>
<head>
    <title>prompt</title>
    <meta charset="utf-8">
</head>
<body>
<script type="text/javascript">
    var zhuangtai=prompt("请输入今天是周几");
    if(zhuangtai=="周一"){
        alert("新的一周开始了!")
    }else if(zhuangtai=="周二"){
        alert("周二啦,加油!")
    }else if(zhuangtai=="周三"){
        alert("周三啦,过去一半了!")
    }else if(zhuangtai=="周四"){
        alert("周四啦,坚持住!")
    }else if(zhuangtai=="周五"){
        alert("周五,放假倒计时~")
    }else if(zhuangtai=="周六"||zhuangtai=="周日"){
        alert("周末啦,睡觉吧!")
    }else if(zhuangtai==null||zhuangtai==""){
        alert("好懒,都不输入.")
    }

</script>
</body>
</html>

需求:使用Date对象获取当前的日期和时间,根据不同时间显示不同的问候语。

<!DOCTYPE html>
<html>
<head>
    <title>获取时间</title>
    <meta charset="utf-8">
</head>
<body>
<h1 id="hello"></h1>
<hr>
    <p id="year"></p>
    <p id="day"></p>
</body>
</html>
<script type="text/javascript">
function datemsg(){
    var myDate=new Date();
    var Y=myDate.getFullYear();
    var M=myDate.getUTCMonth()+1;
    var D=myDate.getDate();
    var H=myDate.getHours();
    var T=myDate.getUTCMinutes();
    var S=myDate.getUTCSeconds();
    var msg=document.getElementById("year");
    msg.innerHTML="今天日期:"+Y+""+M+""+D+""+"<br/>";
    msg=document.getElementById("day");
    msg.innerHTML="现在时间:"+H+":"+T+":"+S;
    msg=document.getElementById("hello");{
        if(H>=0&&H<=12){
            msg.innerHTML="上午好,欢迎来到贵美";
        }else{
            msg.innerHTML="下午好,欢迎来到贵美";
        }
    }

    //方法的递归调用
    setTimeout('datemsg()',1000);
}
    datemsg();    
</script>

猜你喜欢

转载自www.cnblogs.com/sonder/p/8858316.html