当前位置: 首页 > news >正文

JavaScript 年后复习

1.函数定义

有名函数

定义一个函数 sum,接收两个参数 a 和 b,返回它们的和。然后调用该函数并输出结果。

实现代码:

 function sum(a, b) {
    return a + b;
  }
  console.log(sum(1, 2));

函数的定义需要用到function,sum作为函数名,后面的括号跟的是形参列表。

函数体的作用是返回两数相加之和

然后我们使用console.log输出打印函数的结果到浏览器控制台

相同的输出还有1、alert()提示框输出  2、document.write()输出到浏览器

匿名函数

定义函数,接收两个参数a和b,把这个匿名函数赋值给变量f,通过f调用函数

实现代码:

let f = function (a,b){
  return a+b;
}
console.log(f(12,34));

匿名函数也就是只有function (){函数体},匿名函数直接抛弃了函数名,也就是说这个函数写出来基本就只能调用一次。我们也可以把匿名函数赋值给一个变量。通过变量调用函数

箭头函数

定义箭头函数,接收两个参数a和b,把箭头函数赋值给变量f,输出f调用箭头函数的结果到控制台

let f = (a,b)=> a+b;
console.log(f(12,34))

箭头函数相对于前两个来说更加简洁。如果箭头函数的函数体只有一条语句,我们就可以省略大括号,如果不知一个语句大括号就不能省略

2.数组操作

给定一个数组arr = [1,2,3,4,5,6]通过map()方法让数组的每个元素都平方,返回一个新的数组

let arr = [1,2,3,4,5,6]
let arr2 = arr.map(item => {
  return item*item
})
console.log(arr2)

首先定义了一个数组,我们通过数组的map()方法去挨个处理数组的元素。然后通过return语句返回这些元素给数组arr2

map()方法的作用是遍历对应的数组,括号内是一个函数,用于处理数组元素。处理函数有两个参数,item值,index下标。在这里我们只用了item也就是数组的值。我们用的函数就是箭头函数,因为只有一个形参,所以省略了小括号。如果需要用到下标我们可以改写为:(item,index)=>{}

3.构解赋值

给定一个对象 person = { name: 'Alice', age: 25, job: 'Engineer' },使用解构赋值将 name 和 age 提取到变量中,并输出它们。

let person = {
 name : "alice",
  age : 25,
  job : "engineer"
}
const {name, age}= person
console.log(name,age)

我们首先定义了对象,对象包含三个属性name,age,job我们需要解构出这三个属性,但是由于题目并没有要求我们解构job属性,我们就省略

一般来说只可以省略最后面的属性,这个只针对对象的解构。数组的结构可以省略中间的元素。我们只需要const [a,,c]就可以了。在结构数组的时候我们用的是[]方括号,对象使用的是{}大括号

4.事件监听与事件委托

创建一个嵌套div,大的div600*600,小的div300*300 小的div水平垂直居中。设置大div事件监听为单击触发,通过事件委托判断是否是点击小div触发的大div

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #div1{
            width: 600px;
            height: 600px;
            background-color: red;
            display: flex;
            align-items: center;
            justify-content: center;
        }
        #div2{
            width: 300px;
            height: 300px;
            background-color: blue;
        }
    </style>
</head>
<body>
<div id = "div1">
    <div id = "div2">
    </div>
</div>
<script>
const div1 = document.getElementById('div1')
const div2 = document.getElementById('div2')

div1.addEventListener('click', (e) => {
    if(e.target.id === 'div2')
    {
        alert("div2")
    }else{
        alert("div1")
    }
})
</script>

我们先看body部分,我们按照题目要求创建了嵌套div。

然后再看head里面的style,我们给两个div设置了宽高,然后又给第一个div设置了flex布局,让它的项目都水平垂直居中。

通过document.getElementById()获取对应的元素对象。通过对象.addEventListener()添加事件监听,这里我们是给div1也就是大的div添加了事件监听,因为小div是包含再div1里面的,所以我们点击小的div也会触发大div的事件监听。这就是事件委托

事件监听里面对应的箭头函数有一个e,这个e可以帮我们判断出我们点击的到底是哪个div。

5.数据渲染

用户输入姓名、性别、年龄、住址、体重(kg) 把数据渲染到表格,数据不能为空并且渲染后数据要清空,表格要求有头部标题。姓名单元格背景色改为灰色

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
       body{
           display: flex;
           align-items: center;
           justify-content: center;
           flex-direction: column;
       }
       td{
           border: 1px solid black;
           width: 250px;
           text-align: center;
       }
       table{
           border-collapse: collapse;
       }
       .td_color{
           background-color: dimgrey;
       }
    </style>
</head>
<body>
<form>
    <table>
        <tr>
            <td>姓名</td>
            <td>性别</td>
            <td>年龄</td>
            <td>住址</td>
            <td>体重</td>
            <td>提交</td>
        </tr>
        <tr>
            <td><input type="text" id="name"></td>
            <td><input type="text" id="gender"></td>
            <td><input type="text" id="age"></td>
            <td><input type="text" id="address"></td>
            <td><input type="text" id="height"></td>
            <td><input type="submit" value = "提交"></td>
        </tr>
    </table>
</form>

<br>
<br>
<br>
<br>


<table id="table">
    <tr>
        <td class ="td_color">姓名</td>
        <td>性别</td>
        <td>年龄</td>
        <td>住址</td>
        <td>体重</td>
    </tr>
</table>


<script>
const form = document.querySelector('form')
const table = document.querySelector('#table')
form.addEventListener('submit', function(e){
    e.preventDefault()
    const name = document.querySelector('#name')
    const gender = document.querySelector('#gender')
    const age = document.querySelector('#age')
    const address = document.querySelector('#address')
    const height = document.querySelector('#height')
    if(name.value!=""&&gender.value!=""&&age.value!=""&&address.value!=""&&height.value!=""){
        table.innerHTML += `
    <tr>
        <td class ="td_color">${name.value}</td>
        <td>${gender.value}</td>
        <td>${age.value}</td>
        <td>${address.value}</td>
        <td>${height.value}</td>
    </tr>
    `
        name.value = ""
        gender.value = ""
        age.value = ""
        address.value = ""
        height.value = ""
    }else{
        alert("data not found")
    }
})
</script>
</body>
</html>

根据题目要求我们可以得出以下结论:数据要手动输入,不能为空。写好的数据要渲染到表格,姓名那一栏需要我们把背景色设置为灰色。

我们首先把HTML代码写好,为了美观我们设置body使用flex布局居中。我们首先使用了一个表单,在表单内内置一个表格,然后进行用户输入的一些相应设置。

然后我们再在表单下面写一个表格,这个表格用于数据的渲染操作。这里值得一提的是我们使用flex布局之后默认的排序方式是左到右的排序,我们需要通过flex-direction设置主轴方向

至此我们HTML的代码写完了,我们再来看js的代码

我们首先获取了form和table的对象。通过给form添加监听事件来触发接下来的操作
当我们按下提交按钮之后会触发相应的函数,我们在函数内首先阻止默认提交行为,通过:事件对象.preventDefault()来阻止。

然后分别获取相应内容的对象,通过对象.value获取输入的值,继续判断输入的值是否是空的,如果是空的提示:data not found

获取到数据之后我们就需要渲染到表格内,我们先前已经获取到表格对象了,我们通过表格对象.inner HTML来进行数据的追加渲染。

到此,这个题就被解出来了

相关文章:

  • 【算法】初等数论
  • Spring事务原理 二
  • 【hot100】刷题记录(25)-实现Trie
  • EVM系区块链开发网节点搭建及测试详细文档
  • 对VQ-VAE中EMA方式更新码本的理解
  • RT-Thread+STM32L475VET6——USB鼠标模拟
  • HTTP状态码完整梳理及适用场景
  • 报表控件stimulsoft操作:使用 CDN 服务部署 Stimulsoft 组件
  • 第15届 蓝桥杯 C++编程青少组中/高级选拔赛 202401 真题答案及解析
  • [250222] Kimi Latest 模型发布:尝鲜最新特性与追求稳定性的平衡 | SQLPage v0.33 发布
  • QT闲记-工具栏
  • nginx反向代理以及负载均衡(常见案例)
  • 容器和虚拟机选择对比
  • windows的CMD命令提示符
  • 【C语言】第六期——数组
  • 进程间通信(上)
  • 0221作业
  • leetcode 题目解析 第3题 无重复字符的最长子串
  • go 环境准备
  • cadence报错解决1
  • 阿联酋与美国达成超过2000亿美元协议
  • 病重老人取钱在银行门口去世,家属:已协商一致
  • 人形机器人灵犀X2掌握新技能:有了“内心戏”,还会拳脚功夫
  • 国家统计局向多省份反馈统计督察意见
  • 多地举办演唱会等吸引游客刺激消费,经济日报:引导粉丝经济理性健康发展
  • 特朗普促卡塔尔说服伊朗放弃核计划,伊朗总统:你来吓唬我们?