Python 高级:08 JavaScript

一、JavaScript 介绍

1. JavaScript 的定义

Javascript 是运行在浏览器端的脚本语言,是由浏览器解释执行的,简称 JS,它能够让网页和用户有交互功能,增加良好的用户体验效果。
前端开发三大块:
(1)HTML:负责网页结构
(2)CSS:负责网页样式
(3)JavaScript:负责网页行为

2. JavaScript 的使用方式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 3、外链式 -->
    <script src="js/main.js"></script>
    <!-- 2、内嵌式 -->
    <script>
        alert("thk2")
    </script>
</head>
<body>
    <!-- 1、行内式 -->
    <input type="button" value="button" onclick="alert('thk1')">
</body>
</html>

二、变量和数据类型

1. 定义变量

JavaScript 是一种弱类型语言,不需要指定变量的类型,JavaScript 的变量类型由它的值来决定,定义变量需要关键字'var',一条 JavaScript 语句应该以“;”结尾。
定义变量的语法格式:
var 变量名 = 值

2. 数据类型

5种基本数据类型:
(1)number:数字类型;
(2)string:字符串类型;
(3)boolean:布尔类型 true 和 false;
(4)undefined:undefined 类型,变量声明未初始化,值是 undefined;
(5)null:null类型,表示空对象,如果定义的变量将来准备保存对象,可以将变量初始化为 null,在页面上获取不到对象,返回的值是 null。
1种复合类型:
数组、函数和 JavaScript 对象都属于复合类型。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        //  单行注释
        /*
            多行注释
        */
        // 数字和字符串类型
        var iNum1 = 10;
        var sStr1 = "str1";
        var iNum2 = 11, sStr2 = "str2";
        /*
        alert(iNum1);
        alert(sStr1);
        alert(iNum2);
        alert(sStr2);
        */
        // boolean类型
        var bBt = true;
        console.log(typeof(bBt));
        console.log(bBt);
        // undefined类型
        var uD;
        console.log(typeof(uD));
        console.log(uD);
        // null类型
        var nD = null;
        console.log(nD);
        // 查看null对象的类型返回的是object类型,其实是null类型
        console.log(typeof(nD));
        // 数组对象类型
        var oObj = {
            attr1: "attr1",
            attr2: "attr2"
        };
        alert(typeof(oObj))
        alert(oObj.attr1)
    </script>
</head>
<body>
    
</body>
</html>

3. 变量命名规范

(1)区分大小写;
(2)第一个字符必须是字符、下划线“_”或者“$”符号;
(3)其他字符可以是字母、下划线、美元符号或数字。

4. 匈牙利命名风格

(1)对象 Object,例:oDiv
(2)数组 Array,例:oItems
(3)字符串 String,例:sUserName
(4)整数 Integer,例:iItemCount
(5)布尔值 Boolean,例:bIsComplete
(6)浮点数 Float,例:fPrice
(7)函数 Function,例:fnHandler

三、函数的定义和调用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 定义函数(无参数无返回值)
        function show_info(){
            alert("无参数无返回值的函数")
        };

        // 函数调用
        show_info();

        // 定义函数(有参数有返回值)
        function sum(iNum1, iNum2){
            var res = iNum1 + iNum2;
            console.log(res);
            return res;
            alert("return之后的代码不执行!")
        };
        // 如果函数没有返回值,会返回一个undefined
        var iNum = sum(1, 7);
        alert(iNum)
    </script>
</head>
<body>
    
</body>
</html>

四、变量作用域

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 定义全局变量
        var iNum1 = 20;

        // 定义函数
        function info(){
            // 定义局部变量,局部变量只能在函数内部使用,在函数外不能访问和使用
            var iNum2 = 10;
            alert(iNum2);
        };

        function sum(){
            var res = iNum1 + 20;
            alert(res);
            iNum1++;
            iNum1 += 20;
            
        };

        info();
        sum();
        // 外部使用局部变量,报错
        // alert(iNum2);
        alert("finally:" + iNum1)
    </script>
</head>
<body>
    
</body>
</html>

五、条件语句

1. 语法

(1)if 语句:只有当指定条件为 true 时,使用该语句来执行代码;
(2)if……else 语句:当条件为 true 时执行代码,当条件为 false 时执行其它代码;
(3)if……else if……else 语句:使用该语句来判断多条件,执行条件成立的语句;

2. 比较运算符

比较运算符描述
==等于
===全等(值和类型)
!=不等于
>大于
<小于
>=大于或等于
<=小于或等于
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var iNum1 =10;
        var iStr = '10';
        // 把字符串和数字进行比较的时候,先把字符串转成数字,然后再进行比较
        // 把字符串转成数字这个操作时自动转换的,也称为自动类型转换
        /*
        if(iNum1 == iStr){
            alert("true");
        }else{
            alert("false");
        };

        if(iNum1 > iStr){
            alert("true");
        }else{
            alert("false");
        };
        */

        // 既判断数据类型,又判断数据大小需要使用“===”
        /*
        if(iNum1 === iStr){
            alert("true");
        }else{
            alert("false");
        };
        */

        /*
        var bIsOk = true;
        if(bIsOk){
            alert("条件是真的")
        }
        */

        // if 结合比较运算符
        var iHeight = 1.7
        if(iHeight < 1.6){
            alert("巨矮");
        }else if(iHeight < 1.7){
            alert("矮");
        }else if(iHeight < 1.8){
            alert("中等");
        }else if(iHeight < 1.9){
            alert("高");
        }else{
            alert("巨高");
        };
    </script>
</head>
<body>
    
</body>
</html>

六、获取标签元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
    <script>
        // 自定义的函数,设置onload事件,加载成功以后会执行传入的函数
        /*
        function load(){
            alert("执行回调函数");
            var oD = document.getElementById("div");
            alert(oD);
        };
        window.onload = load;
        */

        // 设置匿名函数,让页面加载完成以后执行传入的匿名函数
        window.onload = function(){
            var oD = document.getElementById("div")
            alert(oD)
        }
    </script>
<body>
    <div id="div">

    </div>
</body>
</html>

七、操作标签元素属性

1. 属性的操作

首先获取页面的标签元素,然后可以对页面的标签元素的属性进行操作,属性的操作包括:
● 属性的读取
● 属性的设置
属性名在 js 中的写法:
(1)html 的属性和 js 里面的属性大多数写法一样,但是“class”属性改写成“className”;
(2)“style”属性里面的属性,有横港的改成驼峰式,比如:“font-size”改写成“style.fontSize”。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>

    <style>
        .mya {
            color: yellow;
            font-size: 30px;
        }
        .myb {
            color: blueviolet;
            font-size: 50px;
        }
    </style>

    <script>        
        window.onload = function() {
            // 页面加载完成的时候获取iput标签
            var oInput = document.getElementById('uid');
            var oA = document.getElementById('link1');
            alert(oInput);
            alert(oA);
            //  对象获取成功以后,对属性进行读取
            var name = oInput.name;
            var value = oInput.value;
            var type = oInput.type;
            console.log("name:" + name);
            console.log("value:" + value);
            console.log("type:" + type);
            //  对属性进行设置
            // oA.style.color = 'red';
            // oA.style.fontSize = '30px';
            alert(oA.id);

            //  设置class属性,class = 'mya'
            oA.className = "myb";
        }
    </script>

</head>
<body>
    <input type="text" name="username" id="uid" value="李四">

    <a href="http://www.baidu.com" class="mya" id="link1">百度</a>
</body>
</html>

2. innerHTML

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<style type="text/css">
    #div1 {width: 200px;height: 200px;border: 1px solid black;}
</style>
</head>

<body>
<input id="txt1" type="text">
<input id="put1" type="button" value="改文字" />
<br/><br/>
<div id="div1"></div>
<script>
    var otxt=document.getElementById('txt1');
    var oput=document.getElementById('put1');
    var odiv=document.getElementById('div1');
    oput.onclick=function()
    {
        odiv.innerHTML=otxt.value;/*innerHTML里面就是正常的HTML,可以放上p、h1等*/
    }
</script>
</body>
</html>

3. 数组及操作方法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 1. 实例化对象方式创建
        // var oArray = new Array("MAC", "vlan", "ARP", 4095, 288);
        // console.log(oArray)
        // 2. 字面量方式创建
        // var oArray = ["MAC", "vlan", "ARP", 4095, 288];
        // console.log(oArray)

        // 定义多维数组
        // var aList = [["MAC", "vlan", "ARP"], [4095, 288]];
        // alert(aList)
        
        // 获取数组的长度
        var oArray = ["MAC", "vlan", "ARP", 4095, 288];
        // alert("oArray的长度:" + oArray.length);
        
        // 根据下标获取对应的元素
        var value1 = oArray[1];
        // alert("oArray[1]:" + value1);
        // 不支持负数下标
        var value2 = oArray[-1];
        // alert("oArray[-1]:" + value2);
        
        // 根据下标修改指定个数的数据,第一个参数是操作的下标,第二个参数是删除的个数,第三个参数是添加的数据
        // oArray.splice(0, 2, "vrrp");
        // oArray.splice(0, 2, "vrrp", "RIP");
        // alert(oArray);
        
        // 根据下标修改元素
        // oArray.splice(1, 1, "vrrp");
        // alert(oArray);
        
        // 根据下标删除一个元素,第一个参数是操作的下标,第二个参数是删除的个数
        // oArray.splice(2, 1);
        // alert(oArray);
        
        // 根据下标插入指定元素,第一个参数是操作的下标,第二个参数是删除的个数,第三个参数是添加的数据(后面都是添加的数据)
        // oArray.splice(1, 0, "dhcp");
        // oArray.splice(1, 0, "dhcp", "stp");
        
        // 追加一个元素
        // oArray.push(255);
        // alert(oArray);
        
        // 删除最后一个元素
        oArray.pop();
        alert(oArray);
    </script>
</head>
<body>
    
</body>
</html>

八、循环语句

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 定义一个数据
        // for循环
        var oArray = ["vrrp", "dhcp", "stp"];
        /*
        for(var i = 0; i < oArray.length; i++){
            var value = oArray[i];
            alert(value);
        };
        */

        // while循环
        /*
        var index = 0;
        while(index < oArray.length){
            var value = oArray[index];
            alert(value);
            index++
        };
        */

        // do-while循环
        // 条件不成立do语句会执行一次,条件成立do语句会循环执行,while语句只有条件成立才会执行
        var index = 3;
        do{
            alert("条件不成立也会执行");
            var value = oArray[index];
            alert(value);
            index++;
        }while(index < oArray.length);

    </script>
</head>
<body>

</body>
</html>

九、字符串拼接

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var sStr1 = 'vrrp';
        var sStr2 = 'dhcp';
        var res1 = sStr1 + sStr2;
        // alert(res1);

        var res2 = res1 += 'stp';
        // alert(res2);

        // 字符串和数字类型进行+运算,得到的结果是字符串
        var iNum1 = 10;
        var sStr3 = "rip";
        var res3 = iNum1 + sStr3;
        // alert(res3);

        var sStr4 = '18.8';
        var sStr5 = '28.8';
        var res4 = sStr4 + sStr5;
        // alert(res4);

        // 对字符串类型转换
        // float型
        var res5 = parseFloat(sStr4) + parseFloat(sStr5);
        alert(res5);
        // int型
        var res6 = parseInt(sStr4) + parseInt(sStr5);
        alert(res6);
    </script>
</head>
<body>
    
</body>
</html>

十、定时器

1. 定时器的介绍

定时器是在一段特定的时间后执行某段程序代码。

2. 定时器的使用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 1.无参函数
        /*
        function show_info(){
            var oDate = new Date();
            console.log(oDate.toLocaleString());
            clearTimeout(t1);
        };
        */
        // 延时调用一次指定函数
        // 第一个参数是执行的函数名,第二个参数是延时的时间
        // 返回值是定时器的标识符,创建的第几个定时器
        // var t1 = setTimeout(show_info, 1000);
        // alert(t1);

        // 2.有参函数
        /*
        function show_info(info){
            alert(info);
            // 清除定时器
            clearTimeout(t2);
        };
        var t2 = setTimeout(show_info, 1000, "first");
        */

        // 3.循环根据指定事件执行对应的函数
        var count = 1;
        function show_info(){
            var oDate = new Date();
            console.log(oDate.toLocaleString());
            if(count == 20){
                clearInterval(t3);
            };
            count += 1;
        }
        var t3 = setInterval(show_info, 1000);
    </script>
</head>
<body>
    
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值