
JavaScript
文章平均质量分 57
JavaScript是一种具有函数优先的轻量级,解释型或即时编译型的高级编程语言。虽然它是作为开发Web页面的脚本语言而出名的,但是它也被用到了很多非浏览器环境中,,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式风格。
SmallTeddy
('b' + 'a' + + 'a' + 'a').toLowerCase()
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
前端文件下载实现方案,Blob对象为你实现任意文件下载
本文主要介绍了如何使用Blob对象在前端实现文件下载的功能。文中首先介绍了什么是Blob对象,它表示一个二进制大型对象,可以用来表示文件或二进制数据。然后详细讲解了几种生成Blob对象的方式,以及如何通过方法生成一个对象URL,设置到a 标签的href属性实现文件下载。文末还提到了一些优化下载体验的方法,比如设置download属性、使用click方法触发下载等。掌握Blob的使用可以实现强大的前端文件下载、上传、二进制数据处理功能,是很重要的能力。本文内容通俗易懂,可以帮助读者快速理解Blob的用法。原创 2023-11-07 14:34:33 · 2410 阅读 · 2 评论 -
深入浅出搞懂JavaScript中的变量提升和函数声明提升
什么是变量提升?变量提升是当栈内存作用域形成时,JS代码执行前,浏览器会将带有var, function关键字的变量提前进行声明 declare (值默认就是 undefined),定义 defined (就是赋值操作),这种预先处理的机制就叫做变量提升机制也叫预定义。在变量提升阶段:带 var 的只声明还没有被定义,带 function 的已经声明和定义。所以在代码执行前有带 var 的就提前声明。原创 2023-05-17 01:42:25 · 2121 阅读 · 1 评论 -
Object.entries()方法的使用和实现
1、定义Object.entries()方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 for...in 循环遍历该对象时返回的顺序一致(区别在于 for-in 循环还会枚举原型链中的属性)。语法Object.entries(obj)参数obj 可以返回其可枚举属性的键值对的对象。返回值给定对象自身可枚举属性的键值对数组。描述Object.entries()返回一个数组,其元素是与直接在object上找到的可枚举属性键值对相对应的数组。属性的顺序与通过手动循环对象的属性值所原创 2022-04-26 09:54:26 · 4363 阅读 · 1 评论 -
前端针对JSON格式的一些数据格式化处理
1、前端需求说明因为前端有时会展示一些json的代码格式,或者处理json变为javascript对象,因此在这里整理一些方法对json数据格式进行处理。2、JSON转对象1.代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta原创 2022-04-15 10:10:21 · 4566 阅读 · 1 评论 -
JavaScript通过枚举实现优化if...else的实现办法
1、问题场景function getDeploy(state) { let result = ''; if(state == 'NOTSTARTED') { result = '未开始' } else if(state == 'LOADING') { result = '进行中' } else if(state == 'NOTCOMPLETED') { result = '未完成' } else if(state ==原创 2022-04-11 11:29:57 · 1548 阅读 · 0 评论 -
个人的第一个Chrome插件ColorConversion
工具的用途就是解决需求,个人开发习惯性使用PGB的颜色格式,而个人使用的取色软件为Snipaste,取色的格式是RGB的颜色,并且格式中逗号后有一个空格,所以开发了一个转换工具。原创 2021-12-09 11:09:44 · 1046 阅读 · 0 评论 -
调整数据结构(非递归方式),从一层数据结构到三层数据结构
1、一层数据结构示例:[{ name: '', id: '', status: '' }],其中name对应itemText,id对应itemStyle,status对应isDefault,isShow不要。 let shopLabelItemList = [ { isDefault: "0", isShow: "1", itemStyle: "1000763785220278474", itemText: "全部标签" }, { isDefault: "1", isSh原创 2021-05-12 09:36:02 · 1629 阅读 · 0 评论 -
算法题中常用的JavaScript方法笔记(持续更新)
一、数字类型1、数字类型转字符串类型1.1 加号let num = 11;num+'' // '11'1.2 toString()方法let num = 11;num.toString() // '11'1.3 String()方法let num = 11;String(num) // '11'2 数字类型转布尔类型let num = 11;!!num // true!num // false注意当num原创 2021-05-12 09:12:26 · 2033 阅读 · 6 评论 -
JavaScript中,一行代码对数组能做什么?(持续更新)
1、添加元素1.1 从后添加,push方法let arr = [1, 2, 3];arr.push(4); // [1, 2, 3, 4]1.1 从前添加,unShift方法1、扁平化1.1 flat方法flat()方法创建一个新数组,传入Infinity参数,所有子数组元素都以递归方式连接到该数组中,直到达到指定的深度为止。const arr = [1, 2, [3, 4, [5, 6, [7, 8, [9, [ 10, 11, 12, [ 13原创 2021-04-14 15:19:06 · 1459 阅读 · 1 评论 -
纯数学方法解决斐波那契数列
查找斐波纳契数列中第 N 个数。所谓的斐波纳契数列是指:前2个数是 0 和 1 。第 i 个数是第 i-1 个数和第i-2 个数的和。斐波纳契数列的前10个数字是:0, 1, 1, 2, 3, 5, 8, 13, 21, 34 …/** * @param n: an integer * @return: an ineger f(n) */const fibonacci = function (n) { n = n-1; var a = (1+Math.sqrt(5))/2原创 2021-03-08 14:44:08 · 1970 阅读 · 0 评论 -
JavaScript console.log()技巧与窍门
每个人偶尔都会使用JavaScript控制台进行日志记录或调试。但是控制台对象比得多console.log()。计算的属性名称ES6计算的属性名称特别有用,因为它们可以通过在变量周围添加一对大括号来帮助您识别已记录的变量。const x = 1, y = 2, z = 3;console.log({x, y, z}); // {x: 1, y: 2, z: 3}console.trace()console.trace()的工作原理与完全相同console.log(),但它也输出整个堆栈跟踪,原创 2021-03-04 11:05:20 · 2471 阅读 · 1 评论 -
关于parseInt(x,y)的结果展示的问题
当 y 不写的时候,默认是 10当x 和 y 都存在的时候,在运行之前会先 x.toString() ,变成字符串后再和基数 y 解析当 x 中的第一个字符比 y 更大或相等的时候,会直接返回 NaN当 x 中的字符有比 y 更大或者相等的字符时候,遇到这个字符就停止解析。比如 parseInt(26,5)=2;当 x 中的字符都比 y 小,则进行进制的转换,x 的字符串为 'abc' ,a*y^2+b*y^1+c*y^0 比如:parseInt(234,5)=69,parseInt(273,.原创 2020-11-16 10:10:37 · 1339 阅读 · 0 评论 -
ES6实现并集、交集和差集的方法
let a = new Set([1, 2, 3]);let b = new Set([4, 3, 2]);1、并集(Union)let union = new Set([...a, ...b]);// Set { 1, 2, 3, 4 }2、交集(Intersect)let intersect = new Set([...a].filter(x => b.has(x)));// Set { 2, 3 }3、差集(Difference)let difference = new原创 2020-11-10 17:08:29 · 1407 阅读 · 0 评论 -
JS对象中属性名用变量表示
这里是element-ui定义的表单数据:ruleForm: any = { unit: '', app_type: '', app_sub_type: '', container_type: '', caas_team: '', namespace: '', service_name: '', version: '', container: '', deploy_comp: '', deploy_network: '原创 2020-11-10 16:12:14 · 3043 阅读 · 2 评论 -
Looping over arrays ——遍历数组
There’s a few methods for looping over arrays in Javascript. We’ll start with the classical ones and move towards additions made to the standard.有几种方法可用于遍历Javascript中的数组。我们将从经典的开始,逐步向标准中添加。whilelet index = 0;const array = [1,2,3,4,5,6];while (index &原创 2020-09-09 16:12:39 · 2598 阅读 · 0 评论 -
Creating immutable objects in native JavaScript —— 在原生JavaScript中创建不可变对象
Javascript it’s a flexible language, you can redefine anything. But when projects get complex we find problems with mutable data structures. With the latest versions of JavaScript this situation changed. Now it’s possible to create immutable objects. I’ll原创 2020-09-09 16:03:26 · 3504 阅读 · 0 评论 -
JS中>>和<<运算
>> 运算代表右移15的二进制:0000 1111 15>>1就表示:0000 0111 // 等于715>>2就表示:0000 0011 // 等于3<<运算代表左移1的二进制:0000 00011<<3就表示:0000 0100 // 等于1*2³=82的二进制:0000 00102<<3就表示:0001 0000 // 等于2*2³=16...原创 2020-08-18 17:18:12 · 5037 阅读 · 2 评论 -
算法题中常用的JS数据处理方式
1、数字转字符串console.log(String(11)) // "11"console.log(11.toString()) // "11"2、进制转化// 转成k进制hexConversion=(n,k)=>n.toString(k)hexConversion=(11,2) // "1011"// 有时会出现科学计数法,所以要做进一步数据处理hexConversion(30,16) // "1e"hexConversion=(n,k)=>n.t原创 2020-08-06 10:04:09 · 2964 阅读 · 0 评论 -
LintCode前十题中JavaScript的题目解析
领扣官网打对号的为JS可以做的题目,其他的只能用C、C++、Java或Python等后端语言去写。1、A + B 问题当两个数不同时,a + b = (a ^ 2 - b ^ 2)/(a - b);当两个数相同时,a + b = 2 * a 或者 2 * b;const aplusb = function (a, b) { if(a === b) return 2 * a else return (Math.pow(a,2)-Math.pow(b,2)) / (a-b)}原创 2020-08-03 14:58:20 · 2553 阅读 · 0 评论 -
JavaScript排序算法专栏(JS十大排序算法详解)
一、冒泡排序1、Explanation And Steps(解释的步骤)冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。作为最简单的排序算法之一,冒泡排序给我的感觉就像 Abandon 在单词书里出现的感觉一样,每次都在第一页第一位,所以最熟悉。冒泡排序还有一种优化算原创 2020-07-27 15:55:45 · 2710 阅读 · 1 评论 -
JS实现随机生成指定位数的随机字符串
封装randomString()函数:function randomString(code) { let len = code let $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678' let maxLen = $chars.length let pwd = '' for (let i = 0; i < len; i++) { pwd += $chars原创 2020-06-05 09:46:12 · 4142 阅读 · 1 评论 -
怎么利用AES进行前端的数据加密
npm install crypto-js// 安装之后看到node_modules目录直接放到public目录下在utils目录下新建文件crypto.js利用AES实现加密和解密的实现:// 导入包crypto-jsimport CryptoJS from 'crypto-js';// 导入trim方法import { trim } from './utils';// 秘钥const ENC_KEY: string = 'h3881jiu2e0yz3e8pspu55wxgvxajx原创 2020-06-05 09:34:14 · 3039 阅读 · 0 评论 -
关于JavaScript中的Object.values()的用法
Object.values()方法返回一个给定对象自身的所有可枚举属性值的数组,值的顺序与使用for...in循环的顺序相同 ( 区别在于 for-in 循环枚举原型链中的属性 )。原创 2020-06-16 10:21:29 · 41065 阅读 · 0 评论