web笔记再整理

前四天笔记在此连接:

web前端笔记+表单练习题+五彩导航栏练习题-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/simply_happy/article/details/136917265?spm=1001.2014.3001.5502

# 1.边框弧度​    div {​      width: 300px;​      height: 50px;​      background-color: aqua;​      /* border-radius: 20px; */​      /* 左上  右上+左下  右下 */​      /* border-radius: 10px 20px 30px 40px; */​      /* 胶囊形状:盒子高度的一半 */​      border-radius: 25px;​      border-top-right-radius: 70px;​    }## 2.盒子阴影div {​      width: 100px;​      height: 100px;​      background-color: pink;​      /* x轴的偏移量 y轴的偏移量必须写 */​      /* x轴的偏移量 y轴的偏移量 模糊的半径  扩散的半径 颜色  */​      box-shadow: 5px 2px 10px 10px black inset;​    }## 3.文字阴影p {​      text-shadow: 5px 5px 3px pink;​    }## 4.列表属性li {​      width: 200px;​      height: 200px;​      background-color: aqua;​      list-style: none;​      list-style-type: none;}## 5.resize​    textarea {​      width: 500px;​      height: 60px;​      resize: none;​    }**<textarea name="" id="" cols="30" rows="10"**>***rows 和* cols *属性,用于声明 <textarea> 的精确尺寸***## 6.浮动.box1 {​      width: 200px;​      height: 200px;​      background-color: aqua;​      float: left;​    }​    /* ​    顶部是对齐的​    脱离标准流 ​    */​    .out {​      width: 800px;​      height: 400px;​      background-color: brown;​    }​    .box2 {​      width: 300px;​      height: 300px;​      background-color: pink;​      float: right;​    }**float *CSS 属性指定一个元素应沿其容器的左侧或右侧放置,允许文本和内联元素环绕它。该元素从网页的正常流动(文档流)中移除,但是仍然保持部分的流动性(与绝对定位相反)。***## 7.浮动的问题**元素高度塌陷、文字环绕不正常等。以下是一些解决浮动问题的方法:**​    .father {​      width: 700px;​      /* 1.给父盒子高度 */​      /* height: 400px; */​      /* float: left; */​      background-color: aqua;​    }​    .left {​      width: 300px;​      height: 300px;​      background-color: blue;​      float: left;​    }​    /* p {​      /* 清除浮动的影响 */​    /* clear: both; */(**清除两边浮动**)​    /* } */​    /* p::before {​      display: block;​      content: "";​      clear: both;​    } */​    .father::after {​      content: "";​      display: block;​      clear: both;​    }## 8.flex布局\* {​      padding: 0;​      margin: 0;​    }​    ul {​      /* 此时ul就会变成一个弹性容器 li就是弹性盒子   。子项会默认在一行排列​      主轴:默认在水平方向​      测轴:默认在垂直方向​      子元素可以自动挤压和延伸​      ​      */​      display: flex;​      width: 600px;​      height: 300px;​      background-color: aqua;​      margin: 0 auto;​    }​    li {​      list-style: none;​      width: 100px;​      height: 200px;​      background-color: aquamarine;​    }## 9.主轴上的对齐方式\* {​      margin: 0;​      padding: 0;​    }​    ul {​      display: flex;​      width: 600px;​      height: 300px;​      background-color: aqua;​      margin: 0 auto;​      /*改变主轴对齐方式 */​      justify-content: flex-end;​      /* 两边贴边,其余平分 */​      justify-content: space-between;​      justify-content: space-around;​      justify-content: space-evenly;​      justify-content: center;​    }​    li {​      list-style: none;​      width: 100px;​      height: 200px;​      background-color: aquamarine;​    }## 10.侧轴的对齐方式\* {​      margin: 0;​      padding: 0;​    }​    ul {​      display: flex;​      width: 600px;​      height: 300px;​      background-color: aqua;​      margin: 0 auto;​      /* 侧轴 */​      align-items: center;​      align-items: end;​      align-items: start;​    }​    ul li:nth-child(3) {​      align-self: center;​    }​    li {​      list-style: none;​      width: 100px;​      height: 200px;​      background-color: aquamarine;​    }## 11.修改主轴方向\* {​      margin: 0;​      padding: 0;​    }​    ul {​      display: flex;​      width: 600px;​      height: 300px;​      background-color: aqua;​      margin: 0 auto;​      /* 主轴方向改为垂直方向,从上到下 */​      flex-direction: column;​      flex-direction: row-reverse;​      flex-direction: column-reverse;​    }​    li {​      list-style: none;​      width: 100px;​      height: 200px;​      background-color: aquamarine;​    }## 12.弹性伸缩比\* {​      margin: 0;​      padding: 0;​    }​    ul {​      display: flex;​      width: 700px;​      height: 400px;​      background-color: rgb(51, 59, 59);​    }​    li {​      list-style: none;​      height: 40px;​      background-color: aqua;​    }​    ul li:first-child {​      flex: 1;​      /* 整数:占用父级剩余尺寸的分数 */​    }​    ul li:nth-child(2) {​      flex: 1;​    }​    ul li:last-child {​      flex: 1;​    }## 13.换行​    \* {​      margin: 0;​      padding: 0;​    }​    ul {​      display: flex;​      width: 800px;​      height: 400px;​      background-color: aqua;​      /* flex-wrap: wrap; */​      justify-content: space-between;​      align-content: space-evenly;​    }​    li {​      list-style: none;​      width: 170px;​      height: 100px;​      background-color: pink;​    }## 14.grid​    .box {​      display: grid;​      width: 500px;​      height: 900px;​      grid-template-columns: 1fr 2fr 1fr;​      grid-template-rows: repeat(4, 100px);​      /* 单元格之间的间距 */​      grid-gap: 20px;​    }​    .box div {​      border: 1px solid pink;​    }​    .test {​      grid-column-start: 1;​      grid-column-end: 3;​      /* grid-row-start: 2;​      grid-row-end: 4; */​      grid-row: 2/5;​    }
## 1.透明度div{​      width: 300px;​      height: 200px;​      background-color: black;​      /**0-1  越靠近0越透明*/​      opacity: 0;​    }## 2.元素的显示与隐藏div{​      /*opacity: 0*在页面仍存在*/​      display: none;/*在页面中不在占有位置*/​      visibility: hidden;/*在页面中仍然占有位置*/​      visibility: visible;​      width: 300px;​      height: 300px;​      background-color: black;​    }## 3.光标的样式​    a{​      /* 工 */​      cursor: text;​      /* 手 */​      cursor: pointer;​      /* 十字 */​      cursor: move;​      /* 箭头 */​      cursor: default;​    }​    p{​      cursor: pointer;​    }## 4.轮廓的样式input{​      /* outline-width: 100px;​      outline-color: aqua;​      outline-style: solid; */​      outline:  none;​    }​    /* 标签获取焦点的状态 */​    input:focus{​      outline: 1px solid blue;​    }## 5.过渡​    div{​      width: 100px;​      height: 100px;​      background-color: aqua;​      /* transition: all 2s; */​      transition: width 2s,height 3s,background-color 4s;​    }​    div:hover{​      width: 1000px;​      height: 200px;​      background-color: blanchedalmond;​    }## 6.媒体查询​    div{​      width: 1000px;​      height: 1000px;​    }​    /* 500-800px    800-1200px  */​    @media screen  and(min-width: 500px) and (max-width:800px) ​    {​      div{​        background-color: aqua;​      }​    }​    @media screen  and(min-width: 800px) and (max-width:1200px) ​    {​      div{​        background-color: rgb(255, 0, 153);​      }​    }## 7.字体@font-face {​      font-family: myFont ;​      src: url();​    }​    p{​      font-family: myFont;​      font-size: 30px;​    }## 8.平移div{​      width: 300px;​      height: 200px;​    }​    .father{​      position: relative;​      border: 1px solid black;​    }​    .son{​      transition: all 2s;​      position: absolute;​      top: 0;​      left: 0;​      background-color: blanchedalmond;​      /* 百分比参照的是盒子自身的尺寸​      正数---x方向​      正数负数都可以 */​      transform: translateX(150%);​      transform: translateY(-100px);​      transform: translateZ();​      /* transform: translate(x轴的偏移量,y轴的偏移量); */​      transform: translate(200px 400px);​      transform: translateX(200px)translateY(400px);​    ​    }​    .father:hover .son{​      transform: translate(200px 400px);​    }## 9.旋转div{​      width: 300px;​      height: 200px;​    }​    .father{​      position: relative;​      border: 1px solid black;​    }​    .son{​      transition: all 2s;​      position: absolute;​      top: 0;​      left: 0;​      background-color: blanchedalmond;​      ​    ​    }​    .father:hover .son{​      /* 旋转的单位是deg(度) */​      transform: rotateZ(60deg);​      transform: rotate(70deg);​    }## 10.改变原点div{​      width: 300px;​      height: 200px;​    }​    .father{​      margin: 0 auto;​      position: relative;​      border: 1px solid black;​    }​    .son{​      transition: all 2s;​      position: absolute;​      top: 0;​      left: 0;​      background-color: blanchedalmond;​    }​    .father:hover .son{​      /* 旋转的单位是deg(度) */​      /* transform: rotateZ(60deg); */​      transform: rotate(70deg) rotateY(45deg);​      /* transform-origin: 水平方向原点的位置   垂直方向原点的位置; */​      /* 方向名词 像素 */​      transform-origin: top right;​      transform-origin: 100px 200px;​    }## 11.多重转换div{​      width: 300px;​      height: 200px;​    }​    .father{​      margin: 0 auto;​      position: relative;​      border: 1px solid black;​    }​    .son{​      transition: all 2s;​      position: absolute;​      top: 0;​      left: 0;​      background-color: blanchedalmond;​    }​    .father:hover .son{​      transform: translate(100px,200px) rotateY(45deg);## 12.缩放div{​      width: 300px;​      height: 200px;​    }​    .father{​      margin: 0 auto;​      position: relative;​      border: 1px solid black;​      overflow: hidden;​    }  ​    .son{​      transition: all 2s;​      position: absolute;​      top: 0;​      left: 0;​      background-color: blanchedalmond;​    }​    .father:hover .son{​      /* transform: scale(x轴的缩放  y轴的缩放); */​      transform: scale(1.5,2);​      transform: scale(-1);​      /* 大于1表示放大的倍数 ,小于1表示缩小的倍数 */​    }## 13.倾斜div{​      width: 300px;​      height: 200px;​    }​    .father{​      margin: 0 auto;​      position: relative;​      border: 1px solid black;​    }​    .son{​      transition: all 2s;​      position: absolute;​      top: 0;​      left: 0;​      background-color: blanchedalmond;​    }​    .father:hover .son{​      transform: skewX(45deg);​    }## 14.空间转换​    div{​      width: 300px;​      height: 200px;​    }​    .father{​      margin: 0 auto;​      position: relative;​      border: 1px solid black;​      /* 视距 */​      perspective: 1000px;​      transform: translate3d(100px 100px 200px);​      transform-style:preserve-3d ;​    }​    .son{​      transition: all 2s;​      position: absolute;​      top: 0;​      left: 0;​      background-color: blanchedalmond;​    }​    .father:hover .son{​      transform: translateZ(100px);​    }## 15.动画​    /* 定义动画 */​    @keyframes mymovie {​      form{​        width: 0;​        height: 0;​        background-color: rgb(249, 240, 255);​      }​      to{​        width: 1200px;​        height: 300px;​        background-color: aqua;​      }​    }​    @keyframes mymovie2{​      0%{         width: 1200px;​        height: 300px;​        background-color: aqua;​      }​      25%{​        width: 1200px;​        height: 300px;​        background-color: rgb(255, 0, 0);​      }​      50%{​        width: 1200px;​        height: 300px;​        background-color: rgb(0, 255, 98);​      }​      /* .... */​    }​    /* animmation 复合属性:动画名称 动画花费时间 */​    div{​      animation: mymovie 3s;​      animation-duration: 3s;​      /*动画延迟  */​      animation-delay: 3s;​      /* 执行完毕时的状态  */​      animation-fill-mode: forwards;​      /* 速度曲线 */​      animation-timing-function: steps(40);​      /* 重复次数 */​      animation-iteration-count: 3;​      /* animation-iteration-count: infinite;无限循环 */​      animation: mymovie 3s ease 2s 3 reverse forwards;​    }​    div:hover{​      /* 暂停动画 */​      animation-play-state: paused;​    }

JavaScript:是一门弱数据类型的编程语言,实现的是人机交互的效果干嘛:1.做网页特效2,做表单验证3,是数据交互4,服务器编程5,ECMAScript(变量,数据类型,分支,循环,对象)	WebApi:Dom操作文档,Bom操作文档JavaScript的书写位置:内部JS:写在HTML里边,用<**script**>包住 写在<body**>**结束标签的前面2,外部JS代码写在.js结尾的文件中,通过变量:计算机用来存储数据的容器,盒子注意:变量指的是容器变量的基本使用:声明变量	let变量名变量赋值	变量名 = 变量值重新赋值let声明的变量,不允许重复声明let声明多个变量let age1=21,age2=12var和let区别:1,var可以重复声明变量2,let声明的变量,不能在声明前使用3,var不存在快起作用域的概念后面声明变量使用let变量的命名规范:1,只能用有效字符(数字,字母,下划线,$)组成,并且不以数字开头2,不能使用关键字,保留字,3,js严格区分字母的大小写4,起名最好是具有意义的5,遵循小驼峰命名法数据类型:基本数据类型:numberstring:通过"" '`'包起来,都是字符串	``包起来的字符串可以进行换行字符串的拼接:+	模板字符串可以拼接字符串和变量bool: true\falseundefined:未定义类型:变量声明了,但是未赋值null引用数据类型:objectfunctionarray判断数据类型:type of 变量js是数据类型语言,他的变量类型,只有在赋值之后,才能确定.也就是说,变量赋予的变量值是什么数据类型,变量就是什么数据类型数据类型转换:隐式和显示隐式转换:+两边存在一边是字符串,则另外一边会被转换成字符串除了+,其他的算数运算符会将转换成数字类型显示转换转换为数字:Number()如果参数中出现字符,最终结果会是NAN,NAN本身也是属于number类型,不是一个数字not a numberparseInt()尽可能的将参数转化为整型parseFloat()尽可能的将参数转化为浮点转换成字符串:String()变量.toString()运算符:算术运算符:+ - * / %赋值运算符:= 	+= 	-= 	/= 	%=a+=3 =====>> a=a+3自增自减运算符i++:赋值运算符的优先级大于后++,先进行赋值运算++i:前++的优先级高于赋值运算符,先进行前加加,再进行赋值运算i--比较运算符:**> 	<	 >=	<=	 ==	===	!== **==:只会判断值是否相同===:会判断值和数据类型NAN不等于任何值,包括它自身逻辑运算符:&&	两真才真||	一真则真!	取反

js:**<script> src="路径" ****</script>**prompt()let 变量名=变量值数据类型:基本数据类型	变量数据类型string().tostrong()运算符:算数运算符:
赋值运算符:= += -=一元运算符 ++ -- !a = 12 b = a++c = ++b关系运算符:> >= < <= == ===(值,数据类型都会进行比较) != !==逻辑运算符1:&& || !位移运算符:基于二进制的运算0 1原码:十进制对应的二进制反码:除了符号位之外,其余取反补码:反码+1|:两个0才为0
### 1.位运算​    let a = 2​    let b = 3​    console.log(a|b)​    // 0​    // &   两个1才为1​    ​    console.log(a&b)​    console.log(a^b)### 2.表达式和语句​    // 表达式:是一组代码的集合​    let x = 7​    3+4​    x++​    // 语句:if  js的命令​    // alert()### 3.if-else语句// 顺序,选择,循环​    // 顺序:代码默认的自上到下,从左到右​    // 选择(分支):面对不同的条件,执行不同的代码​    // 条件只要最终返回的是布尔值就可以​    // if(条件){​    //   // 满足条件时执行的代码​    // }​    // else{}​    // 条件不满足时,执行的代码​    // let age = Number(prompt("请输入你的年纪:"))​    // if (age>18){​    //   console.log("成年了");​    // }​    // else{​    //   console.log("一边玩去");​    // }​    // else if(条件2){​    //   条件2满足时执行的代码​    // }### 4.三元运算符​    // 条件?   满足条件时执行的代码:不满足条件时执行的代码​    // let age = 21​    // age > 18 ? console.log("成年"):console.log("小孩")​    // let a=2,b=3​    // c=a>b ? a : b​    // console.log(c)​    let a = +prompt("输入一个数")​    a=a < 10  ? "0"+a : a​    console.log(a)### 5.switch语句// switch(数据){case 值1:代码  case 值2:代码  default:代码}​    let day = prompt("请输入今天星期几:")​    switch(day){​      case "1":​        alert("今天星期一")​        break​      case"2":​        alert("今天星期二")​        break​      case"3":​        alert("今天星期三")​        break​      case"4":​        alert("今天星期四")​        break​      case"5":​        alert("今天星期五")​        break​      case"6":​      case"7":​        alert("今天周末")​        break​      default:​        alert("error")​    }### 6.断点调试1.断点调试是指在程序的某一行设置一个断点,调试时,程序运行到这一行就会停住,然后你可以一步一步往下调试,调试过程中可以看各个变量当前的值,出错的话,调试到出错的代码行即显示错误,停下。进行分析从而找到这个Bug
2.断点调试是程序员必须掌握的技能。
3.断点调试也能帮助我们查看java底层源代码的执行过程,提高程序员的Java水平### 7.循环// 循环:某一段代码重复执行​    // while​    // *​    // while(循环条件){循环体  }​    // 变量的初始值​    // let i = 1​    // // 终止条件​    // while(i<=10){​    //   console.log(i)​    //   // 初始值变化​    //   document.write(i)​    //   i++​    // }​    let i=1,n=1,sum1=0,sum2=0​    while(i<=100){​      sum1=sum1+i​      i++​    }​    while(n<=100){​      if(n%2 === 0 ){​        sum2=sum2+n​      }​      ​      n++​    }​    console.log(sum1)​    console.log(sum2)### 8.break,continue​    let i = 1​    while(i<10){​      if(i===4){​        // break​        //终止掉距离自己最近的一层循环​        i++​        continue​        // 跳出本次循环​      }​      console.log(i)​      i++​    }

### 1.dowhile语句​    let i = 1​    do{​      console.log("hello world")​      i++​      // 不管条件是否成立都会执行一次​    }while(i<1)### 2.for循环​    // for循环:​    // for(声明临时变量;循环条件;变化值){循环体}​    for(let i=1;i<=100;i++){​      console.log(i)​    }### 3.循环嵌套​    for(let i=1;i<=7;i++){​      console.log(`今天是第${i}天`)​      for(let j=1;j<=7;j++){​        console.log(`送了${j}朵花`)​      }​    }### 4.数组​    // 数组:存储多条数据,数组中存放不同的数据类型​    // 数组的声明方式​    // 1.new​    let arr1 = new Array()​    console.log(arr1)​    // 2.字面量​    let arr2=[1,2,3,"zhangsan",true]​    console.log(arr2)​    // 3.数组的长度​    console.log(arr2.length)​    // 查看数组里边的元素  数组下标:从0开始​    console.log(arr2[3])​    console.log(arr2[7])​    // 遍历数组​    for(let i=0;i<arr2.length;i++){​      console.log(arr2[i])​    }​    // [2,3,4,5,6,714]求所有元素的和以及平均值​    let arr3=[2,3,4,5,6,714]​    let sum=0​    let ar=0​    for(let i=0;i<arr3.length;i++){​      sum+=arr3[i]​    }​    document.write(sum)​    document.write(`<br>`)​    document.write(sum/arr3.length)### 5.数组的操作​    let arr1=[1,2,3,4]​    // 查  数组名[下标]​    // 改​    arr1[0]="zhangsan"​    console.log(arr1)​    // 增​    // 数值名.push():一次把一个或多个进行追加数组的前面​    arr1.push("o((>ω< ))o")​    arr1.push("对对对","对对对")​    // unshift():一次把一个或多个进行追加到数组的后面​    arr1.unshift("(⊙o⊙)?")​    // 删除​    // pop()从数组中删除最后一个元素,把元素​    arr1.pop()​    // shift()从数组中删除第一个元素​    arr1.shift()​    // splice(start/删除多个元素)删除指定元素​    arr1.splice(2,3)​    arr1.splice(2,3,"wwwwwd","assssssss","true")### 6.函数​    // 函数:一段实现某一功能的代码的集合   本质:实现了代码的高度复用​    // 函数在js中的定义方式​    // function函数名([参数]){函数体}​    function sayhi(say){​      console.log(say)​    }​    // 函数调用 函数名()​    // sayhi()​    // sayhi()​    // 函数只能return出去一条数据​    sayhi("顶顶顶顶顶顶顶顶顶顶顶")​    function getsum(num1,num2){​      // console.log(num1+num2)​      return num1+num2,num1-num2​    }​    let a=getsum(1,2)​    console.log(a)​    // getsum(1,2)### 7.函数作为参数传参​    // function test1(){​    //   console.log("test1~~~~")​    // }​    // function test2(){​    //   test1()​    //   console.log("test2~~~~")​    // }​    function test2(fn){​      fn(1)​      console.log("test2~~~~")​    }​    //es6 箭头函数​    test2((x,y) => {​      console.log("test1")​    })​    function getmax(arr){​      let max =0​      for(let i in arr){​        if(arr[i]>max){​          ​        }​      }​    }### 8.值传递和引用传递​    function change(Array){​      // console.log(a)​      // console.log(b)​      // a+=10​      // b+=100​      // return a,b​      Array.push("zhansan")​    }​    x=2​    y=3​    // change(x,y)​    // console.log(x)​    // console.log(y)​    let arr1=[1,2,3,4]​    change(arr1)​    console.log(arr1)### 9.默认值参数​    function getarea(r,PI = 3.14){​      return r*r*PI​    }​    let a=getarea(3)​    console.log(a)### 10.可变参数​    function getsum(num1,num2){​      // return num1+num2​      console.log(arguments)​      let sum=0​      for(let i in arguments){​        sum +=arguments[i]​      }​      console.log(sum)​      return sum​    }​    let a = getsum(1,3,4)​    document.write(a)​    console.log(a)### 11.作用域​    // 作用域:名称在某一个范围内生效,这个范围为就是他的作用域​    // 全局作用域  局部作用域  块级作用域​    let a=1​    function test01(){​      console.log(a)​    } ​    test01()​    // console.log(b)​    for(let i=0;i<=0;i++){​      let zhangsan="zhangsan"​      console.log(i)​    }​    console.log(zhangsan)### 12.对象​    let name=[172,120,119]​    // 对象​    let zhangsan={​      unname: "张三",​      age:21,​      sing: () =>{​        console.log("你是会唱歌的")​      }​    }​    // 对象:属性和方法​    // 查看 对像名.属性​    ​    console.log(zhangsan,unname)​    zhangsan.sing()​    console.log(zhangsan["age"])
### 1.剩余参数//...  剩余参数,接到的是除了位置参数以外其余的参数,返回的是真数组​    function test(a,b,...arr){​      console.log(a+b)​      console.log(arr)​      console.log(arguments)​      ​    }​    test(1,2,3,4)## 2.垃圾回收机制// 内存中的生命周期​    // 1,内存分配​    // 2,内存使用​    // 3,内存回收,使用完毕之后​    // 内存泄漏,该回收的,​    // 栈​    // 堆​    // ​    // js:引用计数法   标记清除法​    // 引用计数法:如果一个对象已经没有指向它的的引用了​    // 内存消耗:循环引用的内存,​    // 1.记录引用次数​    // 2.++ --​    // 3.引用次数为0时,释放内存 ​    // let arr=[1,2,3,4]​    let obj={​      unname:"zhangsan"​    }​    let a = obj​    a = null​    // 标记清除 从根部查找内存中的对象,凡是能找到的,都是是我要进行使用的​    let obj2={​      a:obj3​    }​    let obj3={​      b:obj2​    }​    obj2=null### 3.闭包// 内层函数+外层函数的变量  。内层函数使用了外层函数的变量​    // function outer() {​    //   let i = 10​    //   function inner() {​    //     console.log(i)​    //   }​    //   return inner​    // }​    // let a = outer()​    // a()​    // a()​    // 闭包:外部访问函数内部的变量​    // let num = 0​    // function test1() {​    //   num++​    //   console.log(`这是函数调用的第${num}次`)​    // }​    // test1()​    // test1()​    // num = 300​    // test1()​    function outer() {​      let num = 0​      function inner() {​        num++​        console.log(`这是函数调用的第${num}次`)​      }​      return inner​    }​    let a = outer()​    a()​    a()​    a()​    num = 21​    a()### 4.mathconsole.log(Math.E)​    console.log(Math.PI)​    let a = 4.999​    let b = 3.11​    // 向下进行取整​    console.log(Math.floor(a))​    // 向上取整​    console.log(Math.ceil(b))​    console.log(Math.abs(-111))​    // 最大值最小值​    console.log(Math.max(1, 21, 32, 12, 21))​    console.log(Math.min(1, 21, 32, 12, 21))​    // 随机数  只能取[0,1)​    console.log(Math.floor(Math.random() * ((20 - 10) + 1)) + 10)​    // ​    // function get_random(n, m) {​    //   return Math.floor(Math.random() * ((m - n) + 1)) + n​    // }​    // console.log(get_random(100, 200))​    // 四舍五入​    console.log(Math.round(3.51))​    // 开平方根​    console.log(Math.sqrt(9))​    // 幂次方​    console.log(Math.pow(2, 3))### 5.date// 实例化时间对象​    let date = new Date("2024-05-01 00:00:00")​    console.log(date)​    // 年​    let year = date.getFullYear()​    console.log(year)​    // 月  0-11​    let m = date.getMonth() + 1​    console.log(m)​    // 日​    let day = date.getDate()​    console.log(day)​    // 时分秒​    let hh = date.getHours()​    let mm = date.getMinutes()​    let ss = date.getSeconds()​    console.log(hh)​    console.log(mm)​    console.log(ss)​    // 星期​    let w = date.getDay()​    console.log(w)​    // 获取毫秒数​    // let mins = date.getMilliseconds()​    // console.log(mins)​    // 时间戳  此刻距离19700101 00:00:00 的毫秒数​    let timechuo = date.getTime()​    console.log(timechuo)​    function get_time() {​      let date = new Date()​      let year = date.getFullYear()​      let m = date.getMonth() + 1​      let day = date.getDate()​      let hh = date.getHours()​      let mm = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes()​      let ss = date.getSeconds()​      let w = date.getDay()​      return `${year}-${m}-${day}  ${hh}:${mm}:${ss}  今天星期${w}`​    }​    let a = get_time()​    console.log(a)### 6.获取元素对象// 1、通过css选择器获取​    // document.querySelector("css选择器")​    let div1 = document.querySelector(".box1")​    console.dir(div1)​    // document.querySelectorAll("ul li")  拿到的是伪数组,直接考虑for循环​    let lis = document.querySelectorAll("ul li")​    console.log(lis)​    for (let i in lis) {​      console.log(lis[i])​    }​    // 其他​    console.log(document.getElementById("li4"))
### 1.元素内容// 1.获取元素对象​    const box1=document.querySelector("div")​    console.log(box1)​    // innerText()  不识别标签​    console.log(box1.innerText)​    box1.innerText="新内容"​    console.log(box1.innerText)​    // innerHTMl​    console.log(box1.innerHTML)​    box1.innerHTML=`<h1>xxxx</h1>`​    console.log(box1.innerHTML)​    // textContent  不识别标签​    box1.textContent=`<h1>5555</h1>`### 2.改属性const ipt = document.querySelector()​    //  对象.属性=值​    ipt.type="passwd"### 3.改style样式// 1. 获取元素​    const box =document.querySelector("div")​    // 更改style样式​    // 1.对象.style.样式=""​    box.style.width="100px"​    ​    // 碰见带-的复合属性,采用小驼峰的方式​    box.style.backgroundColor="brown"​    // className​    box.className="box_style"​    // classList   ​    // box.classList.add("box_style")追加新的类名到元素对象上​    box.classList.add("box_style")​    // box.classList.remove("box_style")移除元素对象的类名​    // 如果类名存在则移除,如果不存在则添加​    box.classList.toggle("box1")### 4.补充// 像是checked这样的属性名=属性值的属性,js在进行赋值时,通过true/false去控制属性值​    document.querySelector("input[value='nv']").checked="true"​    console.log(document.querySelector("input[value='nv']").checked)### 5.查找结点console.log(document.querySelector(".son").parentNode)​    console.log(document.querySelector(".father").childNodes)​    console.log(document.querySelector(".father").children)​    // 查找兄弟节点​    console.log(document.querySelector(".father").nextElementSibling)​    console.log(document.querySelector(".father").previousElementSibling)​    // console.log(document.querySelector(".father").nextSibling)### 6.事件监听// 事件:事件源  事件类型   处理函数​    // l0   on事件类型​    const button = document.querySelector("button")​    const box = document.querySelector("div")​    // 事件源.on事件类型=function(){}  ​    // 同一个事件源,后面注册的事件会对前面注册的事件进行覆盖​    // button.onclick = function () {​    //   box.style.display = "none"​    // }​    // button.onclick = null​    // button.onclick = function () {​    //   console.log("666")​    // }​    function text() {​      alert("666")​      box.style.display = "none"​    }​    // l1  事件监听   不会覆盖​    button.addEventListener("click", text, true)​    button.removeEventListener("click", text, true)​    // button.addEventListener("click", function () {​    //   // alert("666")​    //   console.log("444")​    // }, true)

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EditPlus来啦(免费使用!)

hello&#xff0c;我是小索奇 今天推荐一款编辑器&#xff0c;是索奇学习JavaSE时入手滴&#xff0c;非常好用哈&#xff0c;小索奇还是通过老杜-杜老师入手滴&#xff0c;相信很多人也是通过老杜认识嘞&#xff0c;来寻找破解版或者准备入手这个间接使用的编辑器~ EditPlus是…

数据结构-----Lambda表达式

文章目录 1 背景1.1 Lambda表达式的语法1.2 函数式接口 2 Lambda表达式的基本使用2.1 语法精简 3 变量捕获3.1 匿名内部类3.2 匿名内部类的变量捕获3.3 Lambda的变量捕获 4 Lambda在集合当中的使用4.1 Collection接口4.2 List接口4.3 Map接口 HashMap 的 forEach() 5 总结 1 背…

kafka快速入门+应用

Kafka, 构建TB级异步消息系统 1.快速入门 1.1 阻塞队列 在生产线程 和 消费线程 之间起到了 &#xff0c; 缓冲作用&#xff0c;即避免CPU 资源被浪费掉 BlockingQueue 解决 线程通信 的问题阻塞方法 put 、 take生产者、消费者 模式 生产者&#xff1a;产生数据的线程…

【VSCode+Keil5+STM32CubeMX】开发环境配置

一、软件下载 二、软件安装 三、配置环境 四、验证开发环境 五、Keil与VS Code的同步 从0到1搭建VS Code Keil5 STM32CubeMX开发环境 优点 支持标准库HAL库LL库代码编辑更“现代化”&#xff1a;代码提示、函数跳转、更高自由度的定制主题等优点多端同步&#xff0c;VS Code和…

【云计算】云网络产品体系概述

云网络产品体系概述 在介绍云网络产品体系前&#xff0c;先介绍几个与云计算相关的基础概念。 阿里云在基础设施层面分为 地域 和 可用区 两层&#xff0c;关系如下图所示。在一个地域内有多个可用区&#xff0c;每个地域完全独立&#xff0c;每个可用区完全隔离&#xff0c;同…

蓝桥杯 每日2题 day5

碎碎念&#xff1a;哦哈呦&#xff0c;到第二天也是哦哈哟&#xff0c;&#xff0c;学前缀和差分学了半天&#xff01;day6堂堂连载&#xff01; 0.单词分析 14.单词分析 - 蓝桥云课 (lanqiao.cn) 关于这题就差在input前加一个sorted&#xff0c;记录一下下。接下来就是用字…

[dvwa] file upload

file upload 0x01 low 直接上传.php 内容写<? eval($_POST[jj]);?> 用antsword连 路径跳两层 0x02 medium 添加了两种验证&#xff0c;格式为图片&#xff0c;大小限制小于1000 上传 POST /learndvwa/vulnerabilities/upload/ HTTP/1.1 Host: dvt.dv Content-Le…

苹果电脑(Mac)怎么清理 itunes 备份?

苹果电脑用户广泛利用 iTunes 应用程序对 iPhone 或 iPad进行定期备份&#xff0c;以确保珍贵的数据安全无虞。然而&#xff0c;随着备份历史的增长&#xff0c;它们会在磁盘上积累大量空间&#xff0c;尤其当您频繁为多台设备备份时&#xff0c;存储资源可能会迅速消耗殆尽。为…

《Sky光遇》无视steam锁区的两种下载入库游玩教程(图文一览)

玩家在光遇游戏中需要找到每一关的子民&#xff0c;然后穿过艰难险阻&#xff0c;最终在石碑前接受祝福&#xff0c;就是通过这一关了。玩家只有通关后会来到一个祭坛&#xff0c;从这个祭坛周围的门前往下一关或是回到遇境&#xff0c;通关就相当于是解锁地图场景&#xff0c;…

JavaEE 初阶篇-深入了解 CAS 机制与12种锁的特征(如乐观锁和悲观锁、轻量级锁与重量级锁、自旋锁与挂起等待锁、可重入锁与不可重入锁等等)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 乐观锁与悲观锁概述 1.1 悲观锁&#xff08;Pessimistic Locking&#xff09; 1.2 乐观锁&#xff08;Optimistic Locking&#xff09; 1.3 区别与适用场景 2.0 轻…

IPSec简介

起源 随着Internet的发展&#xff0c;越来越多的企业直接通过Internet进行互联&#xff0c;但由于IP协议未考虑安全性&#xff0c;而且Internet上有大量的不可靠用户和网络设备&#xff0c;所以用户业务数据要穿越这些未知网络&#xff0c;根本无法保证数据的安全性&#xff0…

Docker 安装 Linux 系统可视化监控 Netdata

docker 安装 netdata 前提准备Docker 两种方式部署 Netdata1、使用 docker run 命令运行 netdata 服务2、使用 docker compose 运行 netdata 服务 Netdata 服务可视化界面Netdata 汉化处理 前提准备 说明&#xff1a;此处使用 windows11 安装的 docker desktop & wsl2/apli…

10-热点文章-定时计算

xxl-Job分布式任务调度 1 今日内容 1.1 需求分析 目前实现的思路&#xff1a;从数据库直接按照发布时间倒序查询 问题1&#xff1a; 如何访问量较大&#xff0c;直接查询数据库&#xff0c;压力较大 问题2&#xff1a; 新发布的文章会展示在前面&#xff0c;并不是热点文章 …

halcon 两图叠加 显示

halcon 两图叠加 显示 代码 read_image (Image, E:/test/CameraWeldHead/二号机焊头图片.bmp) read_image (Image1, E:/test/CameraWeldHead/右1.bmp) mirror_image (Image1, ImageMirror, column)crop_part (Image, ImagePart1, 0, 0, 4096, 4096) crop_part (ImageMirror, …

【面试题】细说mysql中的各种锁

前言 作为一名IT从业人员&#xff0c;无论你是开发&#xff0c;测试还是运维&#xff0c;在面试的过程中&#xff0c;我们经常会被数据库&#xff0c;数据库中最经常被问到就是MySql。当面试官问MySql的时候经常会问道一个问题&#xff0c;”MySQL中有哪些锁&#xff1f;“当我…

LeetCode - 1702. 修改后的最大二进制字符串

文章目录 解析AC CODE 题目链接&#xff1a;LeetCode - 1702. 修改后的最大二进制字符串 解析 详细题解&#xff1a;贪心&#xff0c;简洁写法&#xff08;Python/Java/C/Go/JS/Rust&#xff09; 思路很牛b。 简单来说我们需要想办法将0配对&#xff0c;将其变为10&#xff0…

深度学习【向量化(array)】

为什么要向量化 在深度学习安全领域、深度学习练习中&#xff0c;你经常发现在训练大量数据时&#xff0c;深度学习算法表现才更加优越&#xff0c;所以你的代码运行的非常快至关重要&#xff0c;否则&#xff0c;你将要等待非常长的时间去得到结果。所以在深度学习领域向量化…

C/S医学检验LIS实验室信息管理系统源码 医院LIS源码

LIS系统即实验室信息管理系统。LIS系统能实现临床检验信息化&#xff0c;检验科信息管理自动化。其主要功能是将检验科的实验仪器传出的检验数据经数据分析后&#xff0c;自动生成打印报告&#xff0c;通过网络存储在数据库中&#xff0c;使医生能够通过医生工作站方便、及时地…

如何卸载干净 IDEA(图文讲解)

更新时间 2022-12-20 11:一则或许对你有用的小广告 星球 内第一个项目&#xff1a;全栈前后端分离博客项目&#xff0c;演示地址&#xff1a;Weblog 前后端分离博客, 1.0 版本已经更新完毕&#xff0c;正在更新 2.0 版本。采用技术栈 Spring Boot Mybatis Plus Vue 3.x Vit…

Android开发基础:对话框,Toast,Notification的使用 选项菜单,上下文菜单,弹出式菜单的使用

目录 一&#xff0c;Android提示消息 1.提示消息的形式 2.对话框 &#xff08;1&#xff09;默认对话框的创建步骤 &#xff08;2&#xff09; 自定义对话框的创建步骤 3.Toast 4.Notification 二&#xff0c;菜单 1.选项菜单 OptionsMenu 2.上下文菜单 ContextMenu …