javascript
文章平均质量分 68
此专栏分享一些js的知识
yjwlike
游泳的小前端
展开
-
js中的Class类详解
javascript中的类,包括静态属性私有属性继承等等原创 2022-06-19 15:31:06 · 31998 阅读 · 11 评论 -
三元运算符居然还能链式调用,你知道了吗
目录概述惊醒总结概述众所周知, 三元运算符一直是js中判断逻辑常用的手段, 下处的伪代码就是我在项目中常用的形式, condition ? true behavior : false behavior , 这么写确实没什么问题, 但是他只能判断两种情况, 满足 condition 的情况 和 不满足 condition 的情况, 顿时就不香了.... const heigth = 180 heigth > 180 ? console.log('高..原创 2022-05-27 17:54:20 · 531 阅读 · 1 评论 -
使用 Object.fromEntries 将url的参数转成对象
概述:url参数转对象的方式有很多种, 本文主要介绍一下如何使用Object.fromEntries 转url参数一看究竟Object.fromEntries 这玩意是啥啊? 不会就找mdn, 我已经看了.Object.fromEntries 用于将key/value的列表转成一个对象, 一般是Array和Map, 可迭代对象可以不过要注意 值必须是key/value列表, 说白了就是元素必须是个数组[key, value]这种形式的Object.fromEntries() -.原创 2022-05-26 18:30:10 · 729 阅读 · 0 评论 -
javascript 中 逻辑与 和 空值合并运算符 和 逻辑或 的区别
目录概述阅前一览||返回值常见判断??返回值常见判断&&返回值优先级总结标题不让加符号..........概述|| 、 ??、&&运算符 一般都用在条件判断中, 他们可以用在判断条件也可以是一个单独的语句, 返回值也依据具体操作数阅前一览 const fn = (data) => console.log(data); "" || fn(1); "2" &&a...原创 2022-04-29 14:59:36 · 888 阅读 · 0 评论 -
js内置对象 BigInt
概述BigInt是javascript中的内置对象, 一般用来表示大数 (大于2^53 - 1的整数), 当遇到大数操作时应该想到BigInt, 他和number具有相似的行为, 同样可以用来加减乘除比较等等场景数字的最大安全值 :Number.MAX_SAFE_INTEGER 也就是2^53 - 1我们来看看操作数字的最大安全值会发生什么 ? const n1 = Number.MAX_SAFE_INTEGER * 10; console.log(Numbe..原创 2022-04-22 18:18:34 · 2241 阅读 · 0 评论 -
异步函数之 -- async await
概念异步函数就是通过 async 修饰的函数, async await 是ES8规范新增的, 这两个关键字的作用就是让我们的异步代码更加简洁, 接下来就来玩一玩.asyncasync 关键字用来修饰异步函数, 放在异步函数前即可, 通过async修饰的函数他的返回值必定是一个promise对象, 如果返回值不是promise对象内部都会经过Promise,reslove()将结果包装promise对象返回, async function sync1() { ret原创 2022-03-29 21:06:15 · 1588 阅读 · 0 评论 -
javascript中的Set数据结构
1. 概述set 是一个构造函数, 通过new关键字来创建实例, 用来保存唯一的值2. 创建setnew 他就完事了, 但是请注意传入的参数必须是可迭代的对象或者迭代器, 如果传入的迭代对象中包含重复的值, 那么set将会自动去除重复项 const arr = ['a', 'b', 'c', 'a'] const set1 = new Set(arr.values()); const set2 = new Set(arr.keys()); const se原创 2022-03-18 16:45:58 · 2171 阅读 · 0 评论 -
深入理解Map数据结构(二) 之性能对比
map object 插入性能 高 低 删除性能 高 低 查找速度 内存占用 少 多 插入性能简单测一测, 如果哪些地方不对请大佬指正针对数值,浮点数,字符串,symbol类型为键的双方插入性能测试 const mapTest = (key) => { const map = new Map() const start = +new Date() for ...原创 2022-01-18 09:52:08 · 572 阅读 · 0 评论 -
深入理解Map数据结构(一) 之初识Map
前言: 在ES6之前, 存储键/值结构时采用的是 Object 对象存储的形式, 且键只能是字符串数字, ES6推出的 Symbol 出现之后, 键也可以是Symbol 类型 . 同时ES6也推出了 Map 新型数据结构, 具备存储键/值形式的能力, 但键的类型就远远不受限制了, 可以是任意类型, 但两者的区别不仅如此, 在操作大量键/值数据时, 双方有着不同的优劣 . 由于 Map 的很多功能特性 Object 都能实现, 所以这也是 Map 略少的原因 .创建 Map 数据通过 ne...原创 2022-01-11 20:37:16 · 1290 阅读 · 0 评论 -
javascript - 数组常用方法总结(三)
还是接着上一篇...七. 获取数组索引indexOf : 返回元素在数组中的索引语法: arr.indexOf( target 目标元素, start 开始查找的位置正向查找)返回查找到元素的索引, 若没有查找到返回-1 const arr = [1, 3, 4, 55, 2, 9, 1] const threeIndex = arr.indexOf(3) // 1 const oneIndex = arr.indexOf(1, 3) // 6 .原创 2022-01-09 15:36:33 · 550 阅读 · 0 评论 -
javascript - 数组常用方法总结(二)
接着上一篇继续..四. 转换方法1. toLocaleStringtoLocaleString用于将值转为字符串输出, 数组的toLocaleString方法将数组中的每一项调用其toLocaleString方法转成字符串最后以逗号拼接返回 const arr = [1, 'a', 2, { toLocaleString: () => { return 123 } }] console.log(arr.toLocaleSt原创 2021-12-29 21:27:35 · 3725 阅读 · 0 评论 -
javascript - 数组常用方法总结(一)
数组常用方法可以查看MDN文档里面很全https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array原创 2021-12-28 21:57:44 · 467 阅读 · 0 评论 -
作用域 --- Scope
概念 : 变量起作用的范围在es5之前 , 作用域分为window全局(global )作用域 --- script(脚本)作用域 --- script 和 函数(局部)作用域在es6之后 , 变量有了块级(block)作用域, 一个花括号就代表一个块级作用域, let和const声明的变量也是块级作用域 let c = 3 // 此时我使用let 关键字声明了一个c变量 可以看做 {let c = 3.......} if (true) { let d ...原创 2021-12-22 00:28:01 · 347 阅读 · 0 评论 -
js的垃圾回收机制
什么是js垃圾回收机制 ?js的垃圾回收机制就是定时回收闲置资源的一种机制 , 每隔一段时间, 执行环境都会清理内存中一些没用的变量释放它所占用的内存 .核心思想 : 找到没用的变量, 释放它们的内存两种主要的回收策略标记清除 引用计数1. 标记清除标记清除是现在最常使用的垃圾回收策略, 使用标记清除作为垃圾回收机制的浏览器会在垃圾回收程序进行时会做如下几步 :标记内存中所有的变量 把在上下文(全局作用域, 脚本作用域)中声明的变量,以及在全局被引用的变量的标记删除掉, 剩..原创 2021-12-19 21:51:35 · 3621 阅读 · 0 评论 -
js中的语句(二)
接着上一篇说一下以下四个语句 :for of 语句 break , continue 语句 with 语句 switch 语句1. for of 语句这个语句用来遍历可迭代的对象元素, 常见可迭代对象有数组,字符串 .在使用 for of 语句来遍历对象时, 会调用对象中以[Symbol.iterator]为键的函数 ,[Symbol.iterator]函数 返回一个迭代器对象, 并通过调用其 next() 方法陆续返回值 const arr = [1, 2, 3, 4,..原创 2021-12-19 17:25:16 · 204 阅读 · 0 评论 -
js中的语句(一)
今天和朋友们喝酒吃饭聊了聊, 确实感悟颇深, 一个人始终要有一个自己的方向, 人生的道路还很长很长, 挫折和磨难导致的失败并不能决定你的任何东西, 反而是你成长道路的一个阶梯, 他会促进你督促你不断前进, 最终走向一条适合你的路.说的有点偏题了, 接下来回归正题. 这一篇主要说一下js中的语句.什么是语句?我也不能很好的给他设定一个概念, 我把他理解为场景,不同的语句代表不同的场景.常见的语句 :if 语句 do while 语句 while 语句 for 语句 for in..原创 2021-12-19 03:21:20 · 586 阅读 · 0 评论 -
js的操作符详解(三)
还是接着上一篇继续, 本篇主要说一下几个操作符 : 相等操作符(==,!=) 全等操作符(===,!==) 条件操作符( 表达式 ? 成立的逻辑 : 不成立的逻辑) 赋值操作符(=) 逗号操作符(,) 1. 相等操作符顾名思义, 这玩意就是用来判断两个值或者变量是否相等(值一样视为相等)2. 全等操作符全等操作符用来判断两个或两个变量是否全等, 全等的条件为值一样,数据类型也一样, 任意条件不满足视为不全等, 接下来举个例子演示一哈.原创 2021-12-17 20:04:15 · 448 阅读 · 0 评论 -
js的操作符详解(二)
继续上一篇哈, 这一篇主要说一下以下几个操作符 : 取余操作符(%), 指数操作符(**), 布尔操作符(!), 逻辑与 (&&) 逻辑或 (||) 关系操作符 (>, <,>=,<=) 1. 取余操作符 %符号是% 这个操作符可以求得两操作数相除的余数 // 操作数是数字的话正常进行运算 // 如果操作数是其他一些比较狗的值,则会先调用用 Number 将其转成数字进行运算原创 2021-12-16 21:07:25 · 529 阅读 · 0 评论 -
js的操作符详解(一)
1. 概念操作符就是用来进行数据运算的符号,类似又不完全等同于数学的运算符2. 常见的操作符都有哪些? 递增递减操作符(++, -- ), 加减乘除操作符 (+,-,*,/), 取余操作符(%), 指数操作符(**), 布尔操作符(!), 逻辑与 (&&) 逻辑或 (||) 关系操作符 (>, <,>=,<=) 相等操作符(==,!=) 全等操作符(==原创 2021-12-15 22:08:20 · 1052 阅读 · 0 评论 -
对象的创建及属性介绍
对象是复杂数据类型, 是一组数据和功能的集合 .定义对象的几种方式1. 通过 new 构造函数创建实例(1)传入参数 传入简单数据类型会输出该类型的实例 传入复杂数据类型直接输出 console.log(new Object('a')); // String{'a'} console.log(new Object(1)); // Number{1} console.log(new Object({ a: 1 })); // {a: 1} cons...原创 2021-12-15 09:21:17 · 1215 阅读 · 0 评论 -
js 简单数据类型
数据类型简单数据类型 : Undefined , Null , Boolean, Number, String, SymbolUndefined 类型只有一个值 undefined , 变量声明未赋值默认取undefinedNull 类型只有一个值 null , null表示一个空对象指针console.log(typeof null === 'object'); // trueconsole.log(null == undefined); // trueBoolean原创 2021-12-14 09:37:17 · 179 阅读 · 0 评论 -
js 中 var let const 的区别
变量var 关键字 : 省略 var 操作符可以创建全局变量 ( 不推荐 ) 变量提升 用 var 声明的变量会提升到当前作用域的最顶端 重复声明的变量会做合并 可以重复声明 全局声明的变量挂载到 window上 for 循环 使用 var 声明迭代变量 会渗透到外部 let 关键字 : let 关键字 声明的变量是块作用域 不可以重复声明 暂时性死区 -- 在let声明之前的执行瞬间被称为暂时性死区 全局声明的变量不原创 2021-12-14 09:35:43 · 328 阅读 · 1 评论 -
javascript 的script标签
script元素script标签的作用就是将js插入到HTML属性表示不同的场景 async defer src type crossorigin charset 使用script标签的注意点 不要出现在字符串中出现 </script> , 浏览器会当成结束标签解析 解决方案 : 转义 <\/script> script的标签位置放在<head></head>标签中, 就意味原创 2021-12-14 09:23:09 · 5442 阅读 · 0 评论 -
js中的symbol详解
Symbol 类型symbol的实例是唯一的不可变的, 用于确保对象的属性不重复使用方式 : 调用 Symbol( 标识 ) 函数 返回一个符号 const a = Symbol('a'); const obj = { [a]: 1 }; console.log(obj); // {Symbol(a): 1}Symbol() 函数不可以 new符号代表唯一的值, 但是我就想用一个符号呢 ?通过 Symbol.for () 创建一个全局符...原创 2021-12-20 14:25:02 · 21674 阅读 · 1 评论 -
Promise 对象
promise对象是异步编程的一种解决方案,它的出现解决了回调地狱的问题如果有这么一个需求,一个异步操作需要依赖上一次异步操作的结果怎么做?传统的解决方案: 回调地狱 / 恶魔金字塔 function getInfo () { $.ajax({ method: 'GET', url: 'http://115.159.87.220:4000/books', success (res) { console.log...原创 2021-12-22 20:14:16 · 857 阅读 · 0 评论 -
javascript - 实现数组扁平化的四种方式
概念: 数组扁平化就是数组内的嵌套数组展开放置在原位置 .简单说一下个人对实现数组扁平化的三种方式以及使用场景Array.prototype.flat() 递归 递归 +Array.prototype.flat()1.Array.prototype.flat()使用场景: 知道层级最深的嵌套数组 .举个例子说一下: 比如有一个数组, 数组中存在着不同层级的嵌套数组, 比如说第二项嵌套了两层数组, 第五项嵌套了五层数组, 此时使用 flat(5) 即可实现扁平化 ....原创 2021-12-23 19:33:57 · 421 阅读 · 1 评论 -
为什么简单数据类型字符串具备length属性及方法
原创 2021-12-28 20:30:29 · 793 阅读 · 0 评论