JavaScript基础学习

1.一元运算符

正负号,自增运算符

2.比较运算符

判断相等用===

字符串比较,比较的是ASC码

尽量不要比较小数,小数有精度

不同类型比较会有隐式转换

3.运算符优先级

4.分支语句

除了0,其余数字都是真。除了空字符串,其余字符串都是真。

案例:简易ATM取款机

<body>

  <script>
    let money = 100
    while (true) {
      let re = prompt(`
      请选择要进行的操作
      1.存钱
      2.取钱
      3.查看余额
      4.退出
      
      `)//这里需要用反引号,才能多行输出
      if (re === '4') {
        break;
      }
      switch (re) {
        case '1':
          let save = +prompt('请输入存钱金额')
          money = money + save
          break;
        case '2':
          let out = +prompt('请输入取钱金额')
          money = money - out
          break;
        case '3':
          alert(`账户余额还有${money}元`)
          break
        default:
          alert('输入的不对')
          break
      }
    }


  </script>


</body>

案例:乘法表

<head>
  <meta charset="utf-8">
  <title>练习</title>
  <style>
    span{
      display:inline-block;
      padding: 3px;
      border: 1px solid pink;
      margin: 3px;
      width: 100px;
      box-shadow: 2px 2px 2px rgba(255,192,203,.2);
      border-radius: 2px;
    }
  </style>
</head>

<body>

  <script>
    for(i=1;i<=9;i++){
      for(j=1;j<=i;j++){
        document.write(`<span>${j}×${i}=${j*i}</span>`)
      }
      document.write(`<br>`)
    }


  </script>


</body>

</html>

undifined加上任何数都是NAN

5.数组

5.1新增

数组.push() 方法将一个或多个元素添加到数组末尾,并返回该数组新长度

arr.unshift(新增内容) 在数组开头添加 ,返回数组新长度

5.2删除

arr.pop()删除最后一个元素,并返回该元素的值

arr.splice(start,deleteCount) 起始位置和删除几个元素  常用

arr.shift()不带参数,删除开头一个元素,返回是删除元素

案例 渲染柱形图

<head>
  <meta charset="utf-8">
  <title>练习</title>
  <style>
    * {
      padding: 0;
      margin: 0;
    }

    .box {
      height: 300px;
      width: 700px;
      display: flex;
      border-left: 1px solid pink;
      border-bottom: 1px solid pink;
      margin: 50px auto;
      align-items: flex-end;
      justify-content: space-around;
    }

    /*只会选取那些直接嵌套在.box元素内部的<div>元素,而不会选择那些嵌套在更深层级的<div>元素*/
    .box>div {
      display: flex;
      width: 50px;
      background-color: pink;
      flex-direction: column;
      /* 主轴是垂直方向 */
      justify-content: space-between;
      /* 两端的 flex 项紧贴容器的边缘,而中间的 flex 项之间有相等的空间 */

    }

    .box div span {
      margin-top: -20px;
      text-align: center;
    }

    .box div h4 {
      margin-bottom: -30px;
      width: 70px;
      margin-left: -5px;

    }
  </style>
</head>

<body>


  <script>
    let arr = []
    for (let i = 0; i < 4; i++) {
      arr.push(prompt(`请输入第${i + 1}季度数额`))
    }
    document.write(`<div class="box">`)
    for (i = 0; i < arr.length; i++) {
      document.write(`
      <div style="height: ${arr[i]}px;">
      <span> ${arr[i]} </span>
      <h4>第${i + 1}季度</h4>
      </div>
      `)
    }

    document.write(`</div>`)


  </script>


</body>

</html>

案例 冒泡排序

<body>


  <script>
    /* 冒泡排序 */
    let arr = [2, 4, 1, 3, 5]
    for (let i = 0; i < arr.length - 1; i++) {
      for (let j = 0; j < arr.length - i - 1; j++) {
        if (arr[j] > arr[j + 1]) {
          let temp = arr[j]
          arr[j] = arr[j + 1]
          arr[j + 1] = temp
        }
      }
    }
    document.write(arr)


  </script>


</body>

开发中直接 arr.sort()进行排序  升序

 arr.sort(function (a, b) {

      return a - b

    }) 升序排序

降序b-a

6.立即执行函数

防止变量污染,很常用

(function(){

      console.log(11)

    })();需要加分号了

7.逻辑中断

&&一假则假,都是真,返回最后一个真值

|| 一真则真 ,左边真,右边不执行

‘’-2=-2 空字符串当0看

undifined+3=NAN   undifined作任何操作都是NAN

8.对象 

遍历对象用 for(let k in obj){} ,获得对象属性是k(字符串形式),获得对象的值是obj【k】

案例:渲染表格

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width,initial-scale=1.0">
  <title>练习</title>
  <style>
    table {
      text-align: center;
      width: 600px;
    }

    table,
    th,
    td {
      border: 1px solid #ccc;
      border-collapse: collapse;
    }

    caption {
      font-size: 20px;
      font-weight: 700;
      margin-bottom: 10px;
    }

    tr {
      height: 20px;
      cursor: pointer;
    }

    table tr:nth-child(1) {
      background-color: #ddd;
    }

    table tr:not(:first-child):hover {
      background-color: #eee;
    }
  </style>

</head>

<body>
  <h2>学生信息</h2>
  <p>将数据渲染到页面中</p>
  <table>
    <caption>学生列表</caption>
    <tr>
      <th>序号</th>
      <th>姓名</th>
      <th>年龄</th>
      <th>性别</th>
      <th>家乡</th>

    </tr>

    <script>
      let student = [
        { name: '小明', age: 18, gender: '男', hometown: '河北省' },
        { name: '小红', age: 16, gender: '女', hometown: '河南省' },
        { name: '小刚', age: 17, gender: '男', hometown: '山西省' },
        { name: '小丽', age: 15, gender: '女', hometown: '山东省' }

      ]
      for (let i = 0; i < student.length; i++) {
        document.write(`
         <tr>
          <td>${i+1}</td>
          <td>${student[i].name}</td>
          <td>${student[i].age}</td>
          <td>${student[i].gender}</td>
          <td>${student[i].hometown}</td>
         </tr>
        `)
      }
    </script>
  </table>

</body>

</html>

9.内置对象

js内部提供的对象,包含各种属性和方法

Math:  Math.ceil(1.2)向上取整 ,math.floor()向下取整,math.round()四舍五入

math.max(1,4,9)取最大值  ,math.random() 0-1随机数 包括0不包括1,math.pow(2,3)2的3次方

null 是空对象


    <script>
      let arr=['赵云','黄忠','关羽']
      let random=Math.floor(Math.random()*arr.length)
      document.write(arr[random])
      arr.splice(random,1)
      document.write(`<br>`)
      document.write(arr)
    </script>

案例 猜数字 

 <script>
    function getRandom(M, N) {
      return Math.floor(Math.random() * (N - M + 1) + M)
    }
    let ran = getRandom(1, 10)
    while (true) {
      let num = +prompt('输入一个数字')
      if (num > ran) {
        alert('猜大了')
      } else if (num < ran) {
        alert('猜小了')
      } else {
        alert('猜对了')
        break
      }
    }
  </script>

案例 随机颜色

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width,initial-scale=1.0">
  <title>练习</title>
  <style>
    div{
      height: 200px;
      width: 300px;
    }
  </style>


</head>

<body>
  <div></div>


  <script>
    function getRandomColor(flag=true){
      if(flag){
        let str='#'
        let arr=['0','1','2','3','4','5','6','7','8','9','a',
          'b','c','d','e','f'
        ]
        for(let i=0;i<6;i++){
          let data=Math.floor(Math.random()*arr.length)
          str+=arr[data]
        }
        return str

      }else{
        let r=Math.floor(Math.random()*256)
        let g=Math.floor(Math.random()*256)
        let b=Math.floor(Math.random()*256)
        return `rgb(${r},${g},${b})`

      }

    }
    const div=document.querySelector('div')
    div.style.backgroundColor=getRandomColor()
  </script>


</body>

</html>

案例 渲染学习案例

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width,initial-scale=1.0">
  <title>练习</title>
  <link rel="stylesheet" type="text/css" href="test.css">

</head>

<body>
  <div class="box w">
    <div class="box-hd">
      <h4>精品推荐</h4>
      <a href="#">查看更多</a>
    </div>
    <div class="box-bd">
      <ul class="clearfix">

        <script>
          let data = [
            {
              src: 'JavaScript基础笔记和作业/JavaScript基础第五天/06-素材/综合作业素材/images/course01.png',
              title: 'Think PHP 5.0 博客系统实战项目演练',
              num: 1125
            },
            {
              src: 'JavaScript基础笔记和作业/JavaScript基础第五天/06-素材/综合作业素材/images/course02.png',
              title: 'Android 网络动态图片加载实战',
              num: 357
            },
            {
              src: 'JavaScript基础笔记和作业/JavaScript基础第五天/06-素材/综合作业素材/images/course03.png',
              title: 'Angular2 大前端商城实战项目演练',
              num: 22250
            },
            {
              src: 'JavaScript基础笔记和作业/JavaScript基础第五天/06-素材/综合作业素材/images/course04.png',
              title: 'Android APP 实战项目演练',
              num: 389
            },
            {
              src: 'JavaScript基础笔记和作业/JavaScript基础第五天/06-素材/综合作业素材/images/course05.png',
              title: 'UGUI 源码深度分析案例',
              num: 124
            },
            {
              src: 'JavaScript基础笔记和作业/JavaScript基础第五天/06-素材/综合作业素材/images/course06.png',
              title: 'Kami2 首页界面切换效果实战演练',
              num: 432
            },
            {
              src: 'JavaScript基础笔记和作业/JavaScript基础第五天/06-素材/综合作业素材/images/course07.png',
              title: 'UNITY 从入门到精通实战案例',
              num: 888
            },
            {
              src: 'JavaScript基础笔记和作业/JavaScript基础第五天/06-素材/综合作业素材/images/course08.png',
              title: 'Cocos 深度学习你不会错过的实战',
              num: 590
            }

          ]
          for (let i = 0; i < data.length; i++) {
            document.write(`
            <li>
              <a href="#">
                <img src="${data[i].src}"" title="${data[i].title}">
                <h4>${data[i].title}</h4>
                <div class="info">
                  <span>高级</span> • <span>${data[i].num}</span>人在学习
                </div>
              </a>
            </li>
            `)
          }
        </script>
      </ul>
    </div>

  </div>






</body>

</html>
* {
  margin: 0;
  padding: 0;
}

body {
  background-color: #f3f5f7;
}

a {
  text-decoration: none;
}

li {
  list-style: none;
}

.w {
  width: 1200px;
  margin: auto;
}

.box {
  margin-top: 30px;

}

.box-hd {
  height: 40px;
}

.box-hd h4 {
  font-size: 20px;
  float: left;
  color: #494949;

}

.box-hd a {
  float: right;
  color: #a5a5a5;
  font-size: 12px;
  margin-top: 10px;
  margin-right: 30px;
}

.box-bd ul {
  width: 1225px;
}

.clearfix:before,
.clearfix:after {
  content: "";
  display: table;
}

.clearfix:after {
  clear: both;
}


.box-bd ul li {
  position: relative;
  float: left;
  width: 228px;
  height: 270px;
  margin-right: 15px;
  margin-bottom: 15px;
  background-color: #fff;
  transition: all .3s;
}

.box-bd ul li a {
  display: block;
}

.box-bd ul li:hover {
  top: -8px;
  box-shadow: 0 15px 30px 0 rgba(0, 0, 0, .1);
}

.box-bd ul li img {
  width: 100%;
}

.box-bd ul li h4 {
  margin: 20px 20px 20px 25px;
  font-size: 14px;
  font-weight: 400;
  color: #050505;

}

.box-bd .info {
  font-size: 12px;
  color: #999;
  margin: 0 20px 0 25px;
}

.box-bd .info span {
  color: #ff7c2d;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/939868.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SQL进阶技巧:如何计算商品需求与到货队列表进出计划?

目录 0 需求描述 1 数据准备 2 问题分析 3 小结 累计到货数量计算 出货数量计算 剩余数量计算 0 需求描述 假设现有多种商品的订单需求表 DEMO_REQUIREMENT&#xff0c;以及商品的到货队列表 DEMO_ARR_QUEUE&#xff0c;要求按照业务需要&#xff0c;设计一个报表&#…

“调用函数”多出一个None

Python中函数缺省返回空值&#xff0c;试图打印没有return的函数都将是None。 (笔记模板由python脚本于2024年12月20日 19:59:03创建&#xff0c;本篇笔记适合会自定义python函数的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Fre…

Flask内存马学习

文章目录 参考文章环境搭建before_request方法构造内存马after_request方法构造内存马errorhandler方式构造内存马add_url_rule方式构造内存马 参考文章 https://www.mewo.cc/archives/10/ https://www.cnblogs.com/gxngxngxn/p/18181936 前人栽树, 后人乘凉 大佬们太nb了, …

在Win11系统上安装Android Studio

诸神缄默不语-个人CSDN博文目录 下载地址&#xff1a;https://developer.android.google.cn/studio?hlzh-cn 官方安装教程&#xff1a;https://developer.android.google.cn/studio/install?hlzh-cn 点击Next&#xff0c;默认会同时安装Android Studio和Android虚拟机&#…

Python读取Excel批量写入到PPT生成词卡

一、问题的提出 有网友想把Excel表中的三列数据&#xff0c;分别是&#xff1a;单词、音标和释义分别写入到PPT当中&#xff0c;每一张PPT写一个单词的内容。这种批量操作是python的强项&#xff0c;尤其是在办公领域&#xff0c;它能较好地解放双手&#xff0c;读取Excel表后…

【CC2530开发基础篇】继电器模块使用

一、前言 1.1 开发背景 本实验通过使用CC2530单片机控制继电器的吸合与断开&#xff0c;深入了解单片机GPIO的配置与应用。继电器作为一种常见的电气控制元件&#xff0c;广泛用于自动化系统中&#xff0c;用于控制大功率负载的开关操作。在本实验中&#xff0c;将通过GPIO口…

ChatGPT生成接口测试用例(二)

5.1.4 自动生成测试数据 测试数据的生成通常是接口测试的一个烦琐任务。ChatGPT可以帮助测试团队生成测试数据&#xff0c;包括各种输入和它们的组合。测试人员可以描述他们需要的数据类型和范围&#xff0c;ChatGPT可以生成符合要求的测试数据&#xff0c;从而减轻测试人员的负…

空天地遥感数据识别与计算--数据分析如何助力农林牧渔、城市发展、地质灾害监测等行业革新

在科技飞速发展的时代&#xff0c;遥感数据的精准分析已经成为推动各行业智能决策的关键工具。从无人机监测农田到卫星数据支持气候研究&#xff0c;空天地遥感数据正以前所未有的方式为科研和商业带来深刻变革。然而&#xff0c;对于许多专业人士而言&#xff0c;如何高效地处…

使用ZLMediaKit 开源项目搭建RTSP 服务器

ZLMediaKit 是啥&#xff1f; ZLMediaKit是国人开发的开源C流媒体服务器&#xff0c;同SRS一样是主流的流媒体服务器。 ZLToolKit是基于C11的高性能服务器框架&#xff0c;和ZLMediaKit是同一个作者&#xff0c;ZLMediaKit正是使用该框架开发的。 官网 ZLMediaKit开源地址&…

Pytorch | 利用BIM针对CIFAR10上的ResNet分类器进行对抗攻击

Pytorch | 利用BIM针对CIFAR10上的ResNet分类器进行对抗攻击 CIFAR数据集BIM介绍基本原理算法流程特点应用场景 BIM代码实现BIM算法实现攻击效果 代码汇总bim.pytrain.pyadvtest.py 之前已经针对CIFAR10训练了多种分类器&#xff1a; Pytorch | 从零构建AlexNet对CIFAR10进行分…

同步异步日志系统:前置知识

一、日志项目的介绍 1.1 为什么要有日志系统 1、⽣产环境的产品为了保证其稳定性及安全性是不允许开发⼈员附加调试器去排查问题&#xff0c;可以借助日志系统来打印⼀些⽇志帮助开发⼈员解决问题 为什么不直接printf打印在屏幕上呢&#xff1f;&#xff1f;因为现实中没有…

搭建私有链

文章目录 1. 准备工作2. 创建创世区块配置文件2.1 创建数据目录2.2 创建创世区块配置文件1. “config”部分2. “alloc”部分3. “coinbase”4. “difficulty”5. “extraData”6. “gasLimit”7. “nonce”8. “mixhash”9. “parentHash”10. “timestamp” 3. 初始化&#x…

国标GB28181平台EasyGBS在安防视频监控中的信号传输(电源/视频/音频)特性及差异

在现代安防视频监控系统中&#xff0c;国标GB28181协议作为公共安全视频监控联网系统的国家标准&#xff0c;该协议不仅规范了视频监控系统的信息传输、交换和控制技术要求&#xff0c;还为不同厂商设备之间的互联互通提供了统一的框架。EasyGBS平台基于GB28181协议&#xff0c…

详细解读TISAX认证的意义

详细解读TISAX认证的意义&#xff0c;犹如揭开信息安全领域的一颗璀璨明珠&#xff0c;它不仅代表了企业在信息安全管理方面的卓越成就&#xff0c;更是通往全球汽车供应链信任桥梁的关键一环。TISAX&#xff0c;即“Trusted Information Security Assessment Exchange”&#…

Pytorch | 从零构建AlexNet对CIFAR10进行分类

Pytorch | 从零构建AlexNet对CIFAR10进行分类 CIFAR10数据集AlexNet网络结构技术创新点性能表现影响和意义 AlexNet结构代码详解结构代码代码详解特征提取层 self.features分类部分self.classifier前向传播forward 训练过程和测试结果代码汇总alexnet.pytrain.pytest.py CIFAR1…

初学stm32 --- 系统时钟配置

众所周知&#xff0c;时钟系统是 CPU 的脉搏&#xff0c;就像人的心跳一样。所以时钟系统的重要性就不言而喻了。 STM32 的时钟系统比较复杂&#xff0c;不像简单的 51 单片机一个系统时钟就可以解决一切。于是有人要问&#xff0c;采用一个系统时钟不是很简单吗&#xff1f;为…

进程间通信方式---System V IPC信号量

进程间通信方式—System V IPC信号量 文章目录 进程间通信方式---System V IPC信号量信号量1.信号量原语2.semget 系统调用参数返回值 3.semop 系统调用参数返回值 4.semctl 系统调用5.特殊键值 IPC_PRIVATE6.信号量实现进程间通信1. 数据结构定义2. 信号量操作相关部分3. 生产…

深入理解Kafka:核心设计与实践原理读书笔记

目录 初识Kafka基本概念安装与配置ZooKeeper安装与配置Kafka的安装与配置 生产与消费服务端参数配置 生产者客户端开发消息对象 ProducerRecord必要的参数配置发送消息序列化分区器生产者拦截器 原理分析整体架构元数据的更新 重要的生产者参数acksmax.request.sizeretries和re…

electron 顶部的元素点不中,点击事件不生效

electron 顶部的元素点不中&#xff0c;点击事件不生效

Excel设置生日自动智能提醒,公式可直接套用!

大家好&#xff0c;我是小鱼。 今天跟大家分享一个WPS表格中根据出生日期&#xff0c;设置生日提醒&#xff0c;并且根据距离生日天数自动标记数据颜色。简单又实用&#xff0c;一个公式轻松搞定&#xff01; 接下来我们先学习一下需要使用到的函数&#xff0c;然后再根据实例让…