4-day(JavaScript基础与DOM1)

JavaScript与DOM1


JavaScript函数调用的方式

    <script type="text/javascript">
    <!--
    /*
        函数定义:
            1.采用关键字function来定义
            2.采用匿名函数的方式(采用function作为名字)
            3.(了解)采用new Function()
                    小括号最后一个参数是函数体,之前所有的参数都是形参

        函数的调用:
            调用函数时:是利用函数名来寻找,(定义函数的时候不要使用相同的名字)
     */

    function fun() {
        alert("大家好");
    }

    fun();

    var a = function () {
        alert("我是匿名函数");
    }
    a();

    var b = new Function("x", "y", "alert(x+y)");
    b(3, 4);

    //-----------------------------------------------------------------------
    function fun1() {
        alert("我是无参的函数");
    }

    function fun1(x) {
        alert("我是带x的参数函数");
    }

    function fun1(x, y) {
        alert("我是带两个参数的函数");
    }

    //-->
    </script>

JavaScript函数的劫持

    <script type="text/javascript">
    <!--
    //函数劫持:改变JavaScript的函数预定好的功能
    window.alert = function (x) {//预定义的功能
        document.write(x);
    }
    alert("abc");
    //-->
    </script>  

JavaScript全局函数

    <script type="text/javascript">
    <!--
    /*
              NaN : NOT a number
           1. isNaN : 是不是一个数字:返回TRUE 不是数字
           2. parseInt , parsetFloat
           3. eval :
                    a.主要执行字符串。将结果转换为数字
                    b.将json格式的字符串转换为json  “json本质======键值对。map”
           4. escape();编码
           5. unescape();解码
           6. encodeURL()对网址进行编码
           7. decodeURL
     */

    var a = "100";

    //JavaScript只判断内容,不判断类型
    if (isNaN(a)) {
        alert("不是数字");
    } else {
        alert("是数字");
    }

    alert("3" + "2");
    alert(eval("3") + eval("2"));
    alert(eval("3 + 10") + eval("2"));

    var b = "中国";
    var c = escape(b);
    alert(c);
    alert(unescape(c));
    //-->
    </script>

array对象

    <script type="text/javascript">
    <!--
    /*
        数组对象的定义方式:
                1.采用new Array()的方式
                2.定义[]来定义,推荐使用

        JavaScript与Java中数组的差别:
                1.Java中数组有类型。一旦类型确定,则数组中所以的数据都是同一种类型。JavaScript中没有类型,(不推荐)
                2.Java中数组长度一旦确定不能再更改了,JavaScript可以再次改变数组长度
                        更改方法:1.指定length属性
                                  2.指定某个数组中元素的值
                3.Java中的数组中的数据引用必须用下标引用,下标必须是整数
                  JavaScript中数组的数据引用可以用任意对象
     */
    var arr = new Array();//定义一个数组arr,初始长度为0
    var arr1 = new Array(4);//定义一个数组arr1.初始长度是4
    arr1[0] = 1;
    arr1[1] = 10;
    alert(arr1[0]);
    alert(arr1[2]); //弹出undefined,没有初始值
    alert(arr1[100]);//弹出undefined,相当于定义了一个变量arr1[100],没有赋值

    var arr2 = new Array(1, 2, 3, 4, 5);//定义一个数组arr2,初始化数据1,2,3,4,5
    alert(arr2[4]);

    var arr3 = [];//定义一个数组,里面空
    var arr4 = [3, 2, 4, 5];//定义一个数组,同时初始化

    //-----------------------区别----------------------------------
    var arr5 = [1, 2, "4", true, 45.8, false, "abc"];
    alert(arr5[3]);

    alert(arr5.length);
    arr5.length = 100;
    alert(arr5.length);

    arr5[101] = 100;
    alert(arr5.length);

    arr5.length = 2;
    alert(arr5[3]);//弹出undefined

    var arr6 = ["中国", "美国", "日本"];
    arr6["中国"] = ["北京", "上海", "天津"];
    alert(arr6["中国"][0]);

    //-->
    </script>   

array的常用方法介绍

    <script type="text/javascript">
    <!--
    /*
        array对象的方法:
                1.join():默认情况下用逗号隔开每个数据
                2.push():将元素添加到数组的末尾
                3.reverse():反转顺序
                4.shift():删除并返回第一个元素
                5.sort():排序:默认情况下先将能转换为number类型的字符串和number类型的放一起比较(String比较String)

     */

    var arr = ["中国", "美国", "日本"];
    alert(arr.join());//默认用逗号隔开
    alert(arr.join(""));//用空字符串连接
    arr.push("韩国");
    alert(arr.join());
    arr.reverse();
    alert(arr.join());
    alert(arr.shift());

    var arr1 = [3, 4, "23", "34", 124];
    alert(arr1.sort());

    var arr2 = [3, "a", 4, "23", "bc", "34", 124, "ert"];
    alert(arr2.sort());

    alert(arr1.sort(function (a, b) {//传递一个function类型参数,制定我们的比较规则,只适用于数字类型的字符串
        if (a * 1 > b * 1)
            return 1;
        else
            return -1;
    }));

    //-->
    </script>  

标题栏的滚动

<head>
<meta charset="UTF-8">
<title>标题栏的滚动---西南科技大学</title>
<script type="text/javascript">
    <!--
    function init() {
        //1.拿到标题栏的文本
        var title = document.title;
        //alert(title);
        //2.将文本字符串转换为数组
        var arr = title.split("");
        //3.拿到数组的第一个元素,并从数组中删除
        var first = arr.shift();
        //4.将第一个元素添加到数组的最后
        arr.push(first);
        //5.将数组再组合成一个字符串
        title = arr.join("");
        //6.将字符串再赋值回标题栏
        document.title = title;
        //7.每隔一秒,做一遍前6步
        setTimeout("init()", 1000);

    }

    //-->
</script>
</head>
<body onload="init()">
</body>  

字符串对象

    <script type="text/javascript">
    <!--
    /*
        String对象的方法:
                1.substr();//截取子字符串,两个参数,第一个是参数下标。第二个是截取的长度
                2.substring();//截取子字符串,两个参数,代表下标
     */

    function fun() {
        //1.拿到p标签对象
        var p = document.getElementById("p");
        //2.拿到p标签对象的主体内容
        var txt = p.innerHTML;  //innerHTML必须是有开始标签和结束标签的标签对象才能使用
        //3.改变字体内容。在赋值回去
        p.innerHTML = txt.big().big();
    }

    //示例:点击变色按钮,让p标签中的文本的颜色随机变化
    var arr = ["red", "blue", "green", "yellow", "#888888"];

    function fun1() {

        //拿到p标签对象
        var p = document.getElementById("p");
        //随机取得一个整数作为数组的下标
        var index = Math.floor(Math.random() * arr.length);
        //3.给p标签对象的主体改变颜色,并赋值回去
        //var txt = p.innerHTML;
        var txt = p.innerText;
        p.innerHTML = txt.fontcolor(arr[index]);

        setTimeout("fun1()", "3000");
    }

    function fun2() {
        var txt = document.getElementById("h1").innerHTML;
        txt = document.getElementById("h1").innerText;
        alert(txt);
    }

    var s = "abcdefg";
    alert(s.substring(2, 3));
    alert(s.substring(3, 2));
    alert(s.substring(300, -2));
    alert(s.substr(2, 3));
    //-->
</script>
</head>
<body>
<p id="p">大</p>
<input type="button" value="变大" onclick="fun()"><br>
<p></p>
<input type="button" value="变色" onclick="fun1()">

<h1 id="h1"><font>你好</font></h1>
<input type="button" value="演示innerH和innerText的区别" onclick="fun2()">
</body>   

Maht对象

    <script type="text/javascript">
    <!--
    /*
        Maht对象:
            1.floor(): 向下取整
            2.ceil():向上取整
            3.random():0-1之间随机数(左闭右开区间)
            4.round():四舍五入取整

     */
    var a = 3.1;
    alert(Math.floor(a));
    alert(Math.ceil(a));
    alert(Math.round(a));
    //-->
    </script>  

Maht对象

<script type="text/javascript">
    <!--
    /*
        Date对象:
            1.拿到当前时间:new Date();
            2.拿到年月日,时分秒:getXXX();

     */
    var d = new Date();
    alert(d.toLocaleString());
    alert(d.getYear() + 1900);//从1900年开始计算
    alert(d.getMonth())
    alert(d.getDate());
    alert(d.getDay());//星期
    //-->
</script>  

正则表达式

    <script type="text/javascript">
    <!--
    /*
        正则表达式:

     */
    var reg = /.../;
    var s = "abcde";

    alert(reg.test(s));//测试字符串中是否包含正则表达式中所匹配的字符串,返回的是Boolean类型
    alert(reg.exec(s));//以数组的形式返回匹配的正则表达式的字符串
    //-->
    </script>  

Bom:浏览器对象模型

    <script type="text/javascript">
    <!--
    /*
        Window对象的属性:
            1.innerHeight:返回文档显示区的高度
            2.innerWidth:返回文档显示区的宽度     IE不支持
                    通用写法:
            3.outerheight   包括工具栏、菜单栏的高度
            4.outerwidth    包括滚动条的宽度
     */

    function init() {
        var x = window.document.body.clientWidth;
        var y = window.document.body.clientHeight;
        alert(x + ":" + y);
    }

    //-->
</script>
</head>
<body onload="init()">
<p>你好</p>
</body>  

Window对象:opener和parent属性


opener属性

opener.html页面

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Window对象:opener属性</title>
<script type="text/javascript">
    <!--
    /*
        Window对象的属性:
            1.opener属性:代表父窗口
                    应用:必须要求两个窗口拥有父子关系
                            1,超链接(设置target属性为_blank)
                            2.window.open()打开窗口
            2.parent属性:代表父窗口
                    使用地方 1.框架中
                             2.内嵌框架
            3.frames[]:拿到子窗口
     */
    function fun() {
        window.open("sub.html")
    }

    //-->
</script>
</head>
<body>
<input type="text" name="" id="txt">
<input type="button" value="打开sub.html页面" onclick="fun()">
<a href="sub.html" target="_blank">打开sub.html页面</a>
</body>
</html>   

sub.html页面

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>传递子窗口的值到父窗口</title>
</head>
<script type="text/javascript">
<!--
//示例:将子窗口中的文本框中的数据传递到父窗口中的文本框中显示
function fun() {
    //1.拿到文本框中填写的数据
    var v = document.getElementById("txt").value;
    //2.拿到父窗口对象
    var w = window.opener;
    //3.拿到父窗口中的文本框对象
    var txt = w.document.getElementById("txt");
    //4.将内容赋值给父窗口中的文本框对象的value属性
    txt.value = v;
}

//-->
</script>
<body>
<input type="text" name="" id="txt">
<input type="button" value="传递子窗口的值到父窗口中的文本框" onclick="fun()">
</body>
</html>

parent属性

parent.html页面

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Window对象:parent属性</title>
<script type="text/javascript">
    <!--
    /*
        Window对象的属性:
            1.opener属性:代表父窗口
                    应用:必须要求两个窗口拥有父子关系
                            1,超链接(设置target属性为_blank)
                            2.window.open()打开窗口
            2.parent属性:代表父窗口
                    使用地方 1.框架中
                             2.内嵌框架
            3.frames[]:拿到子窗口
     */
    function fun() {
        //1.拿到文本框中填写的数据
        var v = document.getElementById("txt").value;
        //2.拿到子窗口对象
        var w = window.frames[0];
        //3.拿到子窗口中的文本框对象
        var txt = w.document.getElementById("txt");
        //4.将内容赋值给父窗口中的文本框对象的value属性
        txt.value = v;
    }

    //-->
</script>
</head>
<body>
姓名<input type="text" name="" id="txt">
<input type="button" value="传递数据到子窗口" onclick="fun()">
<iframe src="sub1.html"></iframe>
</body>
</html>  

sub1.html页面

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>传递子窗口的值到父窗口</title>
</head>
<script type="text/javascript">
<!--
//示例:将子窗口中的文本框中的数据传递到父窗口中的文本框中显示
function fun() {
    //1.拿到文本框中填写的数据
    var v = document.getElementById("txt").value;
    //2.拿到父窗口对象
    var w = window.parent;
    //3.拿到父窗口中的文本框对象
    var txt = w.document.getElementById("txt");
    //4.将内容赋值给父窗口中的文本框对象的value属性
    txt.value = v;
}

//-->
</script>
<body>
<input type="text" name="" id="txt">
<input type="button" value="传递数据到父窗口中" onclick="fun()">
</body>
</html>  

status属性

<script type="text/javascript">
<!--
/*
 */
function init() {
    //拿到当前时间
    var d = new Date();
    //设置状态栏的文本
    self.status = d.toLocaleString();//self 等价于 window
}

//-->
</script>  

window对象三种对话框

<script type="text/javascript">
<!--
/*
三种对话框:
    1.消息对话框:alert();
    2.确认框:confirm():返回Boolean类型的值
    3.输入框:prompt():返回输入的字符串

 */
//window.alert("你好");

while (true) {
    if (confirm("你爱我吗?") == false)
        continue;
    break;
}

var a = prompt("请输入年龄", 27);
alert(a);
window.close();
//-->
</script>  

window对象的open方法

<script type="text/javascript">
<!--
function fun() {
    window.open("sub.html", "", "width=200,height=200,status=no,titlebar=no,menubar=no,toolbar=no,resizable=0");

}

//-->
</script>
<body>
<input type="button" value="打开sub.html页面" onclick="fun()">
</body>  

window对象的计时器方法

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>window对象的计时器</title>
</head>
<script type="text/javascript">
<!--
/*
    window对象的计时器:
            1.setTimeout():隔一段时间调用某个函数一次(只调用一次),返回的是一个计时器,调用函数后自动销毁
                clearTimeout():销毁有setTimeout产生的计时器
            2.setInterval():每隔一段时间调用某个函数(多次调用)
                clearInterval():销毁由setInterval()产生的计时器

 */
var t;
var t1;

function fun() {
    //拿到p标签的主体内容
    var p = document.getElementById("p");
    var v = p.innerHTML;
    //将主体内容转换为number,转换后赋值回去
    p.innerHTML = v * 1 - 1;
    t = setTimeout("fun()", 1000);

}

function fun1() {
    //拿到p标签的主体内容
    var p = document.getElementById("p2");
    var v = p.innerHTML;
    //将主体内容转换为number,转换后赋值回去
    p.innerHTML = v * 1 - 1;

}


function fun2() {
    clearTimeout(t);

}

t1 = setInterval("fun1()", 1000);//一直存在,直到被销毁
function fun3() {
    clearInterval(t1);
}

function fun4() {
    t1 = setInterval("fun1()", 1000);

}

//-->
</script>
<body>
<p id="p">10</p>
<p id="p2">100</p><br>
<input type="button" value="演示setTimeout方法" onclick="fun()">
<input type="button" value="演示clearTimeout方法" onclick="fun2()">
<input type="button" value="演示setInterval方法" onclick="fun4()">
<input type="button" value="演示clearInterval方法" onclick="fun3()">
</body>
</html>  


window的模态窗体

<body>
<script type="text/javascript">
<!--
/*
    window的模态窗体:
 */
window.showModalDialog("你好");
//-->
</script>
</body>  

history对象

A页面

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>history对象</title>
</head>
<script type="text/javascript">
<!--
/*
    history对象存储了访问过的页面
 */
function fun() {
    history.forward();
}

//-->
</script>
<body>
西安科技大学AAAAAAAAAAAAAAAAAAAAAA
<a href="B.html">B.html</a>
<input type="button" value="前进" onclick="fun()">
</body>
</html>  

B页面

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>history对象</title>
</head>
<script type="text/javascript">
<!--
/*
    history对象存储了访问过的页面
 */
function fun() {
    history.forward();
}

function fun1() {
    history.back();
}

function fun2() {
    history.go(2);
}

//-->
</script>
<body>
西安科技大学BBBBBBBBBBBBBBBBBBB
<a href="C.html">C.html</a>
<input type="button" value="前进" onclick="fun()">
<input type="button" value="后退" onclick="fun1()">
<input type="button" value="末尾页面" onclick="fun2()">
</body>
</html>  

C页面

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>history对象sub3</title>
</head>
<script type="text/javascript">
<!--
/*
    history对象存储了访问过的页面
 */
function fun() {
    history.forward();
}

function fun1() {
    history.back();
}

function fun2() {
    history.go(-2);
}

//-->
</script>
<body>
西安科技大学CCCCCCCCCCCCCCCCCCCCCC
<a href="D.html">D.html</a>
<input type="button" value="前进" onclick="fun()">
<input type="button" value="后退" onclick="fun1()">
<input type="button" value="返回首页" onclick="fun2()">
</body>
</html>   

D页面

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>history对象sub3</title>
</head>
<script type="text/javascript">
<!--
/*
    history对象存储了访问过的页面
 */
function fun1() {
    history.back();
}

function fun2() {
    history.go(-3);
}

//-->
</script>
<body>
西安科技大学DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
<input type="button" value="后退" onclick="fun1()">
<input type="button" value="直接去首页" onclick="fun2()">
</body>
</html>  

鼠标的移动事件

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>鼠标的移动事件</title>
<style type="text/css">
    div {
        width: 300px;
        height: 300px;
        border: 1px solid red;
    }
</style>
</head>
<script type="text/javascript">
<!--
/*
    //示例:当鼠标在div上移动的时候显示鼠标的坐标
 */

function fun(e) {
    var x = e.clientX;
    var y = e.clientY;

    //显示在文本框中
    var txt = document.getElementById("txt");
    txt.value = x + ":" + y;
}

//-->
</script>
<body>
<input type="text" name="id" id="txt">
<div onmousemove="fun(event)"></div>
</body>
</html>  


location对象

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>鼠标的移动事件</title>
</head>
<script type="text/javascript">
<!--
/*
    掌握: 1 href 属性
           2 reload() 重新加载本页面
 */
function fun() {
    //window.location.href = "sub.html";
    window.location = "sub.html";
}

function fun1() {

    window.location.reload();
}

//-->
</script>
<body>
<input type="button" value="直接去sub.html" onclick="fun()">
<input type="button" value="重新加载" onclick="fun1()">
</body>
</html>  

鼠标的悬停及移出事件

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>鼠标的移动事件</title>
<style>
    .one {
        color: red;
        border: 6px solid green;
        cursor: hand;
    }
</style>
</head>
<script type="text/javascript">
<!--
/*
    掌握: 1 href 属性
           2 reload() 重新加载本页面
 */
function fun() {
    //拿到p标签
    var p = document.getElementById("p");
    //定义p的样式
    //p.style.color = "red";
    //p.style.border = "5px dashed green";
    p.className = "one";
}

function fun1() {
    //拿到p标签
    var p = document.getElementById("p");
    p.className = "none";
}

//-->
</script>
<body>
<p onmouseover="fun()" onmouseout="fun1()" id="p">你好,闫博文!</p>
</body>
</html>  

onload事件

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>onload事件</title>
</head>
<script type="text/javascript">
<!--
/*

 */

var n = 0;

function init() {

    n++;
    if (n == 4)
        n = 1;
    //拿到图片对象
    var img = document.getElementById("img");
    //改变图片
    img.src = "images/" + n + ".jpg";
    //每隔一秒
    setTimeout("init()", 1000);
}

//-->
</script>
<body onload="init()">
<img src="images/1.jpg" width="200" height="200" id="img">
</body>
</html>  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值