JavaScript学习

目录

我的第一个javaScript程序

基本语法

测试

严格模式

字符串

控制流 

迭代器

函数

变量的作用域

方法

Date

JSON

面向对象原型继承

class继承

操作BOM对象

获得Dom节点

更新Dom节点

删除节点

插入节点

操作表单

提交表单(使用md5加密密码)

提交表单(优化)

使用jQuery记得导入jquery库

初始jQuery

选择器

事件

操作dom元素


我的第一个javaScript程序

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
<!--    <script src="js/qj.js">-->
    <script>
        // alert("Hello JavaScript!");

    </script>

<!--    不用显示定义type,也默认就是javascript-->
    <script src="text/javascript"></script>
</head>
<body>

</body>
</html>

基本语法

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<script>
     var score=80;
     if (score>75&&score<90){
         alert("优秀");
     }else alert("及格");

     console.log("成绩")
</script>

</body>
</html>

测试

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<script>
    var 王者荣耀="王者荣耀";
    var num=[1,2,3,4,5,'str',null,1.1];
    var num1={
        name:"张三",
        age:1,
        sex:"男",
        hobby:["篮球","足球"]
    }
</script>

</body>
</html>

严格模式

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <!--
前提:IEDA需要设置支持ES6语法
‘use strict’; 严格检查模式,预防JavaScript的随意性导致产生的一些问题
必须写在JavaScript的第一行!
局部变量建议都使用let去定义
-->

    <script>
        'use strict';
        let i=1;
    </script>
</head>
<body>


</body>
</html>

字符串

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<script>
    'use strict';

    let name = "zhangsan";
    let age =3;
    let msg='';

    console.log("a");
    console.log('a');
    console.log("a\'");
    console.log("\u4e2d");
    console.log("\x41");

    var school="XX学院";
    //破折号``
    let msg1=`XX大学${school}`
    console.log(msg1)



    var person={
        name:"张三",
        age:18,
        email:"123344@qq.com"
    }
</script>

</body>
</html>

控制流 

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>


</head>
<body>

<script>
    var num=[3,2,3,2,4,5];
    for (let i = 0; i < num.length; i++) {
        console.log(num[i]);
    }

    console.log("=================")

    for ( numKey in num) {
        console.log(num[numKey])
    }
    console.log("==================")

    var i=0;
    while (i<5){
        console.log(i);
        i++;
    }
    console.log("=======")

    do {

        i++;
        console.log(i);
    }while (i<10);

    console.log("===========")
    num.forEach(function (value) {
        console.log(value)
    })
</script>

</body>
</html>

Map和Set集合

<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<script>
    var map= new Map([['tom',200],['jack',79],['haha',90]]);
    var name=map.get('tom');//通过key获取value
    map.set('admin',1234);//新增或修改
    // map.delete("tom");//删除
    console.log(map.get('tom'));
    console.log(map.delete("tom"))
    console.log(map)

    // var set = new Set([2,2,21,1,43,45,3,3]);//set可以去重
    // console.log(set);
    // console.log(set.delete(1));
    // console.log(set.add(5));
    // console.log(set.has(4));



</script>

</body>
</html>

迭代器

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    var arr=[1,2,3,4];
    for (var x of arr){
        console.log(x);
    }
</script>


</body>
</html>

函数

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    // var asd=function (a) {
    //         // console.log(a);
    //     console.log(arguments.length)
    // }

    var asd=function (a,b,...rest) {
        console.log("a=>"+a);
        console.log("b=>"+b);
        console.log(rest)
    }

    var asdf=function (score) {
            if (score>=80){
                console.log("良好");
            }else if (score>60){
                console.log("及格")
            }
    }

    function ghj(score) {
        console.log("成绩为"+score);
    }
</script>

</body>
</html>

变量的作用域

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<script>
    //jQuery等价与$()

    //唯一全局变量
    // var ZhangSan={};
    //
    // //定义全局变量
    // ZhangSan.name='zhangsan';
    // ZhangSan.add=function (a,b) {
    //     return a+b;
    // }
    //
    // console.log(ZhangSan)


    // function aaa() {
    //     for (var i = 0; i < 100; i++) {
    //         console.log(i)
    //     }
    //     console.log(i+1); //问题?i出了这个作用域还可以使用
    // }

    //建议使用let去定义局部作用域的变量
    // function aaa() {
    //     for (let i = 0; i < 100 ; i++) {
    //         console.log(i);
    //     }
    //     console.log(i+1);//Uncaught ReferenceError: i is not defined
    // }


    // var PI='3.14';
    // console.log(PI);
    // PI='123';//可以改变这个值
    // console.log(PI);

    // const  PI= '3.14'; //只读变量
    // console.log(PI);

    // function qj() {
    //     var x=1;
    //
    //     function qj2() {
    //             var x='A';
    //             console.log('inner'+x);//innerA
    //     }
    //     console.log('outer'+x);//outer1
    //     // qj2();
    // }
    // qj();

    //全局变量
    // var x=1;
    // function f() {
    //     console.log(x);
    //
    // }
    // f();
    // console.log(1);

    //全局对象window
    // var x='xxx';
    // alert(x);
    // alert(window.x);//默认所有的全局变量,都会自动绑定在window()对象下;

    //alert()这个函数本身也是一个window变量;
    var x= 'xxx';

    window.alert(x);
    var old_alert=window.alert;
    old_alert(x);

    window.alert=function(){

    }
    //发现alert()失效了
    window.alert(123);

    //恢复
    window.alert=old_alert;
    window.alert(456);



</script>

</body>
</html>

方法

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>3.方法</title>
</head>
<body>

<script>

<!--    方法就是把函数放在对象的里面,对象只有两个东西:属性和方法-->
    // var zhangsan={
    //     name:'张三',
    //     birth:2000,
    //     //方法
    //     age:function () {
    //     //    今年- 出生的年
    //         var now=new Date().getFullYear();
    //         return now-this.birth;
    //     }
    // }
    // //属性
    // zhangsan.name;
    // //方法
    // zhangsan.age();

//    this.代表什么?
    function getAge() {
        //今年-出生的年
        var now=new Date().getFullYear();
        return now-this.birth;
    }

    var  zhangSan={
    name:'张三',
        birth:2000,
        age:getAge
    }

var  xiaoMing={
    name:'张三',
    birth:2000,
    age:getAge
}

    // zhangSan.age();
    //     getAge.apply(zhangSan,[]);//this.指向了zhangSan,参数为空
// getAge.apply(xiaoMing,[]);
</script>

</body>
</html>

Date

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<script>
    var now=new Date();//Sun Nov 13 2022 15:58:41 GMT+0800 (中国标准时间)
    now.getFullYear();//年
    now.getMonth();//月 0--11
    now.getDate();//日
    now.getDay();//星期几
    now.getHours();//时
    now.getMinutes();//分
    now.getSeconds();//秒

    now.getTime();//时间戳 全世界统一 1970 1.1 0:00:00 毫秒数

    console.log(new Date(1668326547042));//Sun Nov 13 2022 16:02:27 GMT+0800 (中国标准时间)

    now.toString();//'Sun Nov 13 2022 16:03:36 GMT+0800 (中国标准时间)'

    now.toLocaleString();//'2022/11/13 16:03:36'

    now.toGMTString();//'Sun, 13 Nov 2022 08:03:36 GMT'

</script>

</body>
</html>

JSON

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>JSON</title>
</head>
<body>

<script>

    var person={
        name:'张三',
        age:12,
        sex: "男"
    }

    let s = JSON.stringify(person);
    console.log(s);//{"name":"张三","age":12,"sex":"男"}

    let p = JSON.parse('{"name":"张三","age":12,"sex":"男"}');
    console.log(p);
//    age
//     :
//     12
//     name
//         :
//         "张三"
//     sex
//         :
//         "男"

</script>

</body>
</html>

面向对象原型继承

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

        <script>
            var Student={
                name:"zhangsan",
                age:3,
                run:function () {
                    console.log(this.name+" run....");
                }
            }

            var xiaoming={
                name: "xiaoming"
            }

            //小明的原型是Student
            xiaoming.__proto__=Student; //xiaomingrun....

            var Bird={
                fly:function () {
                    console.log(this.name+" fly.....");
                }
            };

            //小明的原型是Bird
            xiaoming.__proto__=Bird; //xiaoming fly.....
        </script>

class继承

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>


//    function Person(name) {
//            this.name=name;
//    }
//
//    //给Person新增一个方法
//    Person.prototype.hello = function () {
//        alert("Hello 张三")
//    };
//
//    var zhangSan=new Person("zhanSan");
//    zhangSan.hello();


    //定义一个学生的类
    class Student{
        constructor(name) {
            this.name=name;
        }
        hello(){
            alert("hello")
        }
    }

    class XiaoStudent extends Student{
        constructor(name,grade) {
            super(name);
            this.grade = grade;
        }

        myGrade(){
            alert('我是一名小学生')
        }
    }

    var xiaoming = new Student("xiaoming");
    var xiaohong = new XiaoStudent("xiaohong",1);
</script>

</body>
</html>

操作BOM对象

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<!--window代表浏览器窗口-->
<!--window.alert(1)
undefined
window.console.log("111")
VM115:1 111
undefined
window.innerHeight
386
window.innerWidth
852
window.outerHeight
831
window.outerWidth
782-->

<!--Navigator,封装了浏览器的信息
navigator.appName
'Netscape'
navigator.appVersion
'5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'
navigator.userAgent
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'
navigator.platform
'Win32'
-->

<!--location代表 当前页面的URL信息
host: "www.baidu.com"
href: "https://www.baidu.com/"
protocol: "https:"
reload: ƒ reload() //刷新网页
-->

<!--document代表当前的页面,HTML DOM文档树
document.title
'百度一下,你就知道'
document.title='张三'
'张三'
-->

<!--获取具体的文档树节点-->
<dl id="app">
    <dt>Java</dt>
    <dd>JavaSE</dd>
    <dd>JavaEE</dd>
</dl>
<script>
    var dl=document.getElementById('app');
</script>

<!--获取cookie
document.cookie
-->

</body>
</html>

获得Dom节点

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="father">
    <h1>标题一</h1>
    <p id="p1">p1</p>
    <p class="p2">p2</p>
</div>

<script>
    //对应css选择器
    var h1=document.getElementsByTagName('h1');
    var p1=document.getElementById('p1');
    var p2=document.getElementsByClassName('p2');
    var father=document.getElementById('father');

    var childrens=father.children;//获取父节点下的所有子节点

    console.log(h1)
    console.log(p1)
    console.log(p2)
    console.log(childrens)

</script>

</body>
</html>

更新Dom节点

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="dl"></div>

<script>
    var ss=document.getElementById('dl');
</script>

<!--ss.innerHTML='345'
'345'
ss.innerHTML='<strong>2343</strong>'
'<strong>2343</strong>'
ss.style.color='yellow'
'yellow'
ss.style.fontSize='20px'
'20px'-->
</body>
</html>

删除节点

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="father">
    <h1>标题一</h1>
    <p id="p1"></p>
    <p class="p2">p2</p>
</div>
<!--删除节点的步骤:先获取父节点,在通过父节点删除自己-->
<script>
    var self=document.getElementById('p1');
    var father=p1.parentElement;
    father.removeChild(self)

    //删除是一个动态的过程;
    //注意:删除多个节点的时候,children是在时刻变化的,删除节点的时候一定要注意!
    // father.removeChild(father.children[0])
    // father.removeChild(father.children[1])
    // father.removeChild(father.children[2])

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

插入节点

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<!--我们获得了某个Dom节点,假设这个dom节点是空的,我们通过innerHTML就可以增加一个元素了,
但是这个DOM节点已经存在元素了,我们就不能这么干!会产生覆盖-->
<!--追加-->
<p id="js">JavaScript  </p>
<div id="list">
    <p id="se">JavaSE</p>
    <p id="ee">JavaEE</p>
    <p id="me">JavaME</p>
</div>

<script>
    var js=document.getElementById('js');
    var ee=document.getElementById('ee');
    var list=document.getElementById('list');
    // list.append(js);//追加到后面
    //
    // //通过JS创建一个新的节点
    // var newP=document.createElement('p');//创建一个p标签,实现插入
    // newP.id='newP';
    // newP.innerText='Hello,ZhangSan';
    // list.append(newP);
    //
    // //创建一个标签节点 (通过这个属性,可以设置任意的值)
    // var myScript=document.createElement('script');
    // myScript.setAttribute('type','text/javascript');
    // list.append(myScript);


    //可以创建一个Style标签
    // var myStyle = document.createElement('style');//创建了一个空style标签
    // myStyle.setAttribute('type','text/css');
    // myStyle.innerHTML='body{background-color:chartreuse;}';//设置标签内容
    //
    // document.getElementsByTagName('head')[0].appendChild(myStyle)

    //要包含的节点:insertBefore(newNode,targetNode)
    list.insertBefore(js,ee);



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

操作表单

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form>
    <p>
        <span>用户名:</span><input type="text" id="username">
    </p>
    <p>
        <span>性别:</span>
        <input type="radio" name="sex" value="man" id="boy">男
        <input type="radio" name="sex" value="women" id="girl">女
    </p>
</form>

<script>
    var username=document.getElementById('username');
    var boy_radio=document.getElementById('boy');
    var girl_radio=document.getElementById('girl');

    //得到输入框的值
    username.value
    console.log(username.value)
    //修改输入框的值
    username.value=123

    //对于单选框,多选框等等固定的值,boy_radio.value只能取到当前的值
    boy_radio.checked;//查看返回的结果,是否为true,如果为true,则被选中
    girl_radio.checked=true;//赋值
</script>

</body>
</html>

提交表单(使用md5加密密码)

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
<!--MD5工具类-->
    <script src="https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.min.js"></script>
</head>
<body>
<form action="#" method="post">
    <p> <span>用户名:</span><input type="text" id="username" name="username">
    </p>
    <p> <span>密&nbsp;&nbsp;码:</span><input type="password" id="password" name="password">
    </p>

<!--    绑定事件onclick 被点击-->
    <button type="submit" onclick="aaa()">提交</button>
</form>


<script>
    function aaa() {

        var uname=document.getElementById('username');
        var pwd=document.getElementById('password');
        console.log(uname.value);
        console.log(pwd.value);
        //MD5算法
        pwd.value=md5(pwd.value);
        console.log(pwd.value);
    }


</script>

</body>
</html>

提交表单(优化)

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--MD5工具类-->
    <script src="https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.min.js"></script>
</head>
<body>
<!--
表单绑定提交事件
onsubmit=绑定一个提交检测的函数,true,false
将这个结果返回给表单,使用onsubmit接收!
onsubmit="return aaa()"
-->
<form action="https://www.baidu.com/" method="post" onsubmit="return aaa()">
    <p>
        <span>用户名:</span><input type="text" name="username"  id="username">
    </p>
    <p>
        <span>密&nbsp;&nbsp;码:</span><input type="password"   id="input-password">
    </p>

    <button type="submit">提交</button>
    <input type="hidden" id="md5-password" name="password">

</form>

<script>
    function aaa() {
            var uname=document.getElementById('username');
            var pwd=document.getElementById('input-password');
            var md5pwd=document.getElementById('md5-password');


            md5pwd.value=md5(pwd.value);

            //可以校验判断表单内容,true就是通过提交,false,阻止提交
            return true;


    }
</script>

</body>
</html>

使用jQuery记得导入jquery库

初始jQuery

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="lib/jquery-1.7.2.js"></script>
</head>
<body>

<!--jQuery公式:$(selector).action()-->
<a href="" id="test-jquery" >点我</a>

<script>

    //选择器就是css的选择器
    $('#test-jquery').click(function () {
        alert('hello,jQuery');
    })
</script>
</body>
</html>

选择器

公式$(selector).action()

 学习网站
https://jquery.cuishifeng.cn
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="lib/jquery-1.7.2.js"></script>
</head>
<body>

<script>
<!--    公式$(selector).action()-->
    //原生js.选择器少,麻烦不好记
    // 学习网站
    //https://jquery.cuishifeng.cn/
    //标签
    document.getElementsByTagName();
    //id
    document.getElementById();
    //class
    document.getElementsByClassName();

    //jQuery    css   中的选择器它全部都能用!
    $('p').click();//标签 选择器
    $('#id').click();//id选择器
    $('.class').click();//class选择器

</script>

</body>
</html>

事件

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="lib/jquery-1.7.2.js"></script>
    <style>
        #divMove{
            width: 500px;
            height: 500px;
            border: 1px solid red;
        }
    </style>
</head>
<body>

<!--要求:获取鼠标当前的一个坐标-->
mouse : <span id="mouseMove"></span>
<div id="divMove">
    在这里移动鼠标试试
</div>

<script>
    //当网页元素加载完毕之后,响应事件
    $(function () {
            $('#divMove').mousemove( function (e) {
                $('#mouseMove').text('x:'+e.pageX+'y:'+e.pageY)
            })
    });
</script>

</body>
</html>

操作dom元素

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="lib/jquery-1.7.2.js"></script>
</head>
<body>

<ul id="test-ul">
    <li class="js">JavaScript</li>
    <li name="python">Python</li>

</ul>

<script>
    // $('#test-ul li[name=python]').text();//设置值
    $('#test-ul li[name=python]').css("color","red")//设置值

    //元素的显示和阴藏:本质 display:none;
    // $('#test-ul li[name=python]').show()//显示元素
    // $('#test-ul li[name=python]').hide()//隐藏元素

    // $('#test-ul li[name=python]').text('javaee');//设置值
    // $('#test-ul').html();//获得值
    // $('#test-ul').html('<strong>123</strong>');//设置值


//    $(window).width()
//     $(window).height()
//      $('#test-url li[name=python]').toggle(); //切换
</script>

</body>
</html>
小技巧:
1、如果巩固JS(看jQuery源码,看游戏源码)
2、巩固HTML,CSS(扒网站,全部down下来,然后对应修改结果)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值