目录

工欲善其事

实践出真知

活跃标签: linux java mysql 待分类 js springboot win10 电路 vue macOS nginx esp32 git docker windows idea maven esp8266 python Arduino

存档:

标签: js (20)

[javascript] 精通js需要知道那些

请解释一下JavaScript中的闭包是什么,以及它的作用是什么? 请解释一下事件循环在JavaScript中的工作原理。 请解释一下JavaScript中的Promise对象和async/await关键字是如何工作的,以及它们在处理异步操作中的优势? 请解释一下JavaScript中的箭头函数和普通函数的区别? 请解释一下JavaScript中的this关键字的用法和行为,以及在不同上下文中的值? 请解释一下JavaScript中的原型链和继承的工作原理? 你如何处理JavaScript中的异步操作,例如网络请求或定时器? 请解释一下JavaScript中的模块化编程的概念和实践,以及你常用的模块化方案是什么? 请解释一下JavaScript中的错误处理和异常捕获机制,以及如何使用try/catch/finally进行错误处理? 在编写高性能的JavaScript代码时,你通常会采取哪些优化措施?

js 中检查数组是否包含值的 5 种方法 有更新!

在 JavaScript 中,有多种方法可以检查数组是否包含项目。您始终可以使用for 循环或Array.indexOf()方法,但 ES6 添加了许多更有用的方法来搜索数组并轻松找到您要查找的内容。 Arrya.includes() 方法 检查数组值的最简单方法是使用include()方法,如下所示: let animals = ['🍎', '🍋', '🍊', '🍇', '🍍', '🍐'] animals.includes("?") // true animals.includes("?") // false 该函数返回一个布尔值,表示该值是否存在。 Arrya.indexOf() 方法 在需要查找的元素的确切位置的情况下,可以使用indexOf(elem)方法,该方法在指定的数组中查找elem并返回其第一次出现的索引,如果数组不包含elem则返回-1。 例如,我们可以在包含 grade 的数组中查找第一次出现的 grade: let grades = ["B", "D", "C", "A"] grades.indexOf("A") // 3 grades.indexO....

[ js ] 字符串中提取数字

强制类型转换 适用于要提取的数字在字符串的前端. let str = "1412.123abd" console.log(parseInt(str),parseFloat(str)); // 输出1412 1412.123 遍历拼接 缺点:获取所有的数字,即使是不需要的数字段也会被拼接. 这里是用parseInt(i)>=0判断是否为数字,若使用isNaN(),会把空字符串和空格当做0处理. let str="%1086143iluhugufu086"; let num=""; for(i of str){ if(parseInt(i)>=0){ //parseInt返回的是数字或者NAN,只要大于0,即使数字 num += i; } } console.log(num); // 1086143086 会拼接所以的数字 正则表达式 let str ="%1086143iluhugufu086"; let num= str.replace(/[^0-9]/ig,""); let numArr = str.match(/\d+/g); let decimalArr = st....

[ JSX ] 的语法规则,一文就够了

什么是JSX? 要想写jsx的语法,那么就得先了解jsx是什么,有什么用?借用百度的话: JSX是一种JavaScript的语法扩展,运用于React架构中,其格式比较像是模版语言,但事实上完全是在JavaScript内部实现的。元素是构成React应用的最小单位,JSX就是用来声明React当中的元素,React使用JSX来描述用户界面。 那么本质就出来了,JSX说白了就是js语法的一个扩展,是一个看起来很像 XML 的 JavaScript 语法扩展!我们也许不一定使用JSX,但是需要知道JSX有什么优点! JSX 执行更快,因为它在编译为 JavaScript 代码后进行了优化 它是类型安全的,在编译过程中就能发现错误 使用 JSX 编写模板更加简单快速 很是推荐在React中使用jsx代替常规的js,使用jsx来描述用户界面!总的来说啊,用React不使用jsx,就像吃方便面不撒调料包,木有灵魂🤓。我在第一次使用jsx时也是走了很多弯路,起初看着一个前端学弟在js里写了一句和js不想干的代码从此便入了jsx的坑! JSX语法规则 首先,我们就不去新建完整的React项目了,普....

JS获取当前节点的兄弟/父/子节点

JS获取当前节点的方式: 通过事件监听器获取当前节点: <button onclick="fun(this)"></button> function fun(obj){ // obj就是当前节点 //可以通过.父节点/子节点的方式来获取节点。 obj.nextSiling; } 1.getElementById()----通过ID获取 2.getElementsByTagName()--通过标签名获取 3.getElementsByClassName()--通过class(类名)获取 4.querySelector()----()号里可以根据css选择器的形式获取,获取第一个 5.querySelectorAll()--同上,获取所有""里的内容,返回的是一个“伪数组” 6.getElementsByName()---通过name属性来获取表单元素,一般也只用于表单元素 示例: <ul> <li>li1</li> <li id="li2">li2</li> <li class="li3">.....

接口是否支持跨域测试

Ajax方式 var xhr = new XMLHttpRequest(); xhr.open('GET', 'http://localhost:8888/api/kernels'); xhr.send(null); xhr.onload = function(e) { var xhr = e.target; console.log(xhr.responseText); } Fetch方式 fetch(http://localhost:8888/api/kernels?${new Date().getTime()}, {method: 'get'}).then(res => console.log(res))

对Promise中的resolve,reject,catch的理解

.then()的时候到底是在then什么… 首先要理解…Promise是一个对象,有then()方法的对象 then()的入参是一个函数,通常在promise链中,入参是 一个返回promise的函数 ,这句话好像有点拗口,就是说入参是一个函数,这个函数会return一个promise对象。 如何破坏promise链 如果有这样一个promise链: p1().then(p2).then(p3) .then((data) => { console.log('data: ' + data); }) .catch((error) => { console.log('error: ' + error); }); function p1() { let p1 = new Promise((resolve, reject) => { console.log('p1 resolved'); resolve(123); }); return p1; } function p2() { let p2 = new Promise((resolve, reject) => { co....

js 将字符串保存成txt文件

function exportRaw(name, data) { var urlObject = window.URL || window.webkitURL || window; var export_blob = new Blob([data]); var save_link = document.createElementNS("http://www.w3.org/1999/xhtml", "a") save_link.href = urlObject.createObjectURL(export_blob); save_link.download = name; var ev = document.createEvent("MouseEvents"); ev.initMouseEvent("click", true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); save_link.dispatchEvent(ev); }

js正则表达式

获取字符串中间的内容 'cin>>123123;'.match(/cin>>(\S*);/); 输出: 123123

js异步请求fetch

Fetch上传文件(不需要设置headers) 实例代码:其它参数可不加把文件放在body中就行 // 上传文件 function uploadFile(f, name) { const fd = new FormData() fd.append('file', f, name) fetch('/jeecg-boot/leading/upload', { method: 'POST', body: fd, cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached credentials: 'same-origin', // include, same-origin, *omit mode: 'cors', // no-cors, cors, *same-origin redirect: 'follow', // manual, *follow, error referrer: 'no-referrer', // *client, no-referrer headers: { 'user-a....

前端和后台传值

fetch get请求: -有参数有值 =》 正常 -有参数没值 =〉 后台可能接到 undefined -没有参数 =》后台接收null

JS 的 URL 的编码或解码方法

URL的合法字符 URL的合法字符表示再浏览器的地址栏中不会被转义的字符,有两种: URL元字符:分号(;),逗号(’,’),斜杠(/),问号(?),冒号(:),at(@),&,等号(=),加号(+),美元符号($),井号(#) 语义字符:a-z,A-Z,0-9,连词号(-),下划线(_),点(.),感叹号(!),波浪线(~),星号(*),单引号(),圆括号(()`) 当输入的字符不符合以上的字符时,浏览器就会把该字符转义,规则:根据操作系统的默认编码,将每个字节转为百分号(%)加上两个大写的十六进制字母。 比如:当再浏览器地址栏中输入 www.baidu.com/q=你好时,会被转义成例如 www.baidu.com/q=%E6%98%A5%E8%8A%82类似的字符串,浏览器才会读取。 JavaScript的四个URL编码/解码方法: encodeURI 将元字符和语义字符之外的字符都进行转义,一般用于知道该URL只用于完整的URL时使用 encodeURIComponent 将除了语义字符之外的字符进行转义,包括元字符,因此,它的参数通常是URL的路径或参数值,而不是整个....

js 三种在浏览器储存数据的方法

三种本地存储方式 cookie 前言 网络早期最大的问题之一是如何管理状态。简而言之,服务器无法知道两个请求是否来自同一个浏览器。当时最简单的方法是在请求时,在页面中插入一些参数,并在下一个请求中传回参数。这需要使用包含参数的隐藏的表单,或者作为URL参数的一部分传递。这两个解决方案都手动操作,容易出错。cookie出现来解决这个问题。 作用 cookie是纯文本,没有可执行代码。存储数据,当用户访问了某个网站(网页)的时候,我们就可以通过cookie来向访问者电脑上存储数据,或者某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密) 如何工作 当网页要发http请求时,浏览器会先检查是否有相应的cookie,有则自动添加在request header中的cookie字段中。这些是浏览器自动帮我们做的,而且每一次http请求浏览器都会自动帮我们做。这个特点很重要,因为这关系到“什么样的数据适合存储在cookie中”。 存储在cookie中的数据,每次都会被浏览器自动放在http请求中,如果这些数据并不是每个请求都需要发给服务端的数据,浏览器这设置自....

js 中页面跳转的几种方式和区别

location.href常见的几种形式 self.location.href;//当前页面打开URL页面 window.location.href;//当前页面打开URL页面 this.location.href;//当前页面打开URL页面 location.href;// 当前页面打开URL页面 parent.location.href;//在父页面打开新页面 top.location.href;//在顶层页面打开新页面 注:①如果页面中自定义了frame,那么可将parent、self、top换为自定义frame的名称,效果是在frame窗口打开url地址。 ②此外,window.location.href=window.location.href;和window.location.Reload();都是刷新当前页面。区别在于是否有提交数据。当有提交数据时,window.location.Reload()会提示是否提交,window.location.href=window.location.href;则是向指定的url提交数据. ③用window.open()打开新页面 但是.....

js 将文本以文件的形式上传到服务器

let file; const properties = {type: 'text/plain'}, data = this.code; try { file = new File([data], "file.txt", properties); } catch (e) { file = new Blob(data, properties); } const formData = new FormData() formData.append('file', file, key) postAction(this.url.uploadUrl, formData).then(res => { if (res.success) { } });

js 数组操作

添加元素 push [].push("1") 添加单个元素 [].push(...['1','2','3']) 添加一个数组 元素获取 最简单的方法 Array[index] 获取最后一个 一、JavaScript pop() 方法 pop() 方法用于删除并返回数组的最后一个元素。 var arr = new Array("js","JavaScript","jQuery"); var end = arr.pop() console.log(end);//jQuery console.log(arr);//["js", "JavaScript"] 注意: pop() 方法将删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。 二、数组的 length 属性 var arr = new Array("js","JavaScript","jQuery"); var end = arr[arr.length-1] console.log(end);//jQuery 三....

JS数组/对象转字符串互转

JavaScript | 字符串转对象三种方法 JSON.Parse() 在这次使用 JSON.Parse()的时候报错,Unexpected token {in JSON at position 217362,经过查资料发现,类似的报错还挺多的,比如 Unexpected token < in JSON at position 0,比如 Unexpected token ' in JSON at position 1。 eval() eval()函数可以执行任何的 JavaScript 代码,所以其实蛮危险的,容易被插入恶意脚本 const jsonStr = '{name:"orange",age:18}' console.log(eval("(" + jsonStr + ")")) 使用函数 其原理就是通过拼接字符串,然后在 Function 创建一个匿名方法然后调用。 const jsonStr = '{name:"orange",age:18}' console.log(new Function("return " + jsonStr)) 对象转字符串 JSON.s......

js 面试题

JS 中一个方法在调用的时候写括号和不写括号有什么区别 以test()和test为例 1.无括号 test表示的函数指针,通俗的理解就是等待某个特定的位置后执行,而不是立马执行。这也是使用计时器中正确的写法。 2.有括号 test()表示执行方法test,此时计时器的作用就没有了,由于加了括号,就相当于调用了一个方法,而不是启动了一个计时器。 JavaScript中属性和方法名称的下划线前缀有什么作用 约定而已

JSZip库的简单使用

官方网址: JSZip jszip是一个用于创建、读取和编辑.zip文件的JavaScript库,且API的使用也很简单。 安装 npm install jszip 需用到jszip/dist下的jszip.min.js文件以及jszip/vendor下的FileSaver.js文件 引入 将js文件放到jszip文件夹下 <script src="jszip/jszip.min.js"></script> <script src="jszip/FileSaver.js"></script>><!--用于文件下载--> 官方示例 创建 var zip = new JSZip(); zip.file("Hello.txt", "Hello World\n"); var img = zip.folder("images"); img.file("smile.gif", imgData, {base64: true}); zip.generateAsync({type:"blob"}) .then(function(co.......

Js 排序

js自带了排序的方法: var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.sort(); // 对 fruits 中的元素进行排序 fruits.reverse(); // 反转元素顺序 但是这样肯定不能满足我们的所有需求,比如在数字排序的时候只拍第一位数 let points = ['8.py','0.py','9.py','1.py','2.py']; points.sort((a, b) => parseInt(a) - parseInt(b)); // 正序 反序同理