B站 - 狂神说 - JavaScript 随堂笔记(图)

文章目录

    • 1、什么是 avaScript
      • 1.1、概述
      • 1.2、历史
    • 2、快速入门
      • 2.1、引入JavaSciprt
      • 2.2、基本语法入门
      • 2.3、数据类型
      • 2.4、严格检查格式
    • 3、数据类型详解
      • 3.1、字符串
      • 3.2、数组
      • 3.3、对象
      • 3.4、流程控制
      • 3.5、map和set
      • 3.6、iterator
    • 4、函数
      • 4.1、定义函数
      • 4.2、变量的作用域
      • 4.3、方法
      • 5、内部对象
      • 5.1、基本语法
      • 5.2、JSON
      • 5.3、Ajax
    • 6、面向对象编程
    • 7、操作BOM对象(重点)
    • 8、操作DOM对象(重点)
    • 9、操作表单(验证)
    • 10、jQuery
    • > 小技巧

1、什么是 avaScript

1.1、概述

JavaScript是一门世界上最流行的脚本语言
Java、 JavaScript
10天—

一个合格的后端人员,必须要精通 JavaScript

1.2、历史

JavaScript的起源故事
https://blog.csdn.net/kese7952/article/details/79357868

ECMAScript它可以理解为是avascript的一个标准
最新版本已经到es6版本-
但是大部分浏览器还只停留在支持es5代码上!
开发环境一线上环境,版本不一致

2、快速入门

2.1、引入JavaSciprt

  1. 内部标签
<script>
//...
</script>

2、外部引入
abs.js

 //...

test.html

  <script src="abc.js"></script>

测试代码
B站 - 狂神说 - JavaScript 随堂笔记(图)_第1张图片

2.2、基本语法入门

B站 - 狂神说 - JavaScript 随堂笔记(图)_第2张图片
浏览器调试必备须知
在这里插入图片描述

2.3、数据类型

数值,文本,图形,音频,视频。。。
变量
B站 - 狂神说 - JavaScript 随堂笔记(图)_第3张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第4张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第5张图片
浮点数问题
B站 - 狂神说 - JavaScript 随堂笔记(图)_第6张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第7张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第8张图片

2.4、严格检查格式

B站 - 狂神说 - JavaScript 随堂笔记(图)_第9张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第10张图片

3、数据类型详解

3.1、字符串

B站 - 狂神说 - JavaScript 随堂笔记(图)_第11张图片
console.log("\x41") ==> a
B站 - 狂神说 - JavaScript 随堂笔记(图)_第12张图片
console.log(msg) ==> ‘你好呀,qinjiang’
在这里插入图片描述
B站 - 狂神说 - JavaScript 随堂笔记(图)_第13张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第14张图片

3.2、数组

B站 - 狂神说 - JavaScript 随堂笔记(图)_第15张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第16张图片
arr = [0,1,1];
B站 - 狂神说 - JavaScript 随堂笔记(图)_第17张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第18张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第19张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第20张图片
常用的方法slice(截取),push(压入),pop(弹出),shift(压入首部),unshift(弹出首部),concat(拼接)

3.3、对象

B站 - 狂神说 - JavaScript 随堂笔记(图)_第21张图片
JavaScript中的所有的键都是字符串,值都是任意对象
B站 - 狂神说 - JavaScript 随堂笔记(图)_第22张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第23张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第24张图片

3.4、流程控制

B站 - 狂神说 - JavaScript 随堂笔记(图)_第25张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第26张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第27张图片
forEach是ES5.1引入的
B站 - 狂神说 - JavaScript 随堂笔记(图)_第28张图片

3.5、map和set

ES6的新特性~
B站 - 狂神说 - JavaScript 随堂笔记(图)_第29张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第30张图片

3.6、iterator

ES6的新特性~

使用iterator来迭代Map和Set

B站 - 狂神说 - JavaScript 随堂笔记(图)_第31张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第32张图片

4、函数

4.1、定义函数

B站 - 狂神说 - JavaScript 随堂笔记(图)_第33张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第34张图片
function(x){…}这是一个匿名函数,但是可以把结果赋值给abs,通过abs就可以调用函数!
方式一和方式二等价
B站 - 狂神说 - JavaScript 随堂笔记(图)_第35张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第36张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第37张图片
args[]
B站 - 狂神说 - JavaScript 随堂笔记(图)_第38张图片
问题:arguments包含所有的参数,我们有时候想使用多余的参数来进行附加操作,需要排除已有参数~
B站 - 狂神说 - JavaScript 随堂笔记(图)_第39张图片
rest参数只能卸载最后面,必须用…标识(rest是自定义名称
function aaa(a,b,…like){
console.log(like);
}

4.2、变量的作用域

B站 - 狂神说 - JavaScript 随堂笔记(图)_第40张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第41张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第42张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第43张图片
假设在JavaScript中,函数查找变量从自身函数开始。由“内”向“外”查找。
假设外部存在这个同名的函数变量。则内部函数会屏蔽外部函数的变量。
B站 - 狂神说 - JavaScript 随堂笔记(图)_第44张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第45张图片
这个是在JavaScript建立之初就存在的特性,养成规范,所有的变量定义都放在函数的头部,不要乱放,便于代码维护。

B站 - 狂神说 - JavaScript 随堂笔记(图)_第46张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第47张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第48张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第49张图片
JavaScript实际上只有一个全局作用域,任何变量(函数也可以视为变量),假设没有在函数作用范围内找到,就会向外查找,如果在全局作用域都没有找到,报错 RefernceError

规范

我们所有的全局变量都会绑定到我们的windows上。如果不同的js文件。使用了相同的全局变量。冲突 ~ >如果能够减少冲突?
B站 - 狂神说 - JavaScript 随堂笔记(图)_第50张图片
把自己的代码全部放入自己定义的唯一空间名字中,上面。啊降低全局命名冲突的问题.
(jQuery库)
B站 - 狂神说 - JavaScript 随堂笔记(图)_第51张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第52张图片

常量const

在ES6之前,怎么定义常量:只有用最全部大写字母命名的变量就是常量,建议不要修改这样的值。

B站 - 狂神说 - JavaScript 随堂笔记(图)_第53张图片

4.3、方法

B站 - 狂神说 - JavaScript 随堂笔记(图)_第54张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第55张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第56张图片

5、内部对象

B站 - 狂神说 - JavaScript 随堂笔记(图)_第57张图片

5.1、基本语法

B站 - 狂神说 - JavaScript 随堂笔记(图)_第58张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第59张图片

5.2、JSON

B站 - 狂神说 - JavaScript 随堂笔记(图)_第60张图片
在JavaScript一切皆为对象,任何js支持的类型都可以用JSON来表示:number,String…
B站 - 狂神说 - JavaScript 随堂笔记(图)_第61张图片
JSON和JS的区别

5.3、Ajax

Ajax

6、面向对象编程

B站 - 狂神说 - JavaScript 随堂笔记(图)_第62张图片
原型:
B站 - 狂神说 - JavaScript 随堂笔记(图)_第63张图片
以前的继承
B站 - 狂神说 - JavaScript 随堂笔记(图)_第64张图片
现在的继承
B站 - 狂神说 - JavaScript 随堂笔记(图)_第65张图片
2、继承
B站 - 狂神说 - JavaScript 随堂笔记(图)_第66张图片
本质:查看对象原型
B站 - 狂神说 - JavaScript 随堂笔记(图)_第67张图片

原型链

B站 - 狂神说 - JavaScript 随堂笔记(图)_第68张图片

7、操作BOM对象(重点)

B站 - 狂神说 - JavaScript 随堂笔记(图)_第69张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第70张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第71张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第72张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第73张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第74张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第75张图片

8、操作DOM对象(重点)

B站 - 狂神说 - JavaScript 随堂笔记(图)_第76张图片

获得DOM节点

B站 - 狂神说 - JavaScript 随堂笔记(图)_第77张图片

B站 - 狂神说 - JavaScript 随堂笔记(图)_第78张图片
这种都是原生代码,往后尽量用jQuery();
B站 - 狂神说 - JavaScript 随堂笔记(图)_第79张图片

删除节点

B站 - 狂神说 - JavaScript 随堂笔记(图)_第80张图片
注意,删除多个节点的时刻,children是在时刻变化的,删除节点的时候一定要注意。

插入节点

获得了某个DOM节点,假设这个DOM节点是空的,通过innerHTML就可以增加一个元素了,但是这个DOM节点已经存在元素了,就会产生覆盖。
B站 - 狂神说 - JavaScript 随堂笔记(图)_第81张图片
效果:
B站 - 狂神说 - JavaScript 随堂笔记(图)_第82张图片

创建一个新的标签,实现插入

B站 - 狂神说 - JavaScript 随堂笔记(图)_第83张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第84张图片

9、操作表单(验证)

B站 - 狂神说 - JavaScript 随堂笔记(图)_第85张图片

获取要提交的信息

提交表单信息
B站 - 狂神说 - JavaScript 随堂笔记(图)_第86张图片

提交表单,md5密码加密,表单优化(高级玩法 - hidden)

<head>
    <meta charset="UTF-8">
    <title>Documenttitle>
    
    <script src="https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.min.js">script>
head>
<body>

    <form action="" method="POST" onsubmit="return aaa()">
        用户:<input type="text" id="uname" name="username" placeholder="用户名"/><br/>
        密码:<input type="password" id="pname" name="userpassword" placeholder="密码"/><br/>
        <input type="hidden" id="md5pwd" name="epassword"/>
        <button type="submit">提交button>
    form>
body>

<script>
    function aaa(){
        var u = document.getElementById('uname');
        var p = document.getElementById('pname');
        var md5pwd = document.getElementById('md5pwd');
        md5pwd.value = md5(p.value);
        //可以校验判断表单内容,true就是通过提交,false是阻止提交
        return true;
    }
script>
不用按钮提交,一般都用表单级别的提交 ← ← ← 刮刮乐

10、jQuery

获取jQuery - 公式:$(selector).action()

jquery
公式:$(选择器).事件(事件函数)

<head>
    <meta charset="UTF-8">
    <title>Documenttitle>
    
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js">script>
head>
<body>
    <a href="" id="test-jquery">点我a>

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

    script>
body>

选择器

B站 - 狂神说 - JavaScript 随堂笔记(图)_第87张图片
文档工具站:https://jquery.cuishifeng.cn/

事件

鼠标事件,键盘事件,其他事件
B站 - 狂神说 - JavaScript 随堂笔记(图)_第88张图片
比如获取鼠标坐标:

<head>
    <meta charset="UTF-8">
    <title>Documenttitle>
    <style>
        #divMove{
            width: 500px;
            height: 500px;
            border: 1px solid red; 
        }
    style>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js">script>
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>

操作DOM

B站 - 狂神说 - JavaScript 随堂笔记(图)_第89张图片
B站 - 狂神说 - JavaScript 随堂笔记(图)_第90张图片

> 小技巧

1、巩固JS

  • 看jQuery源码
  • 看游戏源码

2、巩固HTML

  • CSS —> 扒网站,全部下载下来,修改对应位置的样式,看效果

你可能感兴趣的:(前端)