原生js
带刺玫瑰DCMG
这个作者很懒,什么都没留下…
展开
-
JS中==的判断原理
每条规则都可能是由其他规则推算出来的,每一条规则并非都是独立的,JS规定null和undfined永远相等,因为undfined是null衍生出来的。0 == null,undefined (匹配到第5条规则)0 == 字符串 (匹配到第2条规则)0 == 对象 (匹配到第3条规则)0 == 数字类型 (直接比较了)原创 2023-05-08 17:52:47 · 151 阅读 · 0 评论 -
使用原生HTML、CSS、JS实现简易聊天框
使用原生HTML实现简易聊天框。1、第一种方式<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title></title> <style> *{ margin: 0; padding: 0; } body{原创 2022-05-23 14:33:12 · 2857 阅读 · 0 评论 -
JS凯撒密码
使用js实现凯撒密码原创 2022-05-15 19:56:25 · 741 阅读 · 0 评论 -
JS时间的各种操作记录
使用JS实现倒计时和时间计算。原创 2022-05-13 11:42:24 · 212 阅读 · 0 评论 -
CSS旋转木马,照片墙
使用CSS来实现3D旋转照片墙的效果<!DOCTYPE html><html><head> <meta charset="utf-8"> <title></title></head><style> body {background-color: #000;} .box { width: 300px; height: 400px; margin: 0px auto; margin-原创 2021-12-07 15:07:26 · 165 阅读 · 0 评论 -
JS创建虚拟DOM节点
创建虚拟DOM之前先看一下什么是DOM,DOM生成的节点是由浏览器直接管理的,开发中免不了操作DOM进行增删改查,当每次删除或新增节点的时候都需要重新渲染新的DOM,所以性能也就没那么好了。虚拟DOM节点就可以解决这一性能问题,解决的原理是不直接渲染DOM元素,而是用一个变量来存储这些节点然后渲染进去,如果需要对节点进行操作只需要操作这个变量即可,这样不会重新渲染节点,因为你操作的只是一个变量。创建虚拟DOM的例子:<!DOCTYPE html><html lang="en">原创 2021-12-07 11:51:10 · 1655 阅读 · 0 评论 -
JS实现双向绑定的几种方式
记录JS三种双向绑定1、第一种是通过Proxy数据代理来达到双向绑定的,这是Vue3更新的双向绑定方式。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Proxy双向绑定</title></head><body> <div id="app"> <h3 id=原创 2021-12-07 09:48:53 · 4301 阅读 · 1 评论 -
JavaScript获取当前时间(结果以2022年为例)
使用JavaScript获取当前时间,以2022年举例let date=new Date();date.getYear();//获取当前年份(2位),结果:122date.getFullYear();//获取完整的年份(4位),结果:2022date.getMonth();//获取当前月份(0-11,0代表1月),因为从0开始,所以结果要+1才是正确月份,结果:11date.getDate();//获取当前日(1-31),结果:6date.getDay();//获取当前星期X(0-6,原创 2021-12-06 17:34:35 · 2138 阅读 · 0 评论 -
JS数组的常用操作
数组中的常用操作1、push():作用:向数组末尾增加一个到多个元素。let a=['a','b','c'];a.push("w");console.log(a) //输出['a','b','c','w']2、unshift():作用:向数组开头增加一个到多个元素。let a=['a','b','c'];a.unshift("w");console.log(a) //输出['w','a','b','c']3、pop():作用:删除并返回数组末尾的第一个元素。let a=['a','b原创 2021-11-23 16:45:27 · 657 阅读 · 0 评论 -
JS生成唯一标识ID
JS生成唯一标识生成原理,利用时间戳+随机字母生成,永远不会重复。function algorithm(){ let abc=['a','b','c','d','e','f','g','h','i','g','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']; let [max,min]=[Math.floor(Math.random()*(10-7+1)+1),Math.floor(Math.random()*(17-1原创 2021-11-23 15:42:41 · 7385 阅读 · 0 评论 -
js实现快速排序
快速排序快速排序实现代码:function quickSort(arr) {//创建公共方法 if (arr.length <= 1) return arr;//判断调用方法时传入的数组长度是否小于等于1 var left = [],right=[],middle=arr[0]//定义左右边的数组和基准数 for (let i = 1; i < arr.length; i++) {//循环比较,因为找的基准数是数组第一位数字,所以循环从下标为1的开始循环。 arr[i] >原创 2021-11-23 11:20:18 · 836 阅读 · 0 评论 -
查询树状图的值
查询树状图某个值前言:树状图的数据为层层嵌套的对象,如何在嵌套的对象中查询某个值是否存在呢?下面这段代码就可以实现function GetTree(list) { //定义公共方法,该方法接收一个要查询的数组对象。 let arr = []; //定义一个空数组,用来存储筛选出来的数据 function GetListItem(list) { //定义一个闭包,该闭包接收外层的数组对象 list.forEach(item => { //在闭包内遍历数组对象,(解释:在闭包内遍历的原因是因原创 2021-11-23 11:04:38 · 282 阅读 · 0 评论 -
es6中的变量声明
es6中的变量声明1、var:如果在方法中声明,则为局部变量;如果在全局中声明,则为全局变量。1、存在变量提升2、var声明的变量可以先赋值后声明2、let:和var的写法一样,作用也是声明变量。1、但是不存在预解析(没有提升)2、也不允许重复声明,在ES6中新增了块级作用域:只要是花括号,就是一个作用 域,它不是函数。3、let声明的时候可以不赋值4、let声明的变量有块作用域的概念,而var声明的变量没有块作用域的概念,在 块作用域外也可以使用。3、const:和let原创 2021-01-27 15:24:54 · 178 阅读 · 1 评论