From 4b772023ea5a4abc1d0252a9078fcf6183b1bfb9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=A2=85=E5=BF=A0=E9=92=A6?=
<11785125+mei-zhongqin@user.noreply.gitee.com>
Date: Sun, 17 Dec 2023 12:26:52 +0000
Subject: [PATCH 1/3] =?UTF-8?q?52=20=E7=8E=8B=E5=8F=91=E6=A7=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: 梅忠钦 <11785125+mei-zhongqin@user.noreply.gitee.com>
---
.../2023-12-17.md" | 783 ++++++++++++++++++
1 file changed, 783 insertions(+)
create mode 100644 "56\346\242\205\345\277\240\351\222\246/2023-12-17.md"
diff --git "a/56\346\242\205\345\277\240\351\222\246/2023-12-17.md" "b/56\346\242\205\345\277\240\351\222\246/2023-12-17.md"
new file mode 100644
index 0000000..c3947de
--- /dev/null
+++ "b/56\346\242\205\345\277\240\351\222\246/2023-12-17.md"
@@ -0,0 +1,783 @@
+```js
+### 变量
+
+//声明变量
+let 变量名
+//变量赋值
+变量名 = 值
+let 变量名 = 值
+let不可多次声明同一个变量
+//声明多个变量
+let 变量名 = 值,变量2 = 值2...
+
+# 变量命名规则与规范
+
+规则:
+1.不能用关键字
+2.只能有字母,数字,下划线_,$ 组成,且数字不能作为开头
+3.字母严格区分大小写
+规范:
+1.见名知意
+2.小驼峰命名法
+
+# let与var的区别
+
+1.var可以先使用,再声明
+2.var可以重复声明一个变量
+
+### 不使用第三方变量完成交换
+
+n1 = n1 + n2; 300=100+200
+n2 = n1 - n2; 100=300-200
+n2 = n1 - n2; 200=300-100
+
+# 数据类型
+
+Number 数字类型
+JavaScript中的正数,负数,小数等统一称为数字类型
+let num = 10;
+let num2 = 10.12;
+infinity 无穷大,由 n/0 得出
+NaN 不是数字代表一个计算错误,例如"小明"-2,任何对NaN操作的数都得NaN
+Number.MAX_VALUE 范围的最大值
+Number.MIN_VALUE 范围的最小值
+isNaN(数
+String 字符串类型
+通过单引号,双引号或反引号包围的数据都叫字符串,单引号双引号无区别
+let uname = '闪电'
+let ename = "秀六根"
+无论引号还是双引号都必须成双成对
+单引号/双引号可以互相嵌套,但是不能自己嵌套自己(外双内单,外单内双)
+必要时使用转义符\,输出单引号或双引号
+转义符:\'',\,""\t 制表, \n 换行
+字符串拼接的+号,从左到右,+号左右两边只要有字符串就一定是拼接效果
+字符串拼接,除了用+号,还可以用反引号将所有字符串包围起来,然后用 ${} 来表示变量
+例: document.writr(`大家好我叫${name},今年${age}岁了`)
+boolean 布尔型
+两个固定的值,true和false
+undefined 未定义类型
+只有一个值,undefined
+只声明,不赋值的情况下,变量默认为undefined
+null 空类型
+只有一个值,仅仅是一个代表“无”,“空”或“值未知”的特殊值
+与undefined的区别:undifined表示没有值,而null表示赋值了,但内容是空
+使用场景:将来有个变量存放对象,但是对象还没创建好,可以先给个null
+object 引用类型或者复杂类型
+//js是弱数据类型,未赋值之前不知道是那种数据类型
+
+# 查看类型
+
+typeof 运算符可以返回被检测的数据类型,支持两种语法
+typeof x
+typeof(x)
+
+### 数据类型的转换
+
+隐式转换:
+某些运算符被执行时,系统内部自动将数据类型进行转换,这种转换称为隐式转换
++号两边只要有一个字符串,都会把另外一个转成字符串
+除了+号以外的算数运算符,比如-,*,/等都会把数据转成数字类型
+显式转换:
+类型(数据)
+Number(数据) //转成数字类型,如果字符串内容有非数字,转换失败时结果为NaN,即不是个数字
+parseInt(数据) //只保留整数
+parseFlost(数据) //可以保留小数
+补充
+--
+
+//documen中的输出语句,换行用
因为document执行区域为HTML,而在console中用换行符换行
+//``反引号,也称模板字符串,可以让字符换行,换行可以直接被保留,最重要的是反引号支持解析变量,用${变量}表示
+
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+### 常量
+
+const 常量名 = 值
+//不可二次赋值,所以在创建的时候不允许赋值与声明分开
+
+### 运算符
+
+'/'号中js会保留小数,而小数作为浮点数不精准
+3/0 Java会报错,而js不会,因为在js中0做除数是无穷大,Infinity
+
+### 赋值运算符
+
++=,-+,*=,/=,%=
+a +=b --> a = a+b
+
+### 自增(一元运算符)
+
+i++,++i,i--,--i
+先加和后加区别:
+++i:先自增在参与运算
+i++:先参与运算在自增
+两者单独使用没区别,i++用的多
+例:
+(i++ + ++i + i)=7
+
+### 比较运算符
+
+,< ,> = ,<= ,== ,=== ,!==
+
+== 为两边值是否相等
+=== 为两边的值与数据类型是否相等
+!== 为两边的值与类型都不等
+比较运算符会隐式转换为数字类型
+undefined==null,true
+undefined===null,false
+NaN 不等于任何值,包括他自己
+
+### 逻辑运算符
+
+&& 逻辑与,并且,两边都true才真
+|| 逻辑或,或者,两边都false才假
+! 逻辑非,取反
+优先级:!>&&>||
+
+### 运算符优先等级
+
+1.括号 ()
+2.一元运算符 ++ --
+3.算数运算符 先*/后+-
+4.关系运算符 > >= < <=
+5.相等运算符 == != === !==
+6.逻辑运算符 先&&后||
+7.赋值运算符 =
+8.逗号运算符 ,
+
+### 判断
+
+if 判断:
+if(条件1){
+ 满足条件执行的代码
+}else if(条件2){
+ 满足条件执行的代码
+}else{
+ 代码
+}
+三元运算符:
+条件?表达式1:表达式2
+Switch 判断:
+switch (数据){
+ case 值1:
+ 代码
+ break
+ case 值2:
+ 代码
+ break
+ ....
+ default:
+ 代码
+ break
+}
+// case 匹配的值必须值和类型全等于,所以用===
+
+### 断点调试
+
+F12,打开sources,选择代码文件
+
+### 循环
+
+循环三要素:变量起始值,终止条件(无终止条件会死循环),变量变化量(自增或自减)
+while 循环:不明确的次数时使用
+while(循环条件){
+ 循环体
+}
+for 循环:明确循环次数时使用
+for(let i = 0;i你是什么牛魔`
+
+
+
+### 操作元素常用属性
+
+常见属性如: href,title,src 等
+语法: 对象.属性 = 值
+例:
+const bon = document.querySelector('bon')
+bon.src = './imag001'
+bon.herf = 'www.baidu.com'
+
+
+
+### 操作元素样式属性
+
+1.通过style属性操作CSS
+2.操作类名(className)操作CSS
+3.通过classList操作CSS
+1.通过style属性操作CSS
+语法: 对象.style.样式属性 = '值'
+例如:
+const bon = document.querySelector('bon')
+bon.style.width = '300px'
+bon.style.backgroupColor = 'red'
+bon.style.border = '2px solid blue'
+// 修改样式通过style属性引出
+//如果有连接符-如:backgroup-color 需要转换成小驼峰命名法backgroupColor
+//赋值的时候记得CSS单位 如 px
+2.操作类名(className)操作CSS
+如果修改的样式比较多,直接用style修改比较繁琐,可以通过借助于CSS类名的形式,在CSS里写属性和值,再给某个标签赋予类名
+给元素赋予属性类名,相当于
+语法: 元素.className = '类名'
+例如:
+const bon = document.querySelector('bon')
+bon.className = 'box'
+//由于class是关键词,所以用className代替
+//className是使用新值换旧值(覆盖),所以如果需要添加一个类,需要保留之前的类名 bon.className = 'xxn box'
+3.通过classList操作CSS
+为了解决className容易覆盖以前的类名,我们可以通过classList方式追加和删除类名
+语法:
+元素.classList.add('类名') // 添加
+元素.classList.remove('类名') // 删除
+元素.classList.toggle('类名') // 切换,有就删掉,没有就添加
+例如:
+const bon = document.querySelector('bon')
+bon.classList.add('xxn') // 追加xxn类名
+bon.classList.remove('xxn') // 删除xxn类名
+bon.classList.toggle('xss') // 切换xss类名,有就删掉,没有就添加
+
+
+
+### 操作表单元素样式
+
+表单很多情况也需要修改熟悉,比如点击眼睛,可以看到密码,本质是把表单类型转换为文本框
+正常的有属性有取值的 跟其他的标签属性没有任何关系
+语法:
+获取: DOM对象.属性名
+设置: DOM对象.属性名 = 新值
+例如:
+
+const uname = document.querySelector('input')
+uname.value = '用户名'
+uname.type = 'password'
+//innerHTML得不到表单的值,所以才需要用表单.属性名
+表单属性中添加就有效果,移除就没有效果,一律使用布尔值表示,如果为true代表添加了该属性,如果为false代表移除该属性
+例如: disabled,checked,selected
+const ipt = document.querySelector('input')
+ipt.checked = true // 勾选状态
+const button = document.querySelector('button')
+button.disabled = true //禁用按钮
+
+
+
+### 自定义属性
+
+标准属性:标签天生自带的属性,比如class,id,title等,或可以直接用.语法操作的属性,比如 disabled,checked,selected
+自定义属性:
+在HTML5中推出来专门的data-自定义属性
+在DOM对象上一律以dataset对象方式获取
+例如:
+
+1
+const one = document.querySelector('div')
+console.log(one.dataset.id) // 获取结果为1
+
+### 定时器
+
+能够使用定时器函数重复执行代码
+1.开启定时器
+setInterval(函数,间隔时间)
+setInterval(函数名,间隔时间)
+例如:
+setInterval(function(){console.log('牛魔倒计时')},1000)
+setInterval(getName,1000)
+//间隔时间单位是毫秒
+//函数名不需要加括号
+//定时器返回的是一个id数字
+2.关闭定时器
+let 变量名 = setInterval(函数,间隔时间) //定时器返回的是一个id数字
+clearInterval(变量名)
+
+
+
+
+
+### CSS选择器
+
+1.用标签做选择器,叫做标签选择器 对标签
+例如:
+h1{
+ color:red
+}
+
+这是标签
+2.用类名做选择器 对多个元素
+例如:
+.a1{
+ color:red
+}
+这是div
+这是正文
+3.用id做选择器 对单
+例如:
+#b2{
+ color:red
+}
+这是div
+
+### const常量
+
+const声明的值不能更改,而且const声明变量的时候里面需要初始化
+但是对于引用数据类型,const声明的变量,里面存的不是值,而是地址
+const指向栈地址,栈再指向堆
+所以 const a = [2]; a.push(3) 不报错
+而 a = [4] 会报错
+同样
+const b = document.querySelector('div')
+b.innerText = '321'
+指向的是'div'的位置,修改div的内容不报错
+
+可以从上往下找下级标签,中间用空格间隔,例如:
+const b = document.querySelector('.a li')
+
+
+
+
+
+### 伪类
+
+取第1个值
+例 取第一个li li:first-child
+const li = document.querySelector('.a1 li:first-child')
+取第n个值
+例 取第5个li li:nth-child(5)
+const li2 = document.querySelector('.a1 li:nth-child(5)')
+取第最后一个值
+例 取最后一个li li:last-child
+const li3 = document.querySelector('.a1 li:last-child')
+
+
+
+### 生成随机数函数
+
+function getRandom(n,m){
+ return Math.floor(Math.random() * m-n+1)+n
+}
+
+### 补充
+
+//获取元素时,建议从上级往下多级确认//innerHTML,innerText只能获取双标签,如xx
,,获取不到单标签如
+
+
+
+
+
+### 操作表单元素样式
+
+//innerHTML,innerText只能获取双标签,如xx
,,获取不到单标签如
+表单很多情况也需要修改熟悉,比如点击眼睛,可以看到密码,本质是把表单类型转换为文本框
+正常的有属性有取值的 跟其他的标签属性没有任何关系
+语法:
+获取: DOM对象.属性名
+设置: DOM对象.属性名 = 新值
+例如:
+
+const uname = document.querySelector('input')
+uname.value = '用户名'
+uname.type = 'password'
+//innerHTML得不到表单的值,所以才需要用表单.属性名
+//button比较特殊,他是双标签,可以用innerHTML,innerText
+表单属性中添加就有效果,移除就没有效果,一律使用布尔值表示,如果为true代表添加了该属性,如果为false代表移除该属性
+例如: disabled 禁用表单元素,checked 单选框复选框打钩;下拉框选中,selected
+const ipt = document.querySelector('input')
+ipt.checked = true // 勾选状态
+const button = document.querySelector('button')
+button.disabled = true //禁用按钮
+
+
+
+### 自定义属性
+
+标准属性:标签天生自带的属性,比如class,id,title等,或可以直接用.语法操作的属性,比如 disabled,checked,selected
+自定义属性:
+在HTML5中推出来专门的data-自定义属性
+在DOM对象上一律以dataset对象方式获取
+例如:
+
+
+
+ 补充
+
+// 对象.style.display = 'none' 隐藏,用在删除广告等
+// 对象.style.display = 'block' 显示
+
+
+
+### 事件监听
+
+事件是在编程系统内发生的动作或发生的事情,比如在网页上单击一个按钮
+
+事件监听就是、让程序检测是否有事件产生,一旦有事件触发,就立即调用一个函数做出相应,也称为绑定事件或者注册事件,比如鼠标经过显示下拉菜单,比如点击可以播放轮播图等
+
+语法:
+元素对象.addEventListener('事件类型',要执行的函数)
+例:
+const div = document.querySelector('div')
+div.addEventListener('click',function(){
+ document.write('打印的内容')
+})
+//相当于给div添加一个事件,这个事件可以直接调用,要加括号:
+div.click()
+事件监听三要素:
+1.事件源:那个dom元素被事件触发了,要获取dom元素
+2.事件类型:用什么方式触发,比如单击click,双击dblclick等
+3.事件调用的函数:要做什么事
+//事件监听要加引号
+//函数是点击之后再去执行,每次点击都会执行一次
+
+
+
+### 事件监听的类型
+
+鼠标事件:
+click 鼠标点击
+dblclick 鼠标双击
+mouseenter 鼠标经过
+mouseleave 鼠标离开
+键盘事件:
+keydown 键盘按下触发
+keyup 键盘抬起触发
+
+
+
+### 事件监听版本
+
+DOML0
+事件源.on事件 = function(){}
+DOML2
+事件源.addEventListener('事件',function(){})
+区别:on的方式是一个属性,可以被修改覆盖,多次定义相当于是一个变量重新赋值s
+```
+
--
Gitee
From 2f0043efc187acc4a46892de78df643b6b71ed34 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=A2=85=E5=BF=A0=E9=92=A6?=
<11785125+mei-zhongqin@user.noreply.gitee.com>
Date: Sun, 17 Dec 2023 12:27:34 +0000
Subject: [PATCH 2/3] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=2056?=
=?UTF-8?q?=E6=A2=85=E5=BF=A0=E9=92=A6/2023-12-17.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../2023-12-17.md" | 783 ------------------
1 file changed, 783 deletions(-)
delete mode 100644 "56\346\242\205\345\277\240\351\222\246/2023-12-17.md"
diff --git "a/56\346\242\205\345\277\240\351\222\246/2023-12-17.md" "b/56\346\242\205\345\277\240\351\222\246/2023-12-17.md"
deleted file mode 100644
index c3947de..0000000
--- "a/56\346\242\205\345\277\240\351\222\246/2023-12-17.md"
+++ /dev/null
@@ -1,783 +0,0 @@
-```js
-### 变量
-
-//声明变量
-let 变量名
-//变量赋值
-变量名 = 值
-let 变量名 = 值
-let不可多次声明同一个变量
-//声明多个变量
-let 变量名 = 值,变量2 = 值2...
-
-# 变量命名规则与规范
-
-规则:
-1.不能用关键字
-2.只能有字母,数字,下划线_,$ 组成,且数字不能作为开头
-3.字母严格区分大小写
-规范:
-1.见名知意
-2.小驼峰命名法
-
-# let与var的区别
-
-1.var可以先使用,再声明
-2.var可以重复声明一个变量
-
-### 不使用第三方变量完成交换
-
-n1 = n1 + n2; 300=100+200
-n2 = n1 - n2; 100=300-200
-n2 = n1 - n2; 200=300-100
-
-# 数据类型
-
-Number 数字类型
-JavaScript中的正数,负数,小数等统一称为数字类型
-let num = 10;
-let num2 = 10.12;
-infinity 无穷大,由 n/0 得出
-NaN 不是数字代表一个计算错误,例如"小明"-2,任何对NaN操作的数都得NaN
-Number.MAX_VALUE 范围的最大值
-Number.MIN_VALUE 范围的最小值
-isNaN(数
-String 字符串类型
-通过单引号,双引号或反引号包围的数据都叫字符串,单引号双引号无区别
-let uname = '闪电'
-let ename = "秀六根"
-无论引号还是双引号都必须成双成对
-单引号/双引号可以互相嵌套,但是不能自己嵌套自己(外双内单,外单内双)
-必要时使用转义符\,输出单引号或双引号
-转义符:\'',\,""\t 制表, \n 换行
-字符串拼接的+号,从左到右,+号左右两边只要有字符串就一定是拼接效果
-字符串拼接,除了用+号,还可以用反引号将所有字符串包围起来,然后用 ${} 来表示变量
-例: document.writr(`大家好我叫${name},今年${age}岁了`)
-boolean 布尔型
-两个固定的值,true和false
-undefined 未定义类型
-只有一个值,undefined
-只声明,不赋值的情况下,变量默认为undefined
-null 空类型
-只有一个值,仅仅是一个代表“无”,“空”或“值未知”的特殊值
-与undefined的区别:undifined表示没有值,而null表示赋值了,但内容是空
-使用场景:将来有个变量存放对象,但是对象还没创建好,可以先给个null
-object 引用类型或者复杂类型
-//js是弱数据类型,未赋值之前不知道是那种数据类型
-
-# 查看类型
-
-typeof 运算符可以返回被检测的数据类型,支持两种语法
-typeof x
-typeof(x)
-
-### 数据类型的转换
-
-隐式转换:
-某些运算符被执行时,系统内部自动将数据类型进行转换,这种转换称为隐式转换
-+号两边只要有一个字符串,都会把另外一个转成字符串
-除了+号以外的算数运算符,比如-,*,/等都会把数据转成数字类型
-显式转换:
-类型(数据)
-Number(数据) //转成数字类型,如果字符串内容有非数字,转换失败时结果为NaN,即不是个数字
-parseInt(数据) //只保留整数
-parseFlost(数据) //可以保留小数
-补充
---
-
-//documen中的输出语句,换行用
因为document执行区域为HTML,而在console中用换行符换行
-//``反引号,也称模板字符串,可以让字符换行,换行可以直接被保留,最重要的是反引号支持解析变量,用${变量}表示
-
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
-### 常量
-
-const 常量名 = 值
-//不可二次赋值,所以在创建的时候不允许赋值与声明分开
-
-### 运算符
-
-'/'号中js会保留小数,而小数作为浮点数不精准
-3/0 Java会报错,而js不会,因为在js中0做除数是无穷大,Infinity
-
-### 赋值运算符
-
-+=,-+,*=,/=,%=
-a +=b --> a = a+b
-
-### 自增(一元运算符)
-
-i++,++i,i--,--i
-先加和后加区别:
-++i:先自增在参与运算
-i++:先参与运算在自增
-两者单独使用没区别,i++用的多
-例:
-(i++ + ++i + i)=7
-
-### 比较运算符
-
-,< ,> = ,<= ,== ,=== ,!==
-
-== 为两边值是否相等
-=== 为两边的值与数据类型是否相等
-!== 为两边的值与类型都不等
-比较运算符会隐式转换为数字类型
-undefined==null,true
-undefined===null,false
-NaN 不等于任何值,包括他自己
-
-### 逻辑运算符
-
-&& 逻辑与,并且,两边都true才真
-|| 逻辑或,或者,两边都false才假
-! 逻辑非,取反
-优先级:!>&&>||
-
-### 运算符优先等级
-
-1.括号 ()
-2.一元运算符 ++ --
-3.算数运算符 先*/后+-
-4.关系运算符 > >= < <=
-5.相等运算符 == != === !==
-6.逻辑运算符 先&&后||
-7.赋值运算符 =
-8.逗号运算符 ,
-
-### 判断
-
-if 判断:
-if(条件1){
- 满足条件执行的代码
-}else if(条件2){
- 满足条件执行的代码
-}else{
- 代码
-}
-三元运算符:
-条件?表达式1:表达式2
-Switch 判断:
-switch (数据){
- case 值1:
- 代码
- break
- case 值2:
- 代码
- break
- ....
- default:
- 代码
- break
-}
-// case 匹配的值必须值和类型全等于,所以用===
-
-### 断点调试
-
-F12,打开sources,选择代码文件
-
-### 循环
-
-循环三要素:变量起始值,终止条件(无终止条件会死循环),变量变化量(自增或自减)
-while 循环:不明确的次数时使用
-while(循环条件){
- 循环体
-}
-for 循环:明确循环次数时使用
-for(let i = 0;i你是什么牛魔`
-
-
-
-### 操作元素常用属性
-
-常见属性如: href,title,src 等
-语法: 对象.属性 = 值
-例:
-const bon = document.querySelector('bon')
-bon.src = './imag001'
-bon.herf = 'www.baidu.com'
-
-
-
-### 操作元素样式属性
-
-1.通过style属性操作CSS
-2.操作类名(className)操作CSS
-3.通过classList操作CSS
-1.通过style属性操作CSS
-语法: 对象.style.样式属性 = '值'
-例如:
-const bon = document.querySelector('bon')
-bon.style.width = '300px'
-bon.style.backgroupColor = 'red'
-bon.style.border = '2px solid blue'
-// 修改样式通过style属性引出
-//如果有连接符-如:backgroup-color 需要转换成小驼峰命名法backgroupColor
-//赋值的时候记得CSS单位 如 px
-2.操作类名(className)操作CSS
-如果修改的样式比较多,直接用style修改比较繁琐,可以通过借助于CSS类名的形式,在CSS里写属性和值,再给某个标签赋予类名
-给元素赋予属性类名,相当于
-语法: 元素.className = '类名'
-例如:
-const bon = document.querySelector('bon')
-bon.className = 'box'
-//由于class是关键词,所以用className代替
-//className是使用新值换旧值(覆盖),所以如果需要添加一个类,需要保留之前的类名 bon.className = 'xxn box'
-3.通过classList操作CSS
-为了解决className容易覆盖以前的类名,我们可以通过classList方式追加和删除类名
-语法:
-元素.classList.add('类名') // 添加
-元素.classList.remove('类名') // 删除
-元素.classList.toggle('类名') // 切换,有就删掉,没有就添加
-例如:
-const bon = document.querySelector('bon')
-bon.classList.add('xxn') // 追加xxn类名
-bon.classList.remove('xxn') // 删除xxn类名
-bon.classList.toggle('xss') // 切换xss类名,有就删掉,没有就添加
-
-
-
-### 操作表单元素样式
-
-表单很多情况也需要修改熟悉,比如点击眼睛,可以看到密码,本质是把表单类型转换为文本框
-正常的有属性有取值的 跟其他的标签属性没有任何关系
-语法:
-获取: DOM对象.属性名
-设置: DOM对象.属性名 = 新值
-例如:
-
-const uname = document.querySelector('input')
-uname.value = '用户名'
-uname.type = 'password'
-//innerHTML得不到表单的值,所以才需要用表单.属性名
-表单属性中添加就有效果,移除就没有效果,一律使用布尔值表示,如果为true代表添加了该属性,如果为false代表移除该属性
-例如: disabled,checked,selected
-const ipt = document.querySelector('input')
-ipt.checked = true // 勾选状态
-const button = document.querySelector('button')
-button.disabled = true //禁用按钮
-
-
-
-### 自定义属性
-
-标准属性:标签天生自带的属性,比如class,id,title等,或可以直接用.语法操作的属性,比如 disabled,checked,selected
-自定义属性:
-在HTML5中推出来专门的data-自定义属性
-在DOM对象上一律以dataset对象方式获取
-例如:
-
-1
-const one = document.querySelector('div')
-console.log(one.dataset.id) // 获取结果为1
-
-### 定时器
-
-能够使用定时器函数重复执行代码
-1.开启定时器
-setInterval(函数,间隔时间)
-setInterval(函数名,间隔时间)
-例如:
-setInterval(function(){console.log('牛魔倒计时')},1000)
-setInterval(getName,1000)
-//间隔时间单位是毫秒
-//函数名不需要加括号
-//定时器返回的是一个id数字
-2.关闭定时器
-let 变量名 = setInterval(函数,间隔时间) //定时器返回的是一个id数字
-clearInterval(变量名)
-
-
-
-
-
-### CSS选择器
-
-1.用标签做选择器,叫做标签选择器 对标签
-例如:
-h1{
- color:red
-}
-
-这是标签
-2.用类名做选择器 对多个元素
-例如:
-.a1{
- color:red
-}
-这是div
-这是正文
-3.用id做选择器 对单
-例如:
-#b2{
- color:red
-}
-这是div
-
-### const常量
-
-const声明的值不能更改,而且const声明变量的时候里面需要初始化
-但是对于引用数据类型,const声明的变量,里面存的不是值,而是地址
-const指向栈地址,栈再指向堆
-所以 const a = [2]; a.push(3) 不报错
-而 a = [4] 会报错
-同样
-const b = document.querySelector('div')
-b.innerText = '321'
-指向的是'div'的位置,修改div的内容不报错
-
-可以从上往下找下级标签,中间用空格间隔,例如:
-const b = document.querySelector('.a li')
-
-
-
-
-
-### 伪类
-
-取第1个值
-例 取第一个li li:first-child
-const li = document.querySelector('.a1 li:first-child')
-取第n个值
-例 取第5个li li:nth-child(5)
-const li2 = document.querySelector('.a1 li:nth-child(5)')
-取第最后一个值
-例 取最后一个li li:last-child
-const li3 = document.querySelector('.a1 li:last-child')
-
-
-
-### 生成随机数函数
-
-function getRandom(n,m){
- return Math.floor(Math.random() * m-n+1)+n
-}
-
-### 补充
-
-//获取元素时,建议从上级往下多级确认//innerHTML,innerText只能获取双标签,如xx
,,获取不到单标签如
-
-
-
-
-
-### 操作表单元素样式
-
-//innerHTML,innerText只能获取双标签,如xx
,,获取不到单标签如
-表单很多情况也需要修改熟悉,比如点击眼睛,可以看到密码,本质是把表单类型转换为文本框
-正常的有属性有取值的 跟其他的标签属性没有任何关系
-语法:
-获取: DOM对象.属性名
-设置: DOM对象.属性名 = 新值
-例如:
-
-const uname = document.querySelector('input')
-uname.value = '用户名'
-uname.type = 'password'
-//innerHTML得不到表单的值,所以才需要用表单.属性名
-//button比较特殊,他是双标签,可以用innerHTML,innerText
-表单属性中添加就有效果,移除就没有效果,一律使用布尔值表示,如果为true代表添加了该属性,如果为false代表移除该属性
-例如: disabled 禁用表单元素,checked 单选框复选框打钩;下拉框选中,selected
-const ipt = document.querySelector('input')
-ipt.checked = true // 勾选状态
-const button = document.querySelector('button')
-button.disabled = true //禁用按钮
-
-
-
-### 自定义属性
-
-标准属性:标签天生自带的属性,比如class,id,title等,或可以直接用.语法操作的属性,比如 disabled,checked,selected
-自定义属性:
-在HTML5中推出来专门的data-自定义属性
-在DOM对象上一律以dataset对象方式获取
-例如:
-
-
-
- 补充
-
-// 对象.style.display = 'none' 隐藏,用在删除广告等
-// 对象.style.display = 'block' 显示
-
-
-
-### 事件监听
-
-事件是在编程系统内发生的动作或发生的事情,比如在网页上单击一个按钮
-
-事件监听就是、让程序检测是否有事件产生,一旦有事件触发,就立即调用一个函数做出相应,也称为绑定事件或者注册事件,比如鼠标经过显示下拉菜单,比如点击可以播放轮播图等
-
-语法:
-元素对象.addEventListener('事件类型',要执行的函数)
-例:
-const div = document.querySelector('div')
-div.addEventListener('click',function(){
- document.write('打印的内容')
-})
-//相当于给div添加一个事件,这个事件可以直接调用,要加括号:
-div.click()
-事件监听三要素:
-1.事件源:那个dom元素被事件触发了,要获取dom元素
-2.事件类型:用什么方式触发,比如单击click,双击dblclick等
-3.事件调用的函数:要做什么事
-//事件监听要加引号
-//函数是点击之后再去执行,每次点击都会执行一次
-
-
-
-### 事件监听的类型
-
-鼠标事件:
-click 鼠标点击
-dblclick 鼠标双击
-mouseenter 鼠标经过
-mouseleave 鼠标离开
-键盘事件:
-keydown 键盘按下触发
-keyup 键盘抬起触发
-
-
-
-### 事件监听版本
-
-DOML0
-事件源.on事件 = function(){}
-DOML2
-事件源.addEventListener('事件',function(){})
-区别:on的方式是一个属性,可以被修改覆盖,多次定义相当于是一个变量重新赋值s
-```
-
--
Gitee
From 834c76bcde89eb9ead5c66a6f9f7141bf52e1116 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=A2=85=E5=BF=A0=E9=92=A6?=
<11785125+mei-zhongqin@user.noreply.gitee.com>
Date: Sun, 17 Dec 2023 12:28:01 +0000
Subject: [PATCH 3/3] =?UTF-8?q?56=E6=A2=85=E5=BF=A0=E9=92=A6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: 梅忠钦 <11785125+mei-zhongqin@user.noreply.gitee.com>
---
.../2023-12-17.md" | 783 ++++++++++++++++++
1 file changed, 783 insertions(+)
create mode 100644 "56\346\242\205\345\277\240\351\222\246/2023-12-17.md"
diff --git "a/56\346\242\205\345\277\240\351\222\246/2023-12-17.md" "b/56\346\242\205\345\277\240\351\222\246/2023-12-17.md"
new file mode 100644
index 0000000..c3947de
--- /dev/null
+++ "b/56\346\242\205\345\277\240\351\222\246/2023-12-17.md"
@@ -0,0 +1,783 @@
+```js
+### 变量
+
+//声明变量
+let 变量名
+//变量赋值
+变量名 = 值
+let 变量名 = 值
+let不可多次声明同一个变量
+//声明多个变量
+let 变量名 = 值,变量2 = 值2...
+
+# 变量命名规则与规范
+
+规则:
+1.不能用关键字
+2.只能有字母,数字,下划线_,$ 组成,且数字不能作为开头
+3.字母严格区分大小写
+规范:
+1.见名知意
+2.小驼峰命名法
+
+# let与var的区别
+
+1.var可以先使用,再声明
+2.var可以重复声明一个变量
+
+### 不使用第三方变量完成交换
+
+n1 = n1 + n2; 300=100+200
+n2 = n1 - n2; 100=300-200
+n2 = n1 - n2; 200=300-100
+
+# 数据类型
+
+Number 数字类型
+JavaScript中的正数,负数,小数等统一称为数字类型
+let num = 10;
+let num2 = 10.12;
+infinity 无穷大,由 n/0 得出
+NaN 不是数字代表一个计算错误,例如"小明"-2,任何对NaN操作的数都得NaN
+Number.MAX_VALUE 范围的最大值
+Number.MIN_VALUE 范围的最小值
+isNaN(数
+String 字符串类型
+通过单引号,双引号或反引号包围的数据都叫字符串,单引号双引号无区别
+let uname = '闪电'
+let ename = "秀六根"
+无论引号还是双引号都必须成双成对
+单引号/双引号可以互相嵌套,但是不能自己嵌套自己(外双内单,外单内双)
+必要时使用转义符\,输出单引号或双引号
+转义符:\'',\,""\t 制表, \n 换行
+字符串拼接的+号,从左到右,+号左右两边只要有字符串就一定是拼接效果
+字符串拼接,除了用+号,还可以用反引号将所有字符串包围起来,然后用 ${} 来表示变量
+例: document.writr(`大家好我叫${name},今年${age}岁了`)
+boolean 布尔型
+两个固定的值,true和false
+undefined 未定义类型
+只有一个值,undefined
+只声明,不赋值的情况下,变量默认为undefined
+null 空类型
+只有一个值,仅仅是一个代表“无”,“空”或“值未知”的特殊值
+与undefined的区别:undifined表示没有值,而null表示赋值了,但内容是空
+使用场景:将来有个变量存放对象,但是对象还没创建好,可以先给个null
+object 引用类型或者复杂类型
+//js是弱数据类型,未赋值之前不知道是那种数据类型
+
+# 查看类型
+
+typeof 运算符可以返回被检测的数据类型,支持两种语法
+typeof x
+typeof(x)
+
+### 数据类型的转换
+
+隐式转换:
+某些运算符被执行时,系统内部自动将数据类型进行转换,这种转换称为隐式转换
++号两边只要有一个字符串,都会把另外一个转成字符串
+除了+号以外的算数运算符,比如-,*,/等都会把数据转成数字类型
+显式转换:
+类型(数据)
+Number(数据) //转成数字类型,如果字符串内容有非数字,转换失败时结果为NaN,即不是个数字
+parseInt(数据) //只保留整数
+parseFlost(数据) //可以保留小数
+补充
+--
+
+//documen中的输出语句,换行用
因为document执行区域为HTML,而在console中用换行符换行
+//``反引号,也称模板字符串,可以让字符换行,换行可以直接被保留,最重要的是反引号支持解析变量,用${变量}表示
+
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+### 常量
+
+const 常量名 = 值
+//不可二次赋值,所以在创建的时候不允许赋值与声明分开
+
+### 运算符
+
+'/'号中js会保留小数,而小数作为浮点数不精准
+3/0 Java会报错,而js不会,因为在js中0做除数是无穷大,Infinity
+
+### 赋值运算符
+
++=,-+,*=,/=,%=
+a +=b --> a = a+b
+
+### 自增(一元运算符)
+
+i++,++i,i--,--i
+先加和后加区别:
+++i:先自增在参与运算
+i++:先参与运算在自增
+两者单独使用没区别,i++用的多
+例:
+(i++ + ++i + i)=7
+
+### 比较运算符
+
+,< ,> = ,<= ,== ,=== ,!==
+
+== 为两边值是否相等
+=== 为两边的值与数据类型是否相等
+!== 为两边的值与类型都不等
+比较运算符会隐式转换为数字类型
+undefined==null,true
+undefined===null,false
+NaN 不等于任何值,包括他自己
+
+### 逻辑运算符
+
+&& 逻辑与,并且,两边都true才真
+|| 逻辑或,或者,两边都false才假
+! 逻辑非,取反
+优先级:!>&&>||
+
+### 运算符优先等级
+
+1.括号 ()
+2.一元运算符 ++ --
+3.算数运算符 先*/后+-
+4.关系运算符 > >= < <=
+5.相等运算符 == != === !==
+6.逻辑运算符 先&&后||
+7.赋值运算符 =
+8.逗号运算符 ,
+
+### 判断
+
+if 判断:
+if(条件1){
+ 满足条件执行的代码
+}else if(条件2){
+ 满足条件执行的代码
+}else{
+ 代码
+}
+三元运算符:
+条件?表达式1:表达式2
+Switch 判断:
+switch (数据){
+ case 值1:
+ 代码
+ break
+ case 值2:
+ 代码
+ break
+ ....
+ default:
+ 代码
+ break
+}
+// case 匹配的值必须值和类型全等于,所以用===
+
+### 断点调试
+
+F12,打开sources,选择代码文件
+
+### 循环
+
+循环三要素:变量起始值,终止条件(无终止条件会死循环),变量变化量(自增或自减)
+while 循环:不明确的次数时使用
+while(循环条件){
+ 循环体
+}
+for 循环:明确循环次数时使用
+for(let i = 0;i你是什么牛魔`
+
+
+
+### 操作元素常用属性
+
+常见属性如: href,title,src 等
+语法: 对象.属性 = 值
+例:
+const bon = document.querySelector('bon')
+bon.src = './imag001'
+bon.herf = 'www.baidu.com'
+
+
+
+### 操作元素样式属性
+
+1.通过style属性操作CSS
+2.操作类名(className)操作CSS
+3.通过classList操作CSS
+1.通过style属性操作CSS
+语法: 对象.style.样式属性 = '值'
+例如:
+const bon = document.querySelector('bon')
+bon.style.width = '300px'
+bon.style.backgroupColor = 'red'
+bon.style.border = '2px solid blue'
+// 修改样式通过style属性引出
+//如果有连接符-如:backgroup-color 需要转换成小驼峰命名法backgroupColor
+//赋值的时候记得CSS单位 如 px
+2.操作类名(className)操作CSS
+如果修改的样式比较多,直接用style修改比较繁琐,可以通过借助于CSS类名的形式,在CSS里写属性和值,再给某个标签赋予类名
+给元素赋予属性类名,相当于
+语法: 元素.className = '类名'
+例如:
+const bon = document.querySelector('bon')
+bon.className = 'box'
+//由于class是关键词,所以用className代替
+//className是使用新值换旧值(覆盖),所以如果需要添加一个类,需要保留之前的类名 bon.className = 'xxn box'
+3.通过classList操作CSS
+为了解决className容易覆盖以前的类名,我们可以通过classList方式追加和删除类名
+语法:
+元素.classList.add('类名') // 添加
+元素.classList.remove('类名') // 删除
+元素.classList.toggle('类名') // 切换,有就删掉,没有就添加
+例如:
+const bon = document.querySelector('bon')
+bon.classList.add('xxn') // 追加xxn类名
+bon.classList.remove('xxn') // 删除xxn类名
+bon.classList.toggle('xss') // 切换xss类名,有就删掉,没有就添加
+
+
+
+### 操作表单元素样式
+
+表单很多情况也需要修改熟悉,比如点击眼睛,可以看到密码,本质是把表单类型转换为文本框
+正常的有属性有取值的 跟其他的标签属性没有任何关系
+语法:
+获取: DOM对象.属性名
+设置: DOM对象.属性名 = 新值
+例如:
+
+const uname = document.querySelector('input')
+uname.value = '用户名'
+uname.type = 'password'
+//innerHTML得不到表单的值,所以才需要用表单.属性名
+表单属性中添加就有效果,移除就没有效果,一律使用布尔值表示,如果为true代表添加了该属性,如果为false代表移除该属性
+例如: disabled,checked,selected
+const ipt = document.querySelector('input')
+ipt.checked = true // 勾选状态
+const button = document.querySelector('button')
+button.disabled = true //禁用按钮
+
+
+
+### 自定义属性
+
+标准属性:标签天生自带的属性,比如class,id,title等,或可以直接用.语法操作的属性,比如 disabled,checked,selected
+自定义属性:
+在HTML5中推出来专门的data-自定义属性
+在DOM对象上一律以dataset对象方式获取
+例如:
+
+1
+const one = document.querySelector('div')
+console.log(one.dataset.id) // 获取结果为1
+
+### 定时器
+
+能够使用定时器函数重复执行代码
+1.开启定时器
+setInterval(函数,间隔时间)
+setInterval(函数名,间隔时间)
+例如:
+setInterval(function(){console.log('牛魔倒计时')},1000)
+setInterval(getName,1000)
+//间隔时间单位是毫秒
+//函数名不需要加括号
+//定时器返回的是一个id数字
+2.关闭定时器
+let 变量名 = setInterval(函数,间隔时间) //定时器返回的是一个id数字
+clearInterval(变量名)
+
+
+
+
+
+### CSS选择器
+
+1.用标签做选择器,叫做标签选择器 对标签
+例如:
+h1{
+ color:red
+}
+
+这是标签
+2.用类名做选择器 对多个元素
+例如:
+.a1{
+ color:red
+}
+这是div
+这是正文
+3.用id做选择器 对单
+例如:
+#b2{
+ color:red
+}
+这是div
+
+### const常量
+
+const声明的值不能更改,而且const声明变量的时候里面需要初始化
+但是对于引用数据类型,const声明的变量,里面存的不是值,而是地址
+const指向栈地址,栈再指向堆
+所以 const a = [2]; a.push(3) 不报错
+而 a = [4] 会报错
+同样
+const b = document.querySelector('div')
+b.innerText = '321'
+指向的是'div'的位置,修改div的内容不报错
+
+可以从上往下找下级标签,中间用空格间隔,例如:
+const b = document.querySelector('.a li')
+
+
+
+
+
+### 伪类
+
+取第1个值
+例 取第一个li li:first-child
+const li = document.querySelector('.a1 li:first-child')
+取第n个值
+例 取第5个li li:nth-child(5)
+const li2 = document.querySelector('.a1 li:nth-child(5)')
+取第最后一个值
+例 取最后一个li li:last-child
+const li3 = document.querySelector('.a1 li:last-child')
+
+
+
+### 生成随机数函数
+
+function getRandom(n,m){
+ return Math.floor(Math.random() * m-n+1)+n
+}
+
+### 补充
+
+//获取元素时,建议从上级往下多级确认//innerHTML,innerText只能获取双标签,如xx
,,获取不到单标签如
+
+
+
+
+
+### 操作表单元素样式
+
+//innerHTML,innerText只能获取双标签,如xx
,,获取不到单标签如
+表单很多情况也需要修改熟悉,比如点击眼睛,可以看到密码,本质是把表单类型转换为文本框
+正常的有属性有取值的 跟其他的标签属性没有任何关系
+语法:
+获取: DOM对象.属性名
+设置: DOM对象.属性名 = 新值
+例如:
+
+const uname = document.querySelector('input')
+uname.value = '用户名'
+uname.type = 'password'
+//innerHTML得不到表单的值,所以才需要用表单.属性名
+//button比较特殊,他是双标签,可以用innerHTML,innerText
+表单属性中添加就有效果,移除就没有效果,一律使用布尔值表示,如果为true代表添加了该属性,如果为false代表移除该属性
+例如: disabled 禁用表单元素,checked 单选框复选框打钩;下拉框选中,selected
+const ipt = document.querySelector('input')
+ipt.checked = true // 勾选状态
+const button = document.querySelector('button')
+button.disabled = true //禁用按钮
+
+
+
+### 自定义属性
+
+标准属性:标签天生自带的属性,比如class,id,title等,或可以直接用.语法操作的属性,比如 disabled,checked,selected
+自定义属性:
+在HTML5中推出来专门的data-自定义属性
+在DOM对象上一律以dataset对象方式获取
+例如:
+
+
+
+ 补充
+
+// 对象.style.display = 'none' 隐藏,用在删除广告等
+// 对象.style.display = 'block' 显示
+
+
+
+### 事件监听
+
+事件是在编程系统内发生的动作或发生的事情,比如在网页上单击一个按钮
+
+事件监听就是、让程序检测是否有事件产生,一旦有事件触发,就立即调用一个函数做出相应,也称为绑定事件或者注册事件,比如鼠标经过显示下拉菜单,比如点击可以播放轮播图等
+
+语法:
+元素对象.addEventListener('事件类型',要执行的函数)
+例:
+const div = document.querySelector('div')
+div.addEventListener('click',function(){
+ document.write('打印的内容')
+})
+//相当于给div添加一个事件,这个事件可以直接调用,要加括号:
+div.click()
+事件监听三要素:
+1.事件源:那个dom元素被事件触发了,要获取dom元素
+2.事件类型:用什么方式触发,比如单击click,双击dblclick等
+3.事件调用的函数:要做什么事
+//事件监听要加引号
+//函数是点击之后再去执行,每次点击都会执行一次
+
+
+
+### 事件监听的类型
+
+鼠标事件:
+click 鼠标点击
+dblclick 鼠标双击
+mouseenter 鼠标经过
+mouseleave 鼠标离开
+键盘事件:
+keydown 键盘按下触发
+keyup 键盘抬起触发
+
+
+
+### 事件监听版本
+
+DOML0
+事件源.on事件 = function(){}
+DOML2
+事件源.addEventListener('事件',function(){})
+区别:on的方式是一个属性,可以被修改覆盖,多次定义相当于是一个变量重新赋值s
+```
+
--
Gitee