JavaScript js 基础学习,页面优化

js工具和插件的安装:

js基本语法:

单行注释//

多行注释/**/

//1.输入框

//prompt("请输入数据")

//2.弹出警告框

// alert("hello")

//3.控制台输出

// console.log("hello js")

//4.页面输出内容

document.write("hello js")

//5.换行

document.write("<br/>")

document.write("hello.js")

原始数据类型:

bolean:布尔类型

null:声明null值的特殊关键字

undefined:代表变量未定义

number:整数或浮点数

string:字符串

bigint:大整数 例如 let=10n

算术运算符:

(字符串类型运算时,会自动转化为number类型)

+加法运算

-减法运算

*乘法运算

/除法运算

%取余数

++自增

--自减

== 判断值是否相等

=== 判断数据类型和值是否相等

  • && 逻辑与,并且

|| 逻辑或 ,或者

!,取反

三元运算符:
  • 三元运算符格式:

(比较表达式)?表达式1:表达式2;

  • 执行流程:

如果比较表达式为ture,则取表达式1,反之取表达式2;

数组:

定义格式:

let 数组名=[元素1,元素2,...]

索引范文:

从0开始,最大到数组长度减一

数组长度

数组名.length

函数:

  • 类似java中的方法,可以将一些代码进行抽取,达到复用的效果

  • 定义格式

function 方法名(参数列表){

方法体;

return返回值

}

  • 可变参数:

function 方法名(...参数名){

方法体;

return返回值

}

  • 匿名函数:

function 方法名(参数列表){

方法体;

}

DOM:

1. DOM介绍:

  • DOM(Document Object Model):文档对象模型。

  • 将 HTML 文档的各个组成部分,封装为对象。借助这些对象,可以对 HTML 文档进行增删改查的动态操作。

2.Element元素的操作

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>元素的获取</title>
</head>
<body>
    <div id="div1">div1</div>
    <div id="div2">div2</div>
    <div class="cls">div3</div>
    <div class="cls">div4</div>
    <input type="text" name="username"/>
</body>
<script> 
    //1.getElementById()  根据id属性值获取元素对象
  let div1= document.getElementById("div1");
  document.write("<br>"+div1);
     //2. getElementsByTagName()   根据元素名称获取元素对象们,返回数组
    let divs=document.getElementsByTagName("div");
    document.write("<br>"+divs.length)
    //3. getElementsByClassName()  根据class属性值获取元素对象们,返回数组
    let cls = document.getElementsByClassName("cls");
    document.write("<br>"+cls.length);
    //4. getElementsByName()   根据name属性值获取元素对象们,返回数组
   let username= document.getElementsByName("username");
   document.write("<br>"+username);
    //5. 子元素对象.parentElement属性   获取当前元素的父元素
   let body=div1.parentElement();
   document.write("<br>"+body);
</script>
</html>

3.属性的操作:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>属性的操作</title>
    <style>
        .aColor{
            color: rgb(0, 162, 255);
        }
    </style>
</head>
<body>
    <a>点我啊</a>
</body>
<script>
     //1. setAttribute()    添加属性
   let a= document.getElementsByTagName("a")[0];
   a.setAttribute("href","http://www.baidu.com")
    //2. getAttribute()    获取属性
      let value=  a.getAttribute("href");
      document.write("<br>"+value)
    //3. removeAttribute()  删除属性
    //a.removeAttribute("href");
    //4. style属性   添加样式
    // a.style.color="red";
    //5. className属性   添加指定样式
    a.className="aColor"
</script>
</html>

4.文本的操作:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
  <div id="div"></div>
</body>
<script>
      //1. innerText   添加文本内容,不解析标签
      let div= document.getElementById("div");
      //div.innerText="第一次添加文本"
      //2. innerHTML   添加文本内容,解析标签
      div.innerHTML="<strong>第一次添加文本</strong>"
</script>
</html>
  1. 事件:

  • 事件指的是当某些组件执行某些操作之后或会触发某些代码的执行。

  1. 常用的事件:

  1. 了解的事件:

绑定事件方式

  • 方式一:通过标签中的事件属性进行绑定。

  • 方式二:通过 DOM 元素属性绑定。

基本案例实现(学生表信息的添加和删除):

  • 代码实现:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>动态表格</title>
    <style>
        table{
            border:1px solid;
            margin: auto;
            width: 520px;
        }
        td,th{
            text-align: center;
            border: 1px solid;
        }
        div{
            text-align: center;
            margin: auto;
        }
    </style>
</head>
<body>
    <div>
        <input type="text" id="name" placeholder="请输入姓名" autocomplete="off">
        <input type="text" id="age" placeholder="请输入年龄" autocomplete="off">   
        <input type="text" id="gender" placeholder="请输入性别" autocomplete="off">
        <input type="button" value="添加" id="add">
    </div>
    <table id="tb">
        <caption>学生信息表</caption>
        <tr>
            <th>姓名</th>
            <th>年龄</th>
            <th>性别</th>
            <th>操作</th>
        </tr>
        <tr>
            <td>张三</td>
            <td>23</td>
            <td>男</td>
            <!--Javascipt:void(0); 作用:不刷新页面-->
            <td><a href="Javascipt:void(0);" onclick="drop(this)">删除</a></td>
        </tr>
        <tr>
            <td>李四</td>
            <td>24</td>
            <td>男</td>
            <td><a href="Javascipt:void(0);" onclick="drop(this)">删除</a></td>
        </tr>
    </table>
</body>
<script>
    //一、添加功能
    //1.为添加按钮绑定单击事件
    document.getElementById("add").onclick = function(){
        //2.创建行元素
    let tr= document.createElement("tr");
        //3.创建4个单元格元素
      let nameTd= document.createElement("td");
      let ageTd= document.createElement("td");
      let genderTd= document.createElement("td");
      let deleteTd= document.createElement("td");
        //4.将td添加到tr中
      tr.appendChild(nameTd);
      tr.appendChild(ageTd);
      tr.appendChild(genderTd);
      tr.appendChild(deleteTd);
        //5.获取输入框的文本信息
       let name= document.getElementById("name").value;
       let age= document.getElementById("age").value;
       let gender= document.getElementById("gender").value;
        //6.根据获取到的信息创建3个文本元素
     let nameText= document.createTextNode(name);
     let ageText= document.createTextNode(age);
     let genderText= document.createTextNode(gender);
        //7.将3个文本元素添加到td中
     nameTd.appendChild(nameText);
     ageTd.appendChild(ageText);
     genderTd.appendChild(genderText);
        //8.创建超链接元素和显示的文本以及添加href属性
       let a=document.createElement("a");
       let aText=document.createTextNode("删除");
       a.setAttribute("href","Javascript:void(0);")
       a.setAttribute("onclick","drop(this)");
       a.appendChild(aText)  
       //9.将超链接元素添加到td中
        deleteTd.appendChild(a);
        //10.获取table元素,将tr添加到table中
    let table=document.getElementById("tb");
     table.appendChild(tr); 
     if(tr!=0){
     alert("添加成功")
     }else{alert("添加失败")}
    }
    //二、删除的功能
//1.为每个删除超链接标签添加单击事件的属性
//2.定义删除的方法
function drop(obj){
//3.获取table元素
let table = obj.parentElement.parentElement.parentElement;
//4.获取tr元素
let tr = obj.parentElement.parentElement;
//5.通过table删除tr
table.removeChild(tr);
}
</script>
</html>
  • 效果演示:

面向对象:

类的定义和使用:

  • 定义格式

class 类名{

constructor (变量列表){

变量赋值;

}

方法名(参数列表){

方法体:

return 返回值

}

}

  • 使用格式:

let 对象名=new 类名(实际变量值);

对象名.方法名

继承:


  • 继承:让类与类产生子父类的关系,子类可以使用父类有权限的成员。

  • 继承关键字:extends

  • 顶级父类:Object

代码演示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
      //定义Person类
      class Person{
        //构造方法
        constructor(name,age){
            this.name = name;
            this.age = age;
        }

        //eat方法
        eat(){
            document.write("吃烤肉");
        }
    }
        //定义worker类继承Person
        class Worker extends Person{
            constructor(name,age,salary){
                //super继承父类的
                super(name,age);
                //this特有的
                this.salary=salary
            }
            show(){  
                 document.write(this.name + "," + this.age + "," + this.salary + "<br>");
                }
        }
        //使用worker类
        let w=new Worker("张三",23,10000);
        w.show();
        w.eat();
    
</script>
</html>

内置对象:

常见正则表达式规则:

[a-z]这个字符必须是小写字母

[abc]字符必须是abc

[0-9]这个字符必须是数字

[a-zA-Z0-9]这个字符必须是字母或者是数字

[^a-z]这个字符不是小写字母

[\d]等同于[0-9]

[\w]等同于[a-zA-Z_0-9] 字母、数字、下划线

[\D]等同于[^0-9]

[\W]等同于[^a-zA-Z0-9_]

.代表匹配任意字符, 若只是想代表普通数据. 需要使用转义字符来表示\.

X* X这个字符可以出现零次或者多次[0-9]*

X? X这个字符可以出现零次或者一次[0-9]?

X+ X这个字符可以出现一次或者多次 [0-9]+

X{m} X这个字符出现次数正好m次

X{m, } X这个字符出现次数至少m次

X{m, n} X这个字符出现次数至少m次,最多n次

(X)+ ()括号代表X所表示的内容作为一组数据出现;()括号后面的+号,代表这组数据可以出现一次或者多次

^X ^匹配开头

X$ $匹配结尾

Set:


JavaScript 中的 Set 集合,元素唯一,存取顺序一致。

Map:


JavaScript 中的 Map 集合,key 唯一,存取顺序一致。

Json:


  • JSON(JavaScript Object Notation):是一种轻量级的数据交换格式。

  • 它是基于 ECMAScript 规范的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。

  • 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于计算机解析和 生成,并有效的提升网络传输效率。

BOM:

  • 浏览器对象模型。

  • 将浏览器的各个组成部分封装成不同的对象,方便进行操作

将浏览器的各个组成部分封装成不同的对象,方便我们进行操作。

  • Window:窗口对象

  • Location:地址栏对象

  • Navigator:浏览器对象

  • History:当前窗口历史记录对象

  • Screen:显示器屏幕对象

Window窗口对象:

  • 定时器:

唯一标识setTimeout(功能,毫秒值):设置一次性定时器。

clearTImeout(标识):取消一次性定时器。

唯一标识setInterval(功能,毫秒值):设置循环定时器。

clearInterval(标识):取消循环定时器

  • 加载事件:

只有在页面所有内容加载完成之后才会执行加载事件的内容

Location地址栏对象

  • href属性

就是浏览器的地址栏。我们可以通过为该属性设置新的URL,使浏览器读取并显示新的URL的内容

JavaScript封装


封装思想

  • 封装:将复杂的操作进行封装隐藏,对外提供更加简单的操作。

  • 获取元素的方法

  • document.getElementById(id值):根据 id 值获取元素

  • document.getElementsByName(name值):根据 name 属性值获取元素们

  • document.getElementsByTagName(标签名):根据标签名获取元素们

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月初,

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值