
js语法
昵称叫铃风的小前端
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
接口返回html字符串,含\n换行符,前端识别\n
v-html不能识别\n方法1:正则匹配,将\n替换为方法2:v-html标签添加css属性white-space: pre-wrap原创 2021-01-11 14:09:37 · 2496 阅读 · 0 评论 -
函数的四种调用模式
原创 2019-12-05 11:02:18 · 111 阅读 · 0 评论 -
Array.prototype.slice.call()
猜一下slice的内部实现,如下: 附个转成数组的通用函数:原创 2019-10-21 16:39:22 · 97 阅读 · 0 评论 -
Array:截取
1.array.slice(start,end)用法与string.slice()类似不改变原数组return:截取的新数组param:两个参数都是索引;两个参数都可以是负数,负数-n表示从尾部向前数第n个字符2.array.splice(index, deleteCount, replaceEle )删除、增加或者替换数组中某几项该方法会改变原始数组return: 被替换的元素组...原创 2019-10-12 18:02:39 · 1476 阅读 · 0 评论 -
字符串截取:slice substring substr
1.string.slice(start,end)不改变原字符串return:截取的字符串param:两个参数都是索引;两个参数都可以是负数,负数-n表示从尾部向前数第n个字符1)主要语法let str = '123456789'// 用法1str.slice(0, 3) // 123// 用法2str.slice(0) // 123456789// 用法3str.slice...原创 2019-10-12 10:13:05 · 231 阅读 · 0 评论 -
前端url编码
为什么要编码: Http协议中参数的传输是"key=value"这种简直对形式的,如果要传多个参数就需要用“&”符号对键值对进行分割如"?name1=value1&name2=value2",这样在服务端在收到这种字符串的时候,会用“&”分割出每一个参数,然后再用“=”来分割出参数值。 针对“name1=value1&name2=value2”我们来说一下客...原创 2019-06-03 11:29:19 · 809 阅读 · 0 评论 -
base64加密url参数
base64编码函数btoa(),解码函数atob()但它只支持ASCII,如果你调用btoa(“中文”)会报错,所以一般先使用encodeURIComponent()对url进行编码,再加密vue中使用query传参:编码函数:encrypt64 (obj) { // 判断参数是对象 if (Object.prototype.toString.call(obj) !==...原创 2019-06-03 10:59:34 · 1566 阅读 · 0 评论 -
ES6新增数组方法
1.includes()[1, 2, 3].includes(2)indexof要去比较是否不等于-1,表达起来不够直观;而且它内部使用严格相等运算符(===)进行判断,这会导致NaN不等于NaN4.扩展运算符console.log(...[1, 2, 3]) // // 1 2 3主要用于函数调用:// ES5 的写法Math.max.apply(null, [14, 3, 7...原创 2019-06-13 10:18:09 · 491 阅读 · 0 评论 -
ES6新增对象的方法
1.扩展运算符对象的扩展运算符(…)用于取出参数对象的所有可遍历属性,拷贝到当前对象之中。①等于Object.assign()let z = { a: 3, b: 4 }let n = { ...z } // { a: 3, b: 4 }②合并多个对象let ab = { ...a, ...b }③解构赋值let { x, y, ...z } = { x: 1, y: 2, a...原创 2019-06-13 10:02:40 · 492 阅读 · 0 评论 -
前端js十六进制格式的颜色和rgba格式颜色互转
一.十六进制转RGBA/** @param hex 例如:"#23ff45"* @param opacity 透明度 { string || number }* @returns { string }*/function hexToRgba(hex, opacity) { return "rgba(" + parseInt("0x" + hex.slice(1, 3)) + ","...原创 2019-06-12 17:10:55 · 4447 阅读 · 1 评论 -
数组方法reduce
arr.reduce(function(prev, cur, index, arr){ ...}, init)arr 表示将要处理的原数组;prev 表示上一次调用回调时的返回值,或者初始值 init;cur 表示当前正在处理的数组元素;index 表示当前正在处理的数组元素的索引,若提供 init 值,则索引为0,否则索引为1;init 表示初始值。1.计算一维数组元素之和...原创 2019-06-12 16:54:18 · 871 阅读 · 0 评论 -
对象的可枚举性
对象的每个属性都有一个描述对象(Descriptor),用来控制该属性的行为。Object.getOwnPropertyDescriptor(obj, key)方法可以获取该属性的描述对象。let obj = { foo: 123}Object.getOwnPropertyDescriptor(obj, 'foo')// {// value: 123,// writable: t...原创 2019-06-12 16:26:44 · 348 阅读 · 0 评论 -
数组去重
两种数组:1.一维简单数组;2.数组对象,根据某个属性去重一.一维简单数组去重1.双重循环(最繁琐版本,和2类似,但多一层循环,不推荐)let arr = [1, 1, 2] // 原数组let newArr = []for (let i = 0; i < arr.length; i++) { let flag = false for (let j = 0; j < ...原创 2019-04-23 14:42:13 · 133 阅读 · 0 评论 -
浅拷贝和拷贝的概念和实现
一.从简单类型和复杂类型数据的存储来认识深拷贝二.区分常用操作是深拷贝还是浅拷贝:1.= 赋值不论是简单的对象或数组还是复杂的对象或数组,都是浅拷贝以简单数组示例:let arr = [1, 2, 3]let newArr = arrnewArr[0] = 0console.log(arr[0]) // 02.循环赋值简单的对象或数组可以实现深拷贝,复杂的对象或数组,内部的...原创 2019-04-23 16:14:25 · 187 阅读 · 0 评论 -
通过async await和Promise解决多个ajax异步请求之间存在依赖的情况
异步ajax请求之间可能会有依赖情况,本篇以定时器模拟请求,总结了几种通过async await和Promise将异步转为同步的方案// get1请求、get2请求function get1 () { return new Promise((resolve, reject) => { setTimeout(() => { num1 += 1 co...原创 2019-04-23 18:57:55 · 4306 阅读 · 0 评论 -
axios下载文件(responseType:‘blob‘),判断是下载成功返回了二进制流还是失败返回了对象(比如服务端拒绝,返回对象,前端如果依然按二进制流处理会导致下载undefined文件)
描述:当下载文件时,axios配置responseType: ‘blob’,此时后台返回的数据会被强制转为blob类型;如果后台返回代表失败的data,前端也无法得知,依然会下载得到名为undefined的文件。解决:将blob转回json格式,通过code判断是否下载成功主要技术点:FileReaderaxios配置:axios({ method: ‘post’, baseUR...原创 2019-05-10 17:23:08 · 32639 阅读 · 7 评论 -
sort()排序
用法:Array.sort(function () {})1.不传参数,按照元素的字符编码进行升序排序(注意:数字也是)let arr = [1, 2, 10, 'b', 'a']arr.sort() // [1, 10, 2, 'a', 'b'] // 数组小于字母2.传参(字母元素和不传参一致,数字不再按字符编码进行比较)let arr = [1, 2, 10]arr.sort(...原创 2019-06-05 17:45:27 · 600 阅读 · 0 评论 -
前端js处理后台返回的含换行符的字符串
network里面显示:enter键图形,下左转弯箭头console.log字符串显示:换行transformLineBreak (str) { if (!str) { return [] } let arr = str.split(/\n/g) if (!arr[arr.length]) { // 如果最后一行后面有换行符,删除数组最后一项空字符串 arr.p...原创 2019-06-12 15:42:45 · 8814 阅读 · 0 评论 -
js数组和对象的循环方法和注意点
注意点:是否是ES6语法对象方法是否包含不可枚举属性、是否包含非自身属性(继承属性)一.既可以遍历数组也可以遍历对象的方法1.for in 循环对象和数组let obj = { name:'zhou', age:'**'}for (let i in obj){ console.log(i, obj[i])}二.遍历对象的方法1.Object.keys()(ES6)...原创 2019-06-12 16:02:20 · 1248 阅读 · 0 评论 -
判断对象是否包含某属性
1.[‘key’]或者.keyobj[key]obj.key缺点:无法判断value为undefined的键值对2.inkey in obj缺点:无法区分是否是私有属性3.hasOwnProperty()obj.hasOwnProperty(key)只判断私有属性...原创 2019-06-12 16:14:26 · 659 阅读 · 0 评论