JavaScript
前端杨小白
这个作者很懒,什么都没留下…
展开
-
Date类型的操作方法
判断字符串是否为时间格式function isDate(str){ // 是时间类型str instanceof Date if(isNaN(str)&&!isNaN(Date.parse(str))){ return true; }else{ return false; }};console.log(isDate('1980-10-1 2...原创 2020-04-26 15:54:50 · 228 阅读 · 0 评论 -
字符串类型的操作方法
去除字符串中的后几个字符var str = "123456789";var strSlice = str.slice(0,-3) //从第一个字符截取到倒数第四个字符,结果为“123456”原创 2020-03-19 16:30:41 · 156 阅读 · 0 评论 -
数字类型操作方法
JS获取number类型长度方法一:调用toString方法转为字符串后取长度var num = 123;alert(num.toString().length);方法二:隐式转字符串后取长度var num = 123;alert((num + ‘’).length)JavaScript中string转换成numbervar a = " 42";var b = " 42...原创 2020-01-19 13:59:39 · 264 阅读 · 0 评论 -
对象操作方法
遍历对象form:{ number:0,//默认传0为查询全部模型类别},getData(){ var vm = this; Object.keys(vm.form).forEach(function(key){ if(vm.form[key]===''){ vm.form[key]=undefined }...原创 2020-01-19 11:23:58 · 644 阅读 · 0 评论 -
数组类型操作方法
获取数组最后一位args[args.length - 1]args.pop()//pop方法会删除args最后一个元素,并返回数组操作删除指定下标arr.splice(1,1) //在下标1处开始删除,删除一位 JavaScript清空数组的三种方法var arr = [1,2,3];console.log(arr);arr.length = 0;console...原创 2020-01-17 11:37:28 · 519 阅读 · 0 评论 -
JavaScript:switch-case语句中不区分大小写匹配
JavaScript中switch case语句大小写都可匹配:.toLowerCase()toIntro(param) { switch (param.method.toLowerCase()) { case 'h5': this.$router.push({ path: param.url, }) break case 'outside': window.location.href = param.url原创 2021-01-22 14:09:54 · 1521 阅读 · 0 评论 -
ajax请求超时判断并处理
超时结果:JQ中 timeout设置请求超时时间。如果服务器响应时间超过了 设置的时间,则进入 ERROR (错误处理)超时解决方案:1.默认的timeout为0,代表永不超时2.尽量把timeout设置的大一点。坏处:使数据的加载变慢(貌似。呵呵)。3.在ERROR回调函数中写 有关于 超时 处理 的函数:例如,可以在超时的情况下再次调用取数据函数。ajax请求自定义超时时间,并处理相应的超时事件对jQuery 来说,超时可以直接设置timeout参数,并在error事件中捕获原创 2021-01-19 11:25:39 · 6506 阅读 · 2 评论 -
JavaScript技术总结11:交换数组值的位置
ES6 开始,从数组中的不同位置交换值变得容易多了。这个做起来不难,但是了解一下也不错,原创 2021-01-05 09:38:55 · 143 阅读 · 1 评论 -
JavaScript技术总结10:等待所有 promise 完成
这个算不上是代码解决方案,更多是对 Promise API 的强化。这个 API 在不断进化,以前还为“allSettled”“race”和“any”做了代码实现,现在直接用 API 的就好了。原创 2021-01-04 16:34:36 · 1194 阅读 · 1 评论 -
JavaScript技术总结9:轮询数据
如果需要持续检查数据更新,但系统中没有 WebSocket,则可以使用这个工具来执行操作。它非常适合上传文件时,想要持续检查文件是否已完成处理的情况,或者使用第三方 API(例如 dropbox 或 uber)并且想要持续检查过程是否完成或骑手是否到达目的地的情况。async function poll(fn, validate, interval = 2500) { const resolver = async (resolve, reject) => { try { // cat原创 2021-01-04 16:33:45 · 677 阅读 · 1 评论 -
JavaScript技术总结8:顺序执行 promise
如果有一堆异步或普通函数都返回 promise,要求一个接一个地执行,这个工具就会很有用。它会获取函数或 promise 列表,并使用数组 reduce 方法按顺序解析它们。const asyncSequentializer = (() => { const toPromise = (x) => { if(x instanceof Promise) { // if promise just return it return x; } if(type原创 2021-01-04 16:32:55 · 447 阅读 · 1 评论 -
JavaScript技术总结7:格式化 JSON 字符串,stringify 任何内容
在使用 NodeJs 将对象记录到控制台时经常使用这种方法。JSON.stringify 方法需要第三个参数,该参数必须有多个空格以缩进行。第二个参数可以为 null,但你可以用它来处理 function、Set、Map、Symbol 之类 JSON.stringify 方法无法处理或完全忽略的内容。const stringify = (() => { const replacer = (key, val) => { if(typeof val === 'symbol')原创 2021-01-04 16:32:05 · 187 阅读 · 1 评论 -
JavaScript技术总结6:创建一个范围内的数字
Python的一个功能是 range 函数,而在 JavaScript 里经常需要自己写这个功能。下面是一个简单的实现,非常适合 for…of 循环以及需要特定范围内数字的情况。function range(maxOrStart, end = null, step = null) { if(!end) { return Array.from({length: maxOrStart}, (_, i) => i) } if(end <= maxOrStart) {原创 2021-01-04 16:30:37 · 205 阅读 · 0 评论 -
JavaScript技术总结5:随机 ID 生成器
有时你只是需要一些 ID?除非你要的是更复杂的 ID 生成器(例如 UUID),否则用不着为此安装什么新库,下面这个选项足够了。你可以从当前时间(以毫秒为单位)或特定的整数和增量开始生成,也可以从字母生成 ID。// create unique id starting from current time in milliseconds// incrementing it by 1 everytime requestedconst uniqueId = (() => { const id原创 2021-01-04 16:29:28 · 2226 阅读 · 1 评论 -
JavaScript技术总结4:带有范围的随机数生成器
需要生成随机数,但希望这些数字在一定范围内,那就可以用这个工具。function randomNumber(max = 1, min = 0) { if(min >= max) { return max; } return Math.floor(Math.random() * (max - min) + min);}原创 2021-01-04 16:28:17 · 211 阅读 · 0 评论 -
JavaScript技术总结3:获取列表最后一项
其他语言里这个功能被做成了可以在数组上调用的方法或函数,但在 JavaScript 里面,需要自己处理。function lastItem(list) { if(Array.isArray(list)) { return list.slice(-1)[0]; } if(list instanceof Set) { return Array.from(list).slice(-1)[0]; } if(list instanceof Map) { retur原创 2021-01-04 16:27:29 · 762 阅读 · 0 评论 -
JavaScript技术总结2:检查是否为空
有时你需要知道某些内容是否为空,并根据结果决定要使用的方法,例如检查长度、大小或是否包含任何子元素。下面这个工具打包了这些功能,你可以用它检查 String、Object、Array、Map 和 Set 的大小。function isEmpty(x) { if(Array.isArray(x) || typeof x === 'string' || x instanceof String ) { return x.length === 0; } if(x i原创 2021-01-04 16:26:16 · 191 阅读 · 0 评论 -
JavaScript技术总结1:类型检查小工具
JavaScript 不是强类型语言,对此我推荐的最佳解决方案是 TypeScript。但有时你只是想要一个简单的类型检查,这种时候 JavaScript 允许你使用“typeof”关键字。“typeof”的问题在于,将其用于某些原语和函数时效果很好,但对于数组和对象来说,由于它们都被视为“对象”,因此很难把握它们之间的区别。const isOfType = (() => { // create a plain object with no prototype const type原创 2021-01-04 16:25:25 · 96 阅读 · 0 评论 -
接口返回文本 html保持原有格式输出文本且自动换行
使用HTML的pre标签:<pre>元素可定义预格式化的文本。被包围在 pre 元素中的文本通常会保留空格和换行符。而文本也会呈现为等宽字体。<pre class="content"> 提示条款 您的信任对我们非常重要,一直以来,平台都致力于为每位用户提供更安全的互联网环境。我们深知个人信息安全的重要性,我们将按照法律法规要求,采取安全保护措施,保护您的个人信息安全可控。鉴此,平台(或简称“我们”)制定本《法律声明与隐私政策》(以下或简称“声明和政策”)并提醒您:.原创 2020-12-02 13:56:52 · 1510 阅读 · 0 评论 -
JavaScript根据对象的key重新排序
const sortArr=['aaa','bbb','ccc'];//指定排序顺序const arr={ "aaa":{ "id":"a"}, "ccc":{"id":"c+"}, "bbb":{ "id":"b+"}}let getArr={}sortArr.forEach(item => { Object.keys(arr).forEach(key=>{ if(item===key){ getArr[key].原创 2020-10-26 14:42:30 · 2061 阅读 · 0 评论 -
前端——$(...)[0].attr is not a function
$(…)[0] 返回的是一个dom对象而 attr() 方法 只能被JQuery对象所使用所以,可以用$(…).eq()转载 2020-09-25 11:16:19 · 372 阅读 · 0 评论 -
iframe实现高度自适应
$('.content').append('<iframe src="https://www.baidu.com" frameborder="0" scrolling="no" id="external-frame"></iframe>')var iframe = document.getElementById("external-frame");iframe.onload=function(e){ if (iframe) { var iframeWin.原创 2020-09-24 18:13:49 · 322 阅读 · 0 评论 -
JavaScript精确计算加减乘除
/** * 加法 * @param arg1 * @param arg2*/function addition(arg1,arg2){ var r1,r2,m; try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}; try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}; m=Math.pow(10,Math.max(r1,r2)); return .原创 2020-07-10 11:44:32 · 261 阅读 · 0 评论 -
JavaScript封装检测是否为空(包括空字符串、空格、null,{},[])
//是否为NULLisNull(value) { if (value == null || typeof (value) == 'undefined' || value === undefined) { return true; } return false;},//是否为空(包括空字符串、空格、null,{})isEmpty(strings){ if (!this.isNull(strings)) { // 先判断是否为null,返回true ,判断是否为空字符串,返回t.原创 2020-05-14 11:21:44 · 1288 阅读 · 0 评论 -
JavaScript-对象扁平化:只保留最里层key
var o={ "A": { "a1": 1, "a2": 2 }, "B": { "b": 3 }};var comType=['object','array'];function plat(o,prekey,resobj){ prekey=prekey?prekey+'.':''; var keys=Object.keys(o); keys.forEach(function(item){ var v=o[item]; .原创 2020-05-09 16:12:48 · 419 阅读 · 0 评论 -
JavaScript 递归遍历对象:过滤对象中为null/undefined/''/[]/{}的属性值
// 过滤对象中为null/undefined/''/[]/{}的属性值function clearDeep(obj) { if (!obj || !typeof obj === 'object') return const keys = Object.keys(obj) for (var key of keys) { const val = obj[key] if ( typeof val === 'undefined' || .转载 2020-05-09 14:01:22 · 3199 阅读 · 0 评论 -
Javascript-every遍历数组 每一项均符合条件后执行相应操作
var flag=vm.theme.every(item=>{ if(item.topicName!=value){ return true }else{ vm.$message({ type: 'warning', message: '该主题已存在,请勿重复添加。' });...原创 2020-04-27 17:35:42 · 1996 阅读 · 0 评论 -
JavaScript 动态修改Objcet的属性值
function processPointText(stateCode) { var obj = { editing: false, appointment: false, accept: false, update_state: false, appointment_back: false, register: f...原创 2020-04-26 13:30:57 · 343 阅读 · 0 评论 -
JavaScript毫秒整数转化为时分秒
function MillisecondToTime (msd) { var time = parseFloat(msd) / 1000; if (null != time && "" != time) { if (time > 60 && time < 60 * 60) { var a = parseInt(t...转载 2020-04-22 15:53:40 · 1088 阅读 · 1 评论 -
Javascript-filter遍历数组 返回符合条件的每一项
item.children=item.children.filter(i=>{ if(!idArr.includes(i.id)){ return true }})原创 2020-04-18 15:22:07 · 5456 阅读 · 0 评论 -
JS阻止鼠标的默认点击事件(例如鼠标的点击右键)
document.oncontextmenu = function(e){ e.preventDefault();};document.oncontextmenu = function(){ return false;}原创 2020-03-13 09:48:35 · 1709 阅读 · 0 评论 -
JS根据字符串长度控制显示的字数超出显示省略号...
目的vue根据字符串长度控制显示的字数超出显示省略号…H5代码块<a-col class="gutter-row" :span="12"> <div class="infor" v-for="(item,key) in infor" :key=key> <div class="date" > <span style="font...原创 2019-11-07 13:57:05 · 6107 阅读 · 0 评论 -
箭头函数改变定时器中的this指向
此时viewer下的方法可以正常调用mounted() { var viewer = new Cesium.Viewer('cesiumContainer'); var czml1 = [{ "id" : "document", "name" : "CZML Point - Time Dynamic", ...原创 2020-01-21 11:05:28 · 774 阅读 · 0 评论 -
JS判断数据是否为File类型
if(file instanceof File){ upData.append('file', file, file.name);}原创 2020-03-11 17:01:35 · 9763 阅读 · 1 评论 -
JS根据条件将扁平数组树状化
response.data.data.map(function(item){ modeDatas.push( { id:item.id, label:item.name, number:item.number, value:item.number, })})modeDatas.forEach(function(i...原创 2020-03-12 12:01:53 · 202 阅读 · 0 评论 -
js 判断字符串中是否包含某个字符串 删除指定字符
usage.indexOf("init") != -1原创 2020-03-09 13:46:19 · 4842 阅读 · 0 评论 -
JS递归实现遍历不规则多维数组的方法
var data= { a: { one: 1, two: 2, three: {four:'2',five:'4'} }, b: { six: 4, seven: 5, eight: 6 }, c: { nine: 7, ten: 8}}function traverse(obj) { for (var a in obj) { if (typeo...原创 2020-03-09 13:44:05 · 1978 阅读 · 0 评论 -
JS跳出循环的遍历方法
map和foreach都不会跳出循环,如果要跳出循坏 还是用for【map无法跳出,所以才会在es6中添加for of语法】想跳出,可以用every或者somesome:判断数组中是否至少有一个元素符合某条件var arr=[1,2,3];var result=arr.some(function(item,index){//结果赋值给你result打印result ...原创 2020-02-04 13:04:55 · 458 阅读 · 0 评论 -
深拷贝
tips:改变变量a导致变量b的值也发生了同样变化 一般是因为未对变量b进行深拷贝导致遍历(仅限于一层,数组的item是基本类型)let a = [1,2,3,4];let b = [];a.forEach(item=>{ b.push(item) });console.log(b);//拷贝后a和b的值相同a[0] = 5;console.log(b);//即使...原创 2020-01-20 14:31:35 · 177 阅读 · 0 评论 -
js关于if-else的逻辑使用优化
初始方案if(this.objValue!==""){ this.modify(); this.viewer.clock.currentTime = this.viewer.clock.startTime;//归位至起始位置 this.viewer.clock.shouldAnimate = true;//运动 this.viewer.entities.rem...原创 2020-01-17 15:33:33 · 598 阅读 · 0 评论