![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
javascript
weixin_39407291
这个作者很懒,什么都没留下…
展开
-
普通函数和箭头函数
一、普通函数://具名函数function func(){ //code}//匿名函数let func = function(){ //code}代码说明:(1).第一个是具名函数,使用严格的函数声明语法创建。(2).第二个是匿名函数,它的本质是声明一个变量并赋值为一个匿名函数对象(函数没有名称)。二、箭头函数:箭头函数相当于匿名函数,并且简化了函数定义。箭头函数有两种格式,一种只包含一个表达式,连{ … }和return都省略掉了。还有一种可以包含多条语句,这时候就不能省略原创 2020-08-28 15:40:01 · 310 阅读 · 0 评论 -
ES发展版本
https://www.w3school.com.cn/js/js_versions.asp转载 2020-08-28 14:59:31 · 595 阅读 · 0 评论 -
跨域问题二
一、跨域解决1.JSONP采用script标签,此处前端代码示例: <button id="btn">点击</button> <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script> <script> $('#btn').click(function(){ var frame = document.createElement('转载 2020-08-28 10:52:30 · 64 阅读 · 0 评论 -
跨域问题一
一、什么是跨域域名:www.baidu.com协议:http https端口:8080跨域是指从一个域名去请求另一个域名的资源,严格来说,只要域名,协议,端口任何一个不同,就视为跨域。参考:https://wenwen.sogou.com/z/q187252167.htm二、跨域出现原因1.同源: 域名 端口 协议三者全部相同2.同源策略限制的表现:① cookie、LocalStorage和Index DB 无法读取② Dom无法获得③ ajax请求不能发送为了网络安全,浏览原创 2020-08-28 10:26:31 · 102 阅读 · 0 评论 -
JS判断是否是数组
方法一:Array.isArray()把我们要判断的对象传入即可。但此方法IE8和IE8-不支持。方法二:不存在 Array.isArray(),则自己创建该方法。if (!Array.isArray) { Array.isArray = function(arg) { return Object.prototype.toString.call(arg) === '[object Array]'; };}参考的是 https://developer.mozilla.o原创 2020-08-26 13:46:29 · 131 阅读 · 0 评论 -
var let const
var 有变量声明提升let 声明的变量可以改变比如for循环的let I=0;i<10;i++const 定义变量的时候一般要赋值,定义之后这个常量不可以被重新定义,赋值。但是可以在自身基础上改变,比如数组的增删改,因为本身指向的地址没有改变。简单数据类型(数值,字符串,布尔值):值保存在变量指向的那个内存地址,因此等同于常量。复合类型的数据(对象和数组):变量指向的是内存地址,保存的是一个指针,const只能保存这个指针地址是固定的,至于他指向的数据结构是不是可变的,就完全不能控制了。原创 2020-08-10 22:12:22 · 85 阅读 · 0 评论 -
跳出循环的几种方法
const arr =[{ id:1, name:'yql', age:17 },{ id:2, name:'yeah', age:16 },{ id:3, name:'ye', age:17 }] const arr_ =[] //1 return 方法 这种方法并不能跳出forEach循环,跳出的是当前次循环 arr.forEach(function(value){ if(value.name == 'yeah') { return; }原创 2020-08-10 21:32:20 · 809 阅读 · 0 评论 -
数组的合并去重
网上的方法很多,我自己常用的方法是先合并再去重。1.合并数组 concatvar arr1 = ["ab","bc","de","fg"];var arr2 = ["ml","kg","ww","bc","am"];var arr3 = arr1.concat(arr2);console.log(arr3) 控制台输出:2.去重for(var i=0;i<arr3.length;i++){ for(var j=i+1;j<arr3.length;j++){ if(原创 2020-08-08 15:26:28 · 288 阅读 · 0 评论 -
JS计算时出现小数位数太多情况
乘法:function accMul(arg1,arg2){ var m=0,s1=arg1.toString(),s2=arg2.toString(); try{m+=s1.split(".")[1].length}catch(e){} try{m+=s2.split(".")[1].length}catch(e){} return Number(s1.replace(".",...转载 2020-04-08 15:19:21 · 681 阅读 · 0 评论 -
js中经常看到‘!!’的作用
var o={flag:true}; var test=!!o.flag; //等效于 var test=o.flag||false; alert(test);由于对null与undefined用!操作符时都会产生true的结果,所以用两个感叹号的作用就在于,如果明确设置了o中flag的值(非 null/undefined/0""/等值),自然test就会取跟o.flag一样的...转载 2019-11-21 19:50:34 · 126 阅读 · 0 评论 -
关于this指向的一道题目
尝试实现注释部分的 JavaScript 代码, 可在其他任何地方添加更多代码。var Obj = function(msg) { this.msg = msg; this.shout = function () { alert(this.msg) } this.waitAndShout = function() { // 隔五秒钟...原创 2019-11-11 16:38:32 · 179 阅读 · 0 评论 -
js中的function fn(){}和var fn=function(){}
函数声明:funName()//正常执行function funName(){ //code}函数表达式:funName() //报错 funName is not a functionvar funName=function(){ //code}解析器在向执行环境加载数据时,对这两种是有区别的,解析器会率先读取函数声明,以确保在执行任何代码之前可以访...原创 2019-11-08 17:50:01 · 1403 阅读 · 0 评论 -
一道js题目
头条的视频网站上支持了弹幕,假设一个视频有很多弹幕,弹幕的数据是一个数组,格式定义如下:[{time: Number,content: String},{time: Number,content: String}…](其中 time 表示时间,content表示弹幕内容),那么如何快速定位到某个时间点的弹幕,请编码实现(不使用数组的 sort 方法)其实我不大读懂题目。v...原创 2019-11-08 15:35:11 · 113 阅读 · 0 评论 -
一道 JavaScript 的 range 算法题
设计一道 JavaScript 的 range 算法如下:range(1, 10, 3) 返回 [1, 4, 7, 10]; range(‘A’, ‘F’, 2) 返回 [‘A’, ‘C’, ‘E’] 请使用 JavaScript 语言实现该功能(可以使用 ES6)var range = function(min,max,step){ var arr = []; if(typeof(min...原创 2019-11-08 09:28:57 · 287 阅读 · 0 评论 -
js对数组去重并排序
方法一:Array.prototype.distinct = function() { var ret = [] ; for(var i = 0;i<this.length;i++){ for(var j = i+1;j<this.length;){ if(this[i] == this[j]){ this.splice(j,1); }else{ ...原创 2019-11-07 15:33:59 · 1054 阅读 · 0 评论 -
js 实现一个打点计时器
问题描述:1、从 start 到 end(包含 start 和 end),每隔 100 毫秒 console.log 一个数字,每次数字增幅 1 2、返回的对象中需要包含一个 cancel 方法,用于停止定时操作 3、第一个数需要立即输出方法一:function count(start,end){ console.log(start) var timer = setInterval(fu...转载 2019-11-07 13:19:08 · 291 阅读 · 0 评论 -
获取浏览器 URL 中查询字符串中的参数
function getUrlParam(){ var url = window.location.href ; if(url.split('?')[0] == url){ //没有参数 返回空即可 return ''; } var param = url.split('?')[1]; var paramArr = param.split('&'); var obj ...原创 2019-11-04 15:54:47 · 165 阅读 · 0 评论 -
网页优化
我们将开发好的页面,进入线上环境的时候,肯定要最大化性能优化,那么我们常见的做法有哪些?https://csspod.com/frontend-performance-best-practices/gzip、雪碧图、减少http请求数、减少DNS请求、避免重定向、缓存ajax请求、延迟加载、预加载、减少DOM数、使用框架例如React的虚拟DOM树、减少DOM操作、使用CDN、减少 css 里...转载 2019-11-04 14:14:42 · 103 阅读 · 0 评论 -
Promise是什么?(转载)
是异步编程的一种解决方案;所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。一般什么时候使用?处理异步请求时使用,比如ajax请求;有哪些状态?状态有pending、resolved、rejected;怎么捕获他的错误?最后写catch;then里面...转载 2019-11-04 13:55:34 · 75 阅读 · 0 评论 -
五种基本数据类型详解(转载)
1.number类型①number类型包含整数和浮点数(浮点数数值必须包含一个小数点,且小数点后至少有一位数字)。浮点数会自动转换为整数,如下:let num = 1.00console.log(num) // 输出:1,自动转换为了整数②浮点数的最高精度是17位,看下面的例子:let a = 0.1let b = 0.2console.log(a + b) // 输出:0.300...转载 2019-11-04 09:40:16 · 2820 阅读 · 0 评论 -
Object.freeze('对象')让const声明的对象无法改变内部内容
const 声明一个对象,如何让对象内部的属性的值也无法改变?使用Object.freeze()锁死;原创 2019-10-29 17:57:59 · 333 阅读 · 0 评论 -
浅拷贝与深拷贝
在有指针的情况下,浅拷贝只是增加了一个指针指向已经存在的内存,而深拷贝就是增加一个指针并且申请一个新的内存,使这个增加的指针指向这个新的内存,与原对象脱离。浅拷贝 只拷贝指针,深拷贝就是拷贝他的值,申请一个新的内存,重新生成的对像,与原对象脱离。就像是浅拷贝就是你的影子,深拷贝是你的克隆人,你没了影子也就没了,但是克隆人还活着。浅拷贝:简单的赋值,指向同一个内存地址。深拷贝的方法1.JS...原创 2019-10-29 17:26:38 · 171 阅读 · 0 评论 -
把字符串转为对象
把字符串转为对象原创 2019-10-25 17:17:26 · 1321 阅读 · 0 评论 -
使用JSON.parse遇到的问题
今天做项目的时候,使用JSON.parse转换字符串成json数据的时候遇到了一个问题,举例如下: var jsonStr = '{"sex":"男","info":"我\\是好人"}'; JSON.parse(jsonStr);运行结果如下:jsonStr里有两个反斜杠存在,JSON.parse在执行的时候则报错了,我们用eval来执行自然是不会报错的,运行结果如下:我们再来看...转载 2019-10-25 16:51:42 · 1807 阅读 · 0 评论 -
将字符串格式的对象转换成真正的js对象
1、<script>//eval 的作用eval('var a = 100');console.log(a);</script>//需要将对象格式的字符串转换成jsoneval("var obj = " + xhr.responseText);var obj = eval(xhr.responseText); //有问题写法 下图var obj ...转载 2019-10-25 16:18:15 · 856 阅读 · 0 评论 -
$.map()
注意:1. 在jQuery 1.6 之前,该函数只支持遍历数组;从 1.6 开始,该函数也支持遍历对象。2. map()还会为函数传入两个参数:其一是当前迭代的元素或属性值,其二是当前迭代项的数组索引或对象属性名。3. 该函数返回值将作为结果数组中的一个元素,如果返回值为null或undefined,则不会被添加到结果数组中。参考:https://www.runoob.com/try/tr...原创 2019-10-25 11:55:31 · 107 阅读 · 0 评论 -
文本框——input和textarea的区别
相同点: 提示内容,都可以使用 placeholdermaxlength和minLength都可以写在标签内限定输入内容的字符数用js对其内容取值的时候,都是用.value 或者 .val()不同点:input : 单行文本,文字居中显示,需要结合type属性使用 普通文本框就是type=“text”设置size特性,可以指定文本框中能够显示的字符数使用width height ...原创 2019-10-22 10:28:28 · 1202 阅读 · 0 评论 -
一个可能有用的css属性——pointer-events
pointer-eventsauto 与pointer-events属性未指定时的表现效果相同。none 元素永远不会成为鼠标事件的target。但是,当其后代元素的pointer-events属性指定其他值时,鼠标事件可以指向后代元素,在这种情况下,鼠标事件将在捕获或冒泡阶段触发父元素的事件侦听器。可以在不想让一些事件执行的时候添加这个属性试一下。...原创 2019-10-22 10:07:29 · 77 阅读 · 0 评论 -
localStorage
window.localStorage保存数据语法:localStorage.setItem("key", "value");读取数据语法:var lastname = localStorage.getItem("key");删除数据语法:localStorage.removeItem("key");...原创 2019-10-12 17:57:00 · 72 阅读 · 0 评论 -
解决JS在url中传递参数时参数包含中文乱码的问题
1.传参页面JavaScript代码:function go_mark(id,jobname,headimgurl,nickname){ window.location.href = "mark.html?id="+id+"&jobname="+encodeURI(jobname)+"&headimgurl="+headimgurl+"&nickname=...转载 2019-10-12 17:55:25 · 218 阅读 · 0 评论 -
JS中table表格的行合并
最后效果如图://合并行 for(var m=0;m<10;m++){ var eleList = $("#supplyTable tbody .tr_list[simpletip="+m+"]"); var eleList2 = $("#supplyTable tbody .companyName_td[simpletip="+m+"]"); var eleList3 =...原创 2019-10-12 13:39:15 · 2121 阅读 · 0 评论 -
jquery自定义属性选择器
<div tip="test">内容内容内容div>使用$("div[tip = 'test']")进行选择原创 2019-10-12 13:30:51 · 349 阅读 · 0 评论 -
cropper裁切图片并预览上传(1)
在做公司后台管理系统时,有一个新的需求,就类似我们注册网站时上传,修改头像的功能。使用的是裁切插件cropper.js,gitHub链接:https://github.com/fengyuanchen/cropper/blob/master/README.md...原创 2019-07-10 09:27:44 · 1144 阅读 · 1 评论 -
函数声明提升与变量声明提升
var a = 1;function b() { a = 10; return; function a() { }}b();console.log(a) //1很多人在看第一眼的时候会认为结果为10,我作为一个小白第一反应也是认为函数内部的a是全局变量,所以在执行b后a的值变为10,之后再看了后面的分析后才恍然大悟,在b函数执行后a依然是1,于是...转载 2019-07-12 17:52:18 · 329 阅读 · 0 评论 -
JS排序问题
javascript中对一个对象数组按照对象某个属性进行排序(转载)在javascript中,对象和数组是两种不同的类型,这和php中的数组概念不同。在javascript中,也有一些精妙的算法,用来对一些对象进行排序。我在面试迅雷的时候,也拿到一道题,当时做题的时候考虑到时间,没有去仔细研究,回来后再读了一些方法,就知道真正的考点在哪里了。我们现在有一组“学生”对象,包含“名字,年龄”等属性...转载 2019-07-03 10:45:06 · 494 阅读 · 0 评论 -
onFocus="this.blur()"
<input name="result" id="result" type="text" onFocus="this.blur();" size="20" value=""> onfocus是聚焦的意思,当你把光标放在文本框上输入的时候,就是聚焦,但这里添加了"this.blur()",blur的作用就是去除聚焦,也就是你不能把光标放在这个文本框上,换句话说就是你不能输入文本了整...转载 2019-06-27 13:51:19 · 2158 阅读 · 0 评论 -
JS点击空白区域隐某元素
上代码: $(".parentDiv input").click(function(event){ var e=window.event || event; if(e.stopPropagation){ e.stopPropagation(); }else{ e.cancelBubble = true; } ...原创 2019-06-27 13:48:06 · 571 阅读 · 0 评论 -
javascript的递归
最近项目中有一个多级菜单选择的功能,后台返回的时候是一层一层嵌套的结构,前端采用了插件ZTree。刚好数据结构可以直接拿来用,只是全局替换了几个字段名称。在内部逻辑处理时,前端对后台数据的处理,用到了递归算法。摘录几段自己写的递归方法记录一下:function replace_zNodes(value,zNodes_all){ for(var i=0;i<zNodes_all.le...原创 2019-06-17 11:48:51 · 78 阅读 · 0 评论 -
jquery绑定事件时解绑定
最近的项目用到了一个JQuery的插件,逻辑代码就用jQuery来写的,遇到了一个情景问题,解决了,记录一下。点击页面某个元素,弹出一个模态框,弹出的时候动态的append一些元素,再给元素添加点击事件。显然,(′.class).click(function())方法失效,这个方法是给页面上已经存在的元素添加事件。正确方法是:('.class).click(function(...原创 2019-06-17 11:33:29 · 169 阅读 · 0 评论 -
cropper裁切图片并预览上传(2)
(1)中是对这次试用cropper的整体功能实现的代码展示,这篇文章将对在使用过程中遇到的问题进行整理总结。原创 2019-07-11 08:57:05 · 768 阅读 · 0 评论