摘要:base64 是图片编码的一种形式,可以替代图片的url进行网络访问和请求等操作; 使用图片的url形式操作图片,每次都要请求一次网络,因为每次请求都是一个http;都是一个网络开销,都是对服务器的负担; 但是base64 没有http,不需要对网络请求;减少网络请求的次数,减轻网络服务器的压力;
阅读全文
摘要:(1)箭头函数比普通函数更加简洁 如果没有参数,就直接写一个空括号即可 如果只有一个参数,可以省去参数括号 如果有多个参数,用逗号分割 如果函数体的返回值只有一句,可以省略大括号 如果函数体不需要返回值,且只有一句话,可以给这个语句前面加一个void关键字。最常用的就是调用一个函数: let fn
阅读全文
摘要:// 去手动删除本地存储触发存储事件 window.addEventListener('storage', function () { console.log('存储事件触发了') }) const obj = { name: 'zlx', age: 24, } localStorage.setIt
阅读全文
摘要:function getHost(url) { var host = "null"; if(typeof url == "undefined"|| null == url) { url = window.location.href; } var regex = /^\w+\:\/\/([^\/]*)
阅读全文
摘要:柯里化函数就是一个带有参数的函数返回一个带有另一个参数的函数;要返回一个函数; 使用柯里化函数求 a + b 的和: // 箭头函数的简写方式函数体里只有一条语句省略{} const add = (a) => (b) => a + b console.log(add(4)(5)) // 9// 然后
阅读全文
摘要:协议 protocol :http 或者 https = http + ssl 或者 file 文件(本地); 域名 host 或 ip 地址: 端口 port 省略默认 80 : 路径 path 第一个 / 后面的内容; 查询字符串 search (querystring) ?后面的 用来给动态网
阅读全文
摘要:// 定义一个全局变量当作命名空间 const eq = {} // 每次需要变量就使用eq对象的属性当作变量名 eq.i = 0 // 需要使用函数时就给使用eq对象的方法作为函数 // 定义一个公共的函数获取指定元素,提高代码的复用率 eq.$ = function (selector) { r
阅读全文
摘要:let arr = [1, 2, 3, 4, 3, 2, 3, 4, 6, 7, 6] let unique = (arr) => { console.log(arr) return arr.filter((item, index) => { // console.log(item, index)
阅读全文
摘要:方法1 : var str = '12345679' let strNew = str.replace(/\B(?=(?:\d{3})+\b)/g, ',') // 匹配单词边界替换为逗号 方法2: // 定义一个反转函数反转函数 // 字符串没有直接的反转函数方法 function re(str)
阅读全文
摘要:// 统计字符串每个字母出现的次数 let str = 'asdfssaaasasasasaa' let obj = str.split('').reduce(function (prev, item) { // prev的初始值是空对象 if (prev[item]) { prev[item]++
阅读全文
摘要:把函数挂载到构造函数的原型对象上,可以公用这些函数方法; // 使用函数表达式的方法创建一个构造函数 const OnlyOne = function () {} // 在函数的原型上添加方法 OnlyOne.prototype = { fn1: function () { console.log(
阅读全文
摘要:1. 使用 instanceof // instanceof 判断对象是否由另一个函数创建 console.log([] instanceof Array) // true console.log({} instanceof Object) // true 2. 使用内置数组对象的静态方法 isAr
阅读全文
摘要:"伪"顾名思义就是假的,不存在的、抽象的。 伪类和伪元素的相同点:html文件内没有设置它们,是看不到它们的标签的,但是可以设置它们的样式,并且能看到样式。 不同点:伪类是一个样式,不是一个元素,而是某一个元素在特殊状态下(悬停hover) 的样式。伪元素是一个不在文档树(DOM)的元素(能设置样式
阅读全文
摘要:单冒号:一般指的是伪类,如鼠标悬停状态设置样式:选择器:hover {设置样式} 双冒号一般指伪元素,给元素的前面/后面添加内容。内容数据按堆栈数据结构存储。
阅读全文
摘要:<style> /*单行显示省略号 */ p { background-color: pink; width: 100px; /* 一行显示 */ white-space: nowrap; /* 超出部分隐藏 */ overflow: hidden; /* ellipsis:省略号 */ text-
阅读全文
摘要:定义一个 $ 函数,return document.querySelector(selector); const $ = function (selector) { return document.querySelector(selector) } console.log($('#click'))
阅读全文
摘要:浏览器把是客户端,可以展示请求到的资源; 展示本地资源: 展示网络请求的资源: 1. 用户界面:地址栏、书签目录等;2. 浏览器引擎:用来查询和操作渲染引擎的接口。3. 渲染引擎:渲染页面,处理html、css等,也叫浏览器内核;4. js解析器 : 解释执行js脚本。5 .数据存储 :本地存储 l
阅读全文
摘要:document.designMode 的默认值是 off 关闭; 在控制台输入 document.designMode = 'on' 就可以编辑页面内容;
阅读全文
摘要:在数字中输入 _ 是不显示,and 不违法的;作用方便我们查看数字的个数; console.log(1000_0000_0000_0000_);
阅读全文
摘要:replace 匹配中的第一次;replaceAll 替换所有匹配的内容; let str = 'aj123dshf12aaaaaaaaaaa3uausdjd123suas123fus12' let reault = str.replaceAll('a', '2') console.log(reau
阅读全文
摘要:!! 运算符可用于将表达式的结果快速转换为布尔值(true或false):
阅读全文
摘要:可选链 ; let a = { name: '123', } let b = a?.name // 条件都满足才会把a的name属性值赋给b // 条件 1 : a 是真值 true // 条件 2 : a 有 name 属性 console.log(b) // 123 空值合并运算符 如果左边的是
阅读全文
摘要:原理使用变量即可; 使用 【】 包裹 ; 【】 里的属性名是变量类型的、或者是不规范类型的; // 动态添加属性 let age = 'age123' const obj = { name: '朱龙旭', [age]: 23, } console.log(obj) 动态解构属性; // 动态解构 l
阅读全文
摘要:使用 in 查看; let condition = true const obj = { name: '朱龙旭', ...(condition && { age: 24 }), } console.log('name' in obj) // true console.log('age' in obj
阅读全文
摘要:1. 数组中使用 1.1 合并2个数组 const arr1 = [1, 2, 3] const arr2 = [4, 5, 6] console.log([...arr1, ...arr2]) 1.2 求最值 const arr1 = [1, 2, 3] const arr2 = [4, 5, 6
阅读全文
摘要:闭包就是可以读取其它函数内部的变量的函数; 函数嵌套,内层函数使用了外层函数的变量;闭包=内层函数 + 外层函数的变量; 优点:函数可以操作函数内部的变量,延长变量的的作用范围,延长变量的生命周期; 生命周期:创建内存 使用内存 释放内存; 缺点:内存容易造成内存泄漏,解决方法:不适用的时候手动释放
阅读全文
摘要:1. 求定积分的方法 a)换元积分法 要三换 换区间 换被积函数 换dx b)分部积分法
阅读全文
摘要:// 3.文本域字数不得超过限制 获取输入框 const textarea = document.querySelector('.comm-input textarea') // 3.1中文起始量 为false let isChinese = false textarea.addEventListe
阅读全文
摘要:option = { // 线的颜色 color: ['red', 'lime', 'blue', 'purple'], title: { // 不显示 show:false, text: 'Customized Radar Chart' }, // 图例 legend: { // 不显示 show
阅读全文
摘要:this是js底层定义的变量,代表了代码的指向环境 a 函数的this是window b 方法的this是调用的对象 c 构造函数和原型对象上的方法的this指向实例化对象 d 箭头函数不会自己创建this指向,会沿用作用域的上一层this指向 e 注册事件的this指向事件源 f setInter
阅读全文
摘要:a document.write 是整个页面的内容,会重写页面b innerHTML 是某个元素的内容,只有给body的innerHTML设置内容才会重写页面
阅读全文
摘要:官网:https://echarts.apache.org/handbook/zh/get-started/ a 下载js文件并引入 b 初始化实例对象 echarts.init(获取盒子对象) 关联容器 ; c 设置配置项 复制修改 d 应用配置项 setOption(option) 相当于重新渲
阅读全文
摘要:a 创建了一个空对象 {}b 通过原型链把空对象和构造函数连接起来__proto__ = prototype c 构造函数的this指向新对象,并执行函数体 d 判断构造函数的返回值,返回对象就使用该对象,没有返回值,就会通过this创建一个对象
阅读全文
摘要:枸杞又叫枸杞子,容颜果,一般是宁夏枸杞较多; 作用:滋补肝肾;明目; 使用方式:使用温水浸泡,热水会破坏枸杞子的营养成分,配合其它营养品效果翻倍; 春天配黄芪;夏天配菊花,秋天配山楂,冬天配桂圆;
阅读全文
摘要:数组是一组数据的集合,每个数据被称作元素,数据可以是任意类型的元素;数组是一种将一组数据存储在单个变量的优雅方式; new Array 通过构造函数创建数组; 通过字面量创建数组;
阅读全文
摘要:对象就是相关属性和方法的集合,所有的事物都是对象;
阅读全文
摘要:预解析就是当前作用域的代码执行之前,会把var 和 function 声明的变量提升到代码的最前面;即变量提升 和 函数提升; 变量提升:只提升声明 不提升赋值; 函数提升:只提升函数声明,不提升函数调用; 预解析会把变量和函数的声明在代码执行之前执行完成。
阅读全文
摘要:全局作用域:是所有代码的执行环境,比如script标签里所有的代码 或 独立的js 文件; 局部作用域:是函数内部代码的执行环境; 块级作用域:是 {} 内的代码执行环境;
阅读全文
摘要:知识储备:js的函数参数和C语言等编程语言不同,没有参数重载,实参和形参之间的值传递或者地址传递;有的是js的相同函数名会被后面的参数覆盖,实参和形参的传递都是值传递; 实参的个数和形参个数相同:正常使用; 实参的个数大于形参的个数: 多出来的实参不起作用; 实参的个数小于形参的个数:多出来的形参相
阅读全文
摘要:联系:形参和实参是赋值关系,是按照值传递的,简单数据直接传递值,形参和实参的改变互不影响,因为形参和实参是两个变量,是两个数据(栈内存); 引用数据传递的是地址,结果就是一个数据,两个地址同时指向一个值(堆内存),形参和实参相互影响; 区别:形参就是定义函数时,设置用于接收实参的值,不用声明,定义在
阅读全文
摘要:知识储备: js每次声明变量(5种简单类型、一种复杂类型)都会给变量创建创建内存、使用内存来收容这些变量、变量的类型不同使用的内存形式也不同; 简单类型会存放在栈内存上,变量名就是实际的变量值;复杂类型的变量名不是实际的值,而是指向实际值的地址,所以复杂类型的地址(变量名)会存放在栈内存中,复杂类型
阅读全文
摘要:1. 普通函数的this 指向 window 2. 方法的this指向调用的对象 3. 构造函数 和 对象原型的方法都指向实例化对象 4. 箭头函数自己是不会创建自己的this指向 ,会沿用作用域链的上一层this指向 5. 注册事件的this指向事件源 6. 延迟器setTimeout 和 间隔函
阅读全文
摘要:js业务 业务1:收货地址业务 主要实现地址的新建、修改、确认 业务2:产品数据渲染业务 主要实现产品信息的渲染、计算数据 业务3:使用优惠卷业务 主要实现扫描二维码获取优惠卷、使用优惠卷码获取优惠卷 分页效果的原理 伪代码 先获取数据 每一页显示3个数据 变量接收 pageCount= 3 let
阅读全文
摘要:keyCode 8 = BackSpace BackSpace keyCode 9 = Tab Tab keyCode 12 = Clear keyCode 13 = Enter keyCode 16 = Shift_L keyCode 17 = Control_L keyCode 18 = Alt
阅读全文
摘要:主要使用 sort 方法 1. 简单数组排序 语法: sort([compareFunction]) 参数: compareFunction : 用来指定按某种顺序进行排列的函数。如果省略,元素按照转换为的字符串的各个字符的 Unicode 位点进行排序。 实例: sort() 没有参数只会排序数字
阅读全文
摘要:说明:需求:找出1 - 100之间的所有素数依次放入数组里面,并计算素数的个数。素数定义:素数又叫质数,素数指的是在正整数范围内,大于1并且只能被1和自身整除的数。 代码: // 1 - 100 素数 const arr = [] let k = 0, j for (let i = 2;i <= 1
阅读全文
摘要:JavaScri实际上没有二维数组的概念,但是由于js变量是松散的,所以能设置数组元素为数组来模拟二维数组,以此类推,可以模拟多维数组。 /* 需求:模拟了3 * 3数组求右上三角元素之和1 + 3 + 6 + 9 + 8 + 7 = 34 * 解析:行小于列 * 1 9 7 * 2 3 8 * 4
阅读全文
摘要:获取内容时: innerText会自动删除空格和换行;innerHTML会保留空格和换行; <body> <div>获 取内 容</div> <script> const div = document.querySelector('div') console.log(div.innerText) /
阅读全文
摘要:a)break 结束当前循环体 b)continue 结束本次的循环,执行下次的循环 c)return 结束函数体,并返回值 d)break 和 continue 写在循环里(for,while)return 写在函数里(function)
阅读全文
摘要:less 是css的预处理器,是动态语言,赋予了css动态的特性,如继承,变量,函数等,less可以执行在客户端和服务端; 为什么使用less a)less 的结构简单,便于扩展 b)实现多重继承 c)完全兼容 css
阅读全文
摘要:1. 什么是节流 对于高频率反复触发的事件,将事件处理程序控制成低频率执行,节省资源,提升性能 注: 对于mousemove事件是不能控制事件触发的频率的,只能控制程序处理函数的执行次数 使用场景:鼠标移动mousemove,页面滚动scroll,页面尺寸改变resize 等默认会反复触发导致性能开
阅读全文
摘要:1. 数据 var DataList = [ { children: [ { children: [ { value: '瑶海区', label: '瑶海区' }, { value: '庐阳区', label: '庐阳区' }, { value: '蜀山区', label: '蜀山区' }, { v
阅读全文
摘要:offset 可以得到任意样式表中的样式值offset 系列获得的数值是没有单位的数字offsetWidth 包含padding+border+width offsetWidth 等属性是只读属性,只能获取不能赋值 style 只能得到行内样式表中的样式值 使用 style 都只能获取行内的样式数据
阅读全文
摘要:变量污染就是全局变量滥用,造成报错,覆盖等问题;简单讲就是使用了相同的标识符声明了全局变量,var关键字声明相同的变量名会覆盖,let、const重复声明相同的变量名会直接报错; var 可以声明提升 可以重复声明 定义的变量是全局变量 const 、let可以声明块级作用域 const声明时必须赋
阅读全文
摘要:1. Array 的属性 2. Array 的方法 2.1 增加数组单元 参数一半都是数组单元 a)unshift 方法 在数组的最前面添加数组元素 <script> const arr = [1,2,3] arr.unshift('弥豆子') console.log(arr) // ['弥豆子',
阅读全文