- 博客(73)
- 收藏
- 关注
原创 js 每隔2秒循环调用
function play(objFn) { let i = 0; setInterval(() => { objFn[i](); i++; i = i < objFn.length ? i : 0; }, 2000) }
2020-10-26 09:15:43
1772
原创 js 字符串转金额格式
function strMoney(str, n,strN) { let str1 = str.substring(0, str.length % n); let str2 = str.slice(2); let i = 0; let arrstr = []; while (i < str2.length) { arrstr.push(str2.slice(i, i + n)); i += n; } let str
2020-10-24 11:14:17
1505
原创 js 跑马灯
跑马灯:Marquee github地址:https://github.com/aamirafridi/jQuery.Marquee <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>test</title>
2020-10-19 15:03:38
356
原创 css 知识点
块元素 宽高,padding,margin,border都可以设置。 且影响布局,有视觉效果。 独自占一行。 内联元素 宽高不可以设置,为里面内容的宽高。 padding和margin的左右,border可以设置,影响布局,且有视觉效果。 padding和margin的上下可以设置,不影响布局,有视觉效果。 与其他内联元素在一行。 宽auto的表现 最小宽度 最大宽度 包裹性 自适应性 浮动元素 包裹性 自适应性 块级格式化上下文(设置浮动的元素,display会自动变为block或table) 破坏文档.
2020-10-01 13:10:40
240
原创 js 搜索联想功能
<input type="text" class="inp"><button class="btn">搜索</button></button><br> <div class="con"></div> let arr = ['namename','naee','age','append','aaa','pre','next','你好啊你好啊','你事件流咖啡豆']; let inp = document.querySelec
2020-09-28 19:25:30
316
原创 js 实现简单的模板字符串
let str = 'my name is ${name},I am ${age}...'; let obj = { name: 'xxx', age: 13 } let reg = /\$\{\w+?\}/g; let str1; function fn(str,obj){ Object.keys(obj).forEach((item,index,arr)=>{ str1 = str.replace(reg,obj[item]) }) retu
2020-09-25 19:47:30
754
原创 js 数组扁平化(多维转一维)
let arr = [1, 2, [3, 4, [5, 6]], 7]; //方法一: console.log(arr.join(',').split(',')); //方法二: console.log(JSON.stringify(arr).replace(/[\[\]]/g,'')); //方法三: let arr1 = []; function fn(arr) { arr.forEach((item, index, arr) => { if (Array.isArray(
2020-09-25 18:41:42
175
原创 js 拆分url
let url = 'http://xxx.com/api/page/index?id=1&name=lin&age=13&pwd=&like=something'; function sliceURL(url) { let urlarg = url.slice(url.indexOf('?') + 1); let arr = urlarg.split('&').map(function (item, index, arr) { ret
2020-09-23 09:34:37
1160
原创 promise封装ajax请求
function request(options) { return new Promise((resolve, reject) => { let { url, method, data } = { ...options }; let baseURL = 'http://xxx.com/api/'; wx.request({ header: { 'content-type': 'applic
2020-09-22 19:13:36
180
原创 js 数组去重
1、循环两遍,依次用自己和其他所有项相比,找到相同的删除,记得i-- arr.forEach(function(item,index,arr){ for(let i=0;i<arr.length;i++){ if(i!=index&&item==arr[i]){ arr.splice(i,1); i--; } } }) console.log(arr); ...
2020-09-22 19:05:04
111
原创 面试知识点总结 - js Canvas
1. canvas介绍 canvas元素:可以通过width、height设定一个区域,然后通过js动态在该区域中绘制图形;如果浏览器不支持canvas,则会显示canvas标签中的内容 canvas元素有2D绘图上下文和3D绘图上下文(WebGL) canvas元素的原点在左上角,坐标为(0,0) 2. canvas元素的方法 getContext(‘2d’):获取2D绘图上下文,可以通过调用该对象的方法属性画各种图形 toDataURL(‘image/png’):导出在canvas元素上绘制的图
2020-09-17 19:20:53
900
原创 面试知识点总结 - js 懒加载
场景: 一个页面中很多图片,但是首屏只出现几张,这时如果一次性把图片都加载出来会影响性能。这时可以使用懒加载,页面滚动到可视区在加载。优化首屏加载。 实现: img标签src属性为空,给一个data-xx属性,里面存放图片真实地址,当页面滚动直至此图片出现在可视区域时,用js取到该图片的data-xx的值赋给src。 优点: 页面加载速度快,减轻服务器压力、节约流量,用户体验好。 ...
2020-09-09 12:56:26
175
原创 面试知识点总结 - js 模块化
1. Es6 let fn1 = ()=>{ } export{ fn1, fn2 } import {fn1,fn2} from './detail.js'; 内容是对象,分隔符是逗号 export default{ name: "我是index.js", fn2: ()=>{ } } import index from "./index.js"; 2. commonJs(浏览器,服务器) 暴露exports 对象,默认是{} exports.xxx
2020-09-09 12:51:38
692
原创 面试知识点总结 - js 进程、线程、事件循环模型
1. 进程 程序的一次执行,它占有一片独立的内存空间 可以通过认股管理器查看 2. 线程 是进程内的一个独立执行单元 是程序执行的一个完整流程 是CPU最小的调度单元 3. Js单线程 js引擎执行流程 先执行初始化代码,在执行回调代码 事件循环模型 Web Workers (多线程) 单线程:递归调用,很慢,用户不能再操作页面 多线程: 主线程: 分线程:打印this,全局对象不是window,所以不能更新页面 执行顺序: ...
2020-09-09 12:45:28
171
原创 面试知识点总结 - js Video和audio
视频及音频格式(容器格式) Mpeg-4: .mp4 mpeg-3: .mp3 Flash: .flv aac: .aac Ogg: .ogv ogg: .ogg Webm: .webm Avi:音视频交错 视频编解码器 H.264(avc):mp4 , vp8:所有 , Theora:ogg 音频编解码器 aac :aac, mpeg-3:mp3 , Vorbis:ogg ...
2020-09-09 12:36:42
252
原创 面试知识点总结 - js 原型
构造函数+原型链 一般情况下,属性在对象本身上,方法在原型中 prototype(显示原型) 每个函数都有一个prototype,为一个空对象{},称为原型对象({}无自己 写的属性). 原型对象中有constructor,__proto__两个属性 原型对象中的__proto__存的地址值等于Object.prototype存的地址值,地址值指向同一个对象所以相等 原型对象中的__proto__默认指向Object的实例对象Object.prototyp(Object构造函数除外,因为它.
2020-09-09 12:35:19
153
原创 Git 基础
1. 概念 github:git远程仓库 git:版本控制系统 版本控制系统:集中式(svn)和分布式(git),分布式无中央服务器,每个人都有一份完整的版本库,多人协作时,推送自己修改的给其他人,其他人就可以看到了,不用联网 跟踪文本的改动,图片、视频等二进制只能记录文件大小的变化。采用UTF-8编码(只用notepad等编辑器) 工作区:自己本地电脑的文件夹 版本库:.git文件,git的版本库 暂存区:git版本库中存了很多东西,包括称为stage(index)的暂存区,git自动创建的第一个分支
2020-09-08 20:01:23
260
原创 SQL基础
1. 命令 Mysqld install Mysqld initialize Net start mysql Alter user ‘root’@’loacalhost’ identified by ‘root’ Mysql -u root -p Show databases Use test Show tables Exit Mysql -h 192.168.43.161 -u root -p 127.0.0.1:3306 2. 查询 普通查询:(select * from students)
2020-09-08 19:40:28
194
原创 面试知识点总结 - js 跨域消息传输
跨域 URL:https://editor.csdn.net:8000/md/?not_checkout=1 协议不同 域名不同 端口不同 目录不同 参数不同 以上任意一个不同都是跨域 跨文档消息传输(XDM即cross-document messaging) postMessage(消息,指定消息接收方的域名):发送消息 第一个参数消息为字符串,不是字符串时可以调用JSON.stringify()和JSON.parse() window的message事件,会在接收到消息时触发 m
2020-09-08 09:24:24
407
原创 面试知识点总结 - js 表单
1. 表单中的标签(即表单字段) <input> type属性可以为text、radio、checkbox、submit、reset、还有h5新增的(email、url、number、range、time、datetime、date、month、week) <textarea> <select>和<option> <button> type属性可以为submit、reset、menu <form> 2. 表单中的
2020-09-04 09:47:40
248
原创 面试知识点总结 - js RegExp
1. 正则表达式定义 字面量形式 let reg = /pattern/flags pattern(模式):正则表达式匹配模式,可以包含字符类、限定符、分组、查找、引用 flags(标志): 全局(g):在所有字符串中查找与模式匹配的项,不是找到第一个就匹配项就结束 不区分大小写(i):匹配时不区分大小写 多行(m):到一行结尾会继续查找下一行 RegExp构造函数形式 let reg = new RegExp(pattern,flags) 两个参数均为字符串,使用元字符都要
2020-09-02 16:57:26
258
原创 面试知识点总结 - js 缓存
数据存储 Storage类型 概念: 提供最大的存储空间(因浏览器而异)来存储名值对,每个域都有固定大小的存储空间用于保存自己的数据 Storage实例的方法: clear():删除所有值 getItem(name):获取指定名字对应的值 setItem(name,value):给指定名字设置对应的指定值 removeItem(name):删除指定名字的名值对 key(index):获取指定位置的值 length:名值对的个数 除了以上方法,还可以用点或者方括号[]语法访问 storage事
2020-08-31 10:01:05
158
原创 面试知识点总结 - js JSON
概念 JSON(JavaScript Object Notation):JavaScript对象表示法,是一种数据格式 语法 简单值:可以表示的包括String、Number、Boolean、Null,语法和js相同;不支持Undefined 对象:一组无序的键值对;每个键值对中的值可以为简单值和复杂数据类型的值 数组:一组有序的值的列表;数组的值可以为任意类型(简单值、对象、数组),可以统统数组的索引来访问其中的值 注意事项 不能表示undefined 字符串必须用双引号 属性名必须加
2020-08-28 09:04:00
259
原创 面试知识点总结 - js 拖放
被拖放元素 任何元素都可以作为拖放元素 除了图片、链接、文本(被选中的情况下)可以被拖动,其他元素默认是不能被拖放的,可以在元素标签中设置draggable=‘true’,可以让其他元素可以拖放 被拖放元素上的事件: dragstart:按下鼠标键并开始移动鼠标时触发 drag:元素被拖动期间持续触发 dragend:拖动停止时触发(无论是把元素放到有效还是无效的放置目标上) 拖动期间浏览器默认不会改变拖动元素的外观,会为该拖动元素创建一个半透明的副本,该副本跟随光标移动 作为放置目标的
2020-08-27 17:42:47
249
原创 面试知识点总结 - js 事件
概念 事件流:描述从页面中接收事件的顺序 事件流的三个阶段:捕获、处于目标对象、冒泡 事件:用户或浏览器自身执行的某种动作 事件处理函数:响应某个事件的函数,以on开头 事件名:click 事件处理函数名:onclick 定义事件处理程序(即事件的响应函数): 在html中定义 js中定义-DOM0:ele.οnclick=fn js中定义-DOM2:ele.addEventListener(‘click’,fn,{}) 事件对象(event):所有与事件有关的,从浏览器传导事件处理程序函数
2020-08-27 16:49:00
383
原创 面试知识点总结 - js DOM
节点、标签、元素、Node类型 nodeName nodeValue nodeType childNode parentNode firstChild lastChild nextSibling previousSibling ownerDocument children appendChild() removeChild() insertBefore(’’,’’) cloneNode(true/false是否包含子节点) normolize() replaceChild(’’,’’) document..
2020-08-23 21:18:32
252
原创 面试知识点总结 - js Object
一组数据和功能的集合 创建对象 var obj = {} var obj = new Object() 实例obj的原型为Object.prototype,具有如下属性和方法 constructor:创建当前实例对象的函数 hasOwnProperty(属性):给定属性是否在当前实例对象中,而不是在实例的原型对象中 propertyIsEnumerable(属性):给定属性是否可以使用for…in枚举 isPrototypeOf(object):对象原型是否是当前传入对象的原型 ..
2020-08-21 19:03:15
187
原创 面试知识点总结 - js Array
概念 数组是数据的有序列表 长度可以动态调整(通过length调整,或随着数据的增加删除改变) 每一项可以保存任何数据类型的数据 索引范围是0->length-1 改变原数组的方法有7个:push、pop、unshift、shift、reverse、sort、splice 创建数组 var arr = new Array() var arr = [] 检测数组 arr instanceof Array Array.isArray(arr) join(分隔符字符串..
2020-08-20 12:44:51
172
原创 js的 for、for...in、for...of、forEach、filter、map、some、every的区别
1、for 2、for…in 3、for…of 4、forEach、filter、map、some、every 都是数组的遍历方法,都接收两个参数,要在数组每一项上执行的函数,和执行指定函数的作用域对象,第一个参数函数接收3个参数,function(当前数组项的值,当前数组项的索引,数组本身){} forEach:没有返回值 filter:返回执行函数后返回true的数组项组成的数组 map:返回每一项执行函数后的返回值组成的数组 some:执行函数后任意一项返回true,则返回true every:
2020-08-20 11:43:17
300
原创 js 各种数据类型的toString、valueOf方法比较,及Object.prototype.toString.call(各种数据类型数据)
Object.toString.call(各种数据类型数据)
2020-08-20 09:01:37
212
原创 面试知识点总结 - js Number
进制表示: 10进制直接写 8进制以0开头,后面数值的范围是0-7,如果后面的数值超出范围,则忽略前导0,后面的数值看成10进制 16进制以0x开头,后面数值的范围是0-9及a-f(或A-F,不区分大小写) 数值分类: 整数和浮点数 浮点数: 数值中必须有一个小数点,且小数点后面至少有一位数字 浮点数所占的内存空间时整数的两倍,所以ECMAScript会自动的将浮点数转为整数,当浮点数为(1.或1.0)这样时 科学计数法(e): e或者E,不区分大小写 men = mEn = m*10^n m为数值(整..
2020-08-19 12:10:44
190
原创 面试知识点总结 - js String
字符串的概念 由0个或多个Unicode字符组成 用成对的单引号或者双引号表示 字符字面量: 换行(\n)、回车(\r)、tab(\t)、空格(\b)、进纸(\f)、\(\)、’(’)、"(")、16进制(\x)、Unicode字符(\u) 创建后不能修改,只能先删除,在创建新的 字符串的方法 toString():返回相应值的字符串表现 Boolean、Number、String、Object都有该方法 Null、Undefined没有该方法 String(): Boolean、Number、
2020-08-18 17:39:21
170
原创 面试知识点总结 - js 语法、变量、数据类型、标识符、操作符、语句
1. 语法 所有都区分大小写(变量名、函数名、操作符、语句等都所有都区分大小写) 严格模式:‘use strict’ 2. 变量 用来保存任意数据类型的数据,为松散类型 用var定义,会成为该变量所在作用域的局部变量;省略var定义变量,会成为全局变量;函数作用域中的变量会在函数退出后被销毁 定义未赋值的变量,默认值为undefined 用逗号分隔可以在一个语句中定义多个变量,var a,b,c; 3. 数据类型 基本数据类型:Undefined、Null、Boolean、Number、
2020-08-14 19:39:50
178
原创 面试知识点总结 - js Boolean
Boolean()后为false的值:false、‘’、0、NaN、undefined、null 流程控制语句可以触发强转:如if() boolean有基本类型(false、true)和引用类型(通过new构造函数:new Boolean(false)) let obj = new Boolean(false); //根据构造函数Boolean,new出来的实例对象,所以原型链上有Boolean,原型对象(Boolean.prototype)为对象,所以原型链上还有Object //obj...
2020-08-13 18:51:54
151
原创 面试知识点总结 - js 回调函数、闭包、递归、尾调用、尾递归
function fn(){ console.log('fn') } //回调函数 //一个函数,参数为函数,当满足某个条件是执行该参数函数 function test(fn){ setTimeout(() => { fn() }, 1000); } test(fn) //闭包 //一个函数,返回一个函数,在里面的函数中引用外面函数的变量 function test1(){ let a = 'aa'; return function(){
2020-08-11 15:26:34
371
原创 面试知识点总结 - ES6 变量的解构赋值
1. 概念 按照一定模式从数组或对象中提取值,然后赋值给对应的变量 变量(模式匹配) = 被解构的对象 如果解构不成功,变量值为undefined 不完全解构(即等号左边的模式值匹配右边的一部分),也可以解构成功 允许给左侧变量指定默认值 左侧变量的默认值生效条件:当右边对应的解构的值全等于(===)undefined时,或者右边没有对应的解构的值时 默认值可以引用解构赋值的其他变量,但该变量必须已经声明 默认值为表达式时,为惰性求值(即如果变量可以取到值,默认值的表达式就不会运行)
2020-08-11 15:18:23
212
原创 面试知识点总结 - ES6 let和const
let & const 块级作用域(如:for循环只在本轮循环有效) 没有变量提升(只能在声明后使用) 不能重复声明(如:函数内部不能再次声明该函数的参数) const const声明的是常量(即基本类型),不能改变 初始化时必须赋值(否则就是有undefined变成了后面的赋值) const声明的变量,基本类型不能改变;引用类型,对象的引用不能改变,对象的属性可以改变 ...
2020-08-07 18:28:09
154
原创 面试知识点总结 - ES6 异步处理方案 promise
异步 异步任务:定时器、DOM事件、ajax请求、图片视频等资源的加载 异步解决方案:事件回调函数、promise 1. 概念 promise是一个异步事件的容器,一旦新建立即执行,中途无法中断 有三种状态(进行中pending、成功fulfilled/resolved、失败rejected) 状态不收外界影响,只有异步操作的结果可以影响 状态一旦改变就会一直保持不变,任何时候都可以得到该结果,不像事件,只有发生时可以监听到,否则会错过 是一个构造函数,接收一个函数为参数,该函数有两个参数,分别
2020-08-07 11:00:08
302
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅