- 博客(33)
- 收藏
- 关注
原创 js阻止默认行为案例
默认事件行为文本框输入 var Ipt = document.querySelector("input"); //文本框只能输入数字 Ipt.onkeypress = function (e) { var evt = e || event; var code = evt.keyCode || evt.which; if (code < 48 || code > 57) { return false
2022-04-26 13:49:31 273
原创 BOM(下)
BOM(下)浏览器常见事件(由浏览器行为触发的事件)1、window.onload=function(){}页面所有资源加载完毕后执行所有资源:图片,视频,音频,...作用:JS前置当需要把JS代码写在head标签的时候最好加上一个window.onload2、window.onscroll=function(){}浏览器滚动条滚动时触发,不管是横向还是纵向,只要滚动就触发作用:2-1、楼层导航2-2、顶部通栏和回到顶部按钮的显示2-3、渐近显示页面2-4
2022-04-20 09:01:37 314
原创 BOM(上)
BOM(浏览器对象模型)浏览器提供的一套操作浏览器窗口的属性和方法BOM的顶级对象是window是一个对象,当打开一个页面的时候就有一个window在全局定义的所有变量都在window下所有和BOM相关的API(应用程序界面)都是window.xxx在书写JS的时候,可以省略window.不写浏览器窗口尺寸(可视窗口)浏览器可能出现滚动条在一般浏览器上滚动条算浏览器的一部分在MAC上,是不算的两个属性1、innerWidth2、innerHeight共
2022-04-20 08:56:14 202
原创 JS生成一个随机颜色
生成一个随机颜色1、rgb()2、十六进制需要封装一个函数==>返回一个字符串,是一个颜色的表示方法==>返回:'reg(0-255,0-255,0-255)'==>返回:'#0-f'==>可以由参数决定,返回的是十六进制还是rgb=>需要一个函数,接收一个参数=>表示是否是十六进制=>true,表示十六进制=>不传递或者false,表示rgb function randomColor(type) { ..
2022-04-15 22:18:07 1132
原创 JS获取,封装时间差
获取时间差思路:1、准备两个时间对象2、两个时间对象相减(可以,有兼容问题,IE低版本不好使)==>得到:就是两个时间对象时间戳的差值==>为了兼容,获取两个时间节点的时间戳,相减==>相减以后去一个绝对值,不需要考虑谁大谁小==>结果是ms,最好 /1000以后再取整3、换算==>换算天=>diffTime / 一天的秒数,取整==>换算小时=>diffTime % 一天的秒数 / 一小时的秒数,取整=
2022-04-14 22:53:09 819
原创 JS时间对象的获取和方法
时间对象JS里面有一个内置构造函数叫做Date()专门用来创建时间对象的时间对象是一个复杂数据类型语法:var time=new Date()返回值:当前终端的事件把电脑的时间调整以后,得到的是调整以后的时间//1、创建时间对象var time=new Date()//得到当前终端的时间console.log(time)可以创建一个指定日期的时间对象1、传递数字1-1、第一个数字表示年1-2、第二个数字表示月0表示一月,11表示12月1-3、第三个
2022-04-14 21:35:24 1014
原创 JS函数案例
某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换,请编写一个函数,传入原文,输出密文 function fn() { var res = ""; //用来保存明文传输的数据 var pw = ""; //用来保存加密后的数据 for (var i = 0; i < 4; i++) { var num =
2022-04-14 12:28:15 236
原创 JS数字进制转换
数字转换进制 ==>进制是一种数字的表示方法 ==>进制:2~36进制 ==>JS里面转换进制分成两种方法 1、十进制转换成其他进制 2、其他进制转换成十进制 ==>1、十进制转换成其他进制 =>使用方法:toString() =>语法:数字.toString(要转换的进制) ...
2022-04-13 12:30:58 6456
原创 JS_Math常用的10种方法
Math常用方法 1、random() ==>语法:Math.random() ==>返回值:0~1之间的随机小数,包0不包1 2、round() ==>语法:Math.round(数字) ==>返回值:四舍五入以后取整数字,只看小数点后一位 3、ceil() ==>语法:Math.ceil(数字) ==>返...
2022-04-13 11:24:34 1045
原创 JS本地缓存
/* 本地缓存 ==>把一些数据记录在浏览器中 ==>多种本地缓存之一 1、localStorage ==>语法 =>localStorage.setItem('名字','值') =>存储一条数据 =>当重复设置一个名字的时候,就是修改 =>loc...
2022-04-12 11:53:18 2417
原创 JS_json格式
/* json字符串 ==>是一种固定的字符串格式 ==>"asdfgasdfasdfg" 普通字符串 ==>'123456789123456' 数字字符串 ==>'<h1>jjjjj</h1>' html格式字符串 ==>json也是一种字符串的格式,和普通字符串本质没有区别 =>只是多了一些固定格式...
2022-04-11 21:12:55 758
原创 JS字符串计数
/* 1、计数排序的思路 ==>索引和数据都是数字 ==>字符'a'索引 数字 对象数据类型 ==>对象的key设置字符串里面出现的每一个字符 ==>对象的value就是出现的次数 2、循环遍历字符串 ==>拿到一个字母 ==>吧每一个字符当作key来使用...
2022-04-11 12:16:23 482
原创 发送带有参数的get,post请求
<script> /* 发送带有参数的get请求 ==>GET请求就是直接在地址栏后面拼接queryString方式携带参数 ==>open的第二个参数就是请求地址 ==>把要携带给后端的内容通过open的第二个参数携带过去 发送带有参数的post请求 ==>POST携带参数在请求体,不需要在地址栏拼接 =>数据...
2022-04-05 23:26:36 2336
原创 ajax兼容
<script> /* ajax的兼容 ==>ajax不主动向下兼容 ==>ajax的兼容有两个部分 1、创建ajax对象 2、接收响应 创建ajax对象的兼容 1、new XMLHttpRequest() 标准浏览器使用 2、new ActiveXObject('Msxml.XMLHTTP') IE7 8...
2022-04-05 23:24:19 1330
原创 ajax异步
<script> /* open的第三个参数可以配置 ==>默认是true表示异步 ==>可以选填false表示同步 分析四和步骤 1、创建ajax对象,同步代码 2、配置请求信息,同步代码 3、发送请求,异步代码,当执行到这句话的时候,先把请求发出去 =>等到响应的过程是异步 ...
2022-04-05 23:23:02 1177
原创 ajax笔记
<script> /* ajax ==>前后端交互的一种手段 ==>通过JS向服务端发起请求 =>所有服务端返回的响应都不会直接显示在页面上 =>而是返回给JS这个语言 ==>说明:JS和服务端交互 =>依赖于浏览器来发送请求 ==>使用方式 1、找到...
2022-04-05 23:21:24 71
原创 let和const定义和常见错误
let const 定义变量 , *****常用 1-不能重复定义 2-没有声明提升,变量只能先定义 后使用 3-新增块级作用域(局部作用域) 使用let 定义id变量 在代码内 就是局部变量,不是全局变量 // Cannot access 'a' before initialization // console.log(a); 暂时性死区 //不能在未定义a前访问a //c...
2022-03-25 14:08:52 397
原创 JS this指向
/* 定义: ==>this 是一个使用在作用域内部的关键字 ==>全局很少用,大部分是在函数内部使用 指向: ==>全局使用:window ==>函数使用:**不管函数在哪定义,只看函数的调用(箭头函数除外)** ->普通调用(直接调用/全局调用) 函数名() :this->window...
2022-03-24 16:19:36 66
原创 JS正则-元字符-特殊字符
/* 1、() //表示abcd出现两次 1-1、一个整体 var reg = /(abcd){2}/; console.log(reg.test("abcdabcd")); 1-2、单独捕获 ==>在捕获一个字符串的时候 ==>从左边开始每一个小括号依次是数组里面的[1]开始的内容 ==>括号内里面的单独捕获出来[0...
2022-03-24 00:26:00 178
原创 JS正则表达式概念和简单使用
/* RegExp 正则表达式 作用: 1、专门用来验证字符串是否符合规则 2、从字符串里面获取一部分符合规则的内容 语法: ==>使用一些特定的符号,组合成一个表达式 ==>使用表达式验证字符串,或者从字符串里面获取一些内容 创建正则表达式 1、字面量形式创建 var red=/abcd/ ...
2022-03-23 23:03:40 583
原创 JS事件委托
**事件委托**事件委托:利用事件的冒泡,把子元素的事件绑定在一个共同的父元素身上优点:1、减少元素的的事件绑定2、减少 dom 操作,提高性能3、对于新添加进来的元素也可以执行事件,不需要重新绑定例如:==>把所有 li 身上需要绑定的事件给一个共同的结构父级==>绑定 ul==>事件目标->如果点击在 ul 上,target 就是 ul->如果点击在 li 上,target 就是 li==>通过事件目标判断点击是 li
2022-03-23 10:16:46 619
原创 JS封装事件绑定和解绑
封装事件绑定和解绑 ==>兼容问题 ==>使用方便 ==>封装需要参数 ->事件源,事件类型,事件处理函数 手动抛出异常 语法: throw new Error('错误信息') ==>用代码的方式在控制台报错 开始封装 1、参数验证 1-1、ele必传,如果没有传递直接报错 1-2、ele需要是一个元素节点...
2022-03-23 08:48:18 97
原创 JS事件的绑定和解绑
/* 事件三要素 1、事件源:在谁的身上绑定事件 2、事件类型:什么事件 3、事件处理函数:当行为发生的时候,执行那一个函数 ==>div.onclick=function(){} ==>div:事件源(绑定在div身上的事件) ==>click:事件类型 ...
2022-03-22 13:41:15 2651
原创 JS数组去重
//数组去重 var arr = [1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1]; /* 1、循环遍历数组 ==>从[0]开始,拿到每一个 ==>向后面比较,只要拿到和其一样的 ==>就把其删除掉 方案1 //改变原数组 for (var i = 0; i < arr.length; i++) { for (...
2022-03-20 22:57:37 243
原创 JS递归二分法(快速排序)、插入排序
**递归二分法排序(快速排序)**1、准备一个函数,接受一个数组2、条件==>先找停的条件->只要数组的 length<=1,就停下来,直接返回原数组==>停以外的行为->找到一个数组长度的一半取整->从数组里面把这个数据拆出来 splice->准备两个新数组,一个表是左边,一个表是右边->循环遍历被拆除一个数字的数组->判断大小 决定放在那个数组里面var arr = [8, 4, 3, 2, 6, 7, 1
2022-03-20 21:27:57 541
原创 JS数组创建与操作
**\*\*数组数据类型\*\***==>也是复杂类型 Array==>一个盒子:存储一堆数据==>不是按照键值对存储==>按照索引进行存储(序号)数组的创建1、字面量创建==>var arr=[]==>创建的时候添加成员==>直接写在中括号里面,多个数据用逗号分隔2、内置构造函数创建==>js 提供了一个内置构造函数 Array==>var arr = new Array()==>传递一个正整数
2022-03-20 12:26:57 332
原创 JS数组常用方法
**数组常用方法**==>js 自带的一些操作数组的方法==>数组方法的使用格式,必须是数组.xxx()==>数组和伪数组的区别->length 和索引都一样,循环遍历都一样,长得也一样->唯独数组常用方法,伪数组用不了==>push()->语法:数组.push(数据 1,数据 2,数组 3...)->作用:把所有的参数按照顺序加到数组的末尾位置->返回值:追加以后数组的长度->直接操作原始数组-&g..
2022-03-20 12:24:38 157
原创 DOM节点
**DOM 节点**document==>一个页面中最大的节点,只能有一个==>承载所有结点的容器,不属于元素==>根节点html 节点==>是一个页面最大的元素节点==>抱哈本页面所有的元素节点==>根元素节点元素节点==>head/body/div/ul/table/...==>只是不同的标签在页面中表现得形式不一样==>特点:是页面的标签文本节点==>每一段文本内容都是一个文本节点=
2022-03-19 01:43:16 168
原创 JS冒泡排序、计数排序、选择排序
冒泡排序==>把一个乱序的数组按照一定的算法排序好步骤 1、准备一个数组 var arr=[9,2,6,4,3,8,5,7,1]==>利用第三个变量交换变量的值步骤 2、先遍历循环数组 ==>让前一个数字和后一个数字比较->如果前一个数字比后一个数字大那就换一下->执行一遍后,最大的数字一定在最后for(var j=0;j<arr.length;j++){if(arr[j]>arr[j+1])var tmp=arr[j]
2022-03-15 21:43:21 348
原创 对象数据类型
**_数据类型_****数据类型赋值上的区别**1、基本复制类型==>就是把变量存储的值直接赋值给另一个变量==>赋值过后两个变量就没有关系了2、复杂数据类型==>因为复杂数据类型中,变量存储的是地址==>赋值的时候,实际上是吧变量的地址给了另一个变量==>赋值过后,两个变量操作一个空间(一个门,两把钥匙)var o1={str="123"num=123}var o2=o1o1.str="345"console.log
2022-03-15 01:41:04 283
原创 JS对象语法,遍历
**_对象_****对象数据类型**是一个复杂数据类型对象:一个盒子,承载一堆数据本质:抽象的描述一个事物对象创建方式:区别:1、字面量可以在创建的时候直接添加一些数据==>数据是以键值的形式出现==>key: value 的形式==>key 就是这个数据的名字==>value 就是这个数据的值==> 多个属性使用逗号(,)分隔1:字面量创建=>var o={ }2:内置构造函数创建:==>js 提
2022-03-13 20:38:52 245
原创 递归函数笔记
***递归函数***递:一层一层的进去归:一层一层的回来把一个事情分成若干个事情执行例子:5的阶乘 =>5*4的阶乘 =>4*3的阶乘 =>3*2的阶乘 =>2*1的阶乘 =>1的阶乘是自己本身 本质:一个函数自己调用自己,当打到设...
2022-03-13 00:20:49 590
原创 JS预解析
预解析 不是教你写代码,告诉你代码的执行机制和不要怎么写代码 预解析:在代码执行之前进行通读并解释(只是把代码当成一个整体文档) 在代码在浏览器执行的时候在所有代码执行之前先把声明做好 解释了什么东西 var 关键字 会把var关键字定义的变量在代码执行之前声明出来 var num=100 1、声明一个变量num 2、给变量num赋值...
2022-03-11 20:57:12 158
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人