随笔分类 - javaScript
javaScript有3部分构成,分别是Dom、Bom、ECMAScript。这里介绍js关于Dom和Bom部分。如果想看关于Ecma相关,请看ECMAScript分类
摘要:前言 js判断数据类型的方式有很多,并不存在说 哪个是最好的,看你的使用场景 typeof 只能判断基本数据类型 返回数据类型(字符串),对于引用类型 都会返回 object const a = 1; // number const b = 'hello'; // string const c =
阅读全文
摘要:```jsx import './App.css' import * as pdfjsLib from "pdfjs-dist"; import { useEffect, useRef, useState } from 'react' pdfjsLib.GlobalWorkerOptions.wor
阅读全文
摘要:app.jsx ```jsx import './App.css' import * as pdfjs from "pdfjs-dist"; import "pdfjs-dist/web/pdf_viewer.css"; import { useEffect, useRef, useState }
阅读全文
摘要:## 多线程语言 像java、python等 它们都是仅支持同步语言,像读取文件、网络请求这种任务 花费时间很长,它们只能长时间等着。 遇到其他紧急任务,Java 可以再开一个线程去处理。 多线程语言的好处是,在同一时间让 cpu 处理多个事情。 充分的利用cpu多核多线程的资源优势。 程序也会执行
阅读全文
摘要:## 办法 严格模式arguments.callee.caller不给使用了 歪路子截取new Error()的报错字符串stack ```js const getCall = ()=>{ let callArr = new Error().stack.split("\n"); callArr.sp
阅读全文
摘要:前言 每次遇到都是新写,很烦人,决定记录下来,下次直接copy 代码 const findItemFromTree = (data, key, val) => { let res; // 处理器 const handel = (dataChildren) => { for (let index =
阅读全文
摘要:一、发展历程 javaScript是Netscape为了解决互联网初期网速过慢,而导致用户体验差而诞生的用在客户端语言。 比如一次用户输入提交等待几十秒后,服务器悠哉悠哉的返回了个‘xxx是必填项’。 而javaScript则将这些逻辑优先处理在客户端。 在Netscape将JavaScript发展
阅读全文
摘要:前言 说起起面向对象的概念,大家大部分的印象都是与后端相关的。 其实并不是这样,我觉得面-向对象这种思想适合在任何的场景,甚至在现实的场景中。 因为后端相关语言在实践和理论概念的资料和资源能看到的多很多。 而且历史原因,前端最开始之初,大部分时间和精力都是在切页面和利用js操作dom。 所以前端对这
阅读全文
摘要:json不规范 亲人两行泪 var myJsonStr = "{name:'张三', 'age':20}"; // 甚至有的key或者value是双引号包起来的 引号都不统一 JSON.parse(myJsonStr); // 报错:myJsonStr不是一个有效的JSON字符串 (VM244:1
阅读全文
摘要:我有原始数据如下 const nodes = { id: "abc", name: "爷爷", children: [ { id: "def", name: "爹", children: [{ id: "jkl", name: "我" }], }, ], }; 如上数据 拿到某一层的item,但是并
阅读全文
摘要:效果 核心思想 监听onWindowSelectionChange事件,获取当前光标位置,然后对比高连位置 判断是否选在区域内。 若是则激活右侧对应的高亮面板 核心代码 index.vue <script setup lang="ts"> import RightPanel from './righ
阅读全文
摘要:## 前言 `react-pdf-highlighter` 使用此插件 做pdf的预览 高亮 批注 对比等 ## 效果 { if(Pubsub.instance == null){
阅读全文
摘要:前言 都知道javascript的class只是语法糖而已,所以没法去对比,不在一个层次。 但是既然有了,总会有好奇的去对比。 那就对比一下。 面向对象的三个经典特性 封装 继承 多态 封装 指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内
阅读全文
摘要:迭代器es6新增的特性,之前没有,其语法借鉴了Python、 Java、 C++。 Iterator(迭代器)不是一个集合,它是一种用于访问集合的方法,可用于迭代List 和 Set 等集合。 实现了迭代器接口的类,都可以使用next方法来取元素。 比如:字符串、数组、映射、集合(Set、Map)、
阅读全文
摘要:首页 index.html <body> <div id="hello"></div> <script src="./lib/layui/layui.js"></script> <script> layui.use('layer', function(){ var $ = layui.$; // 加
阅读全文
摘要:前言程序创建cvs文件,必须blob标识头部,否则会打不开或者乱码 outputStream.write(new byte[]{(byte) 0xEF, (byte) 0xBB, (byte) 0xBF}); 但是加上之后,前端通过简单的a链接或或window.open现在后的文件,会出现blob丢
阅读全文
摘要:为啥用sourceMap 这几天在搞前端错误日志,做过线上发布的都知道,我们发布到生产环境的代码,一般都有如下步骤: 压缩混淆,减小体积 多个文件合并,减少HTTP请求数 通过编译或者转译,将其他语言编译成JavaScript 这三个步骤,都使得实际运行的代码不同于开发代码,不管是 debug 还是
阅读全文