![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaScript
JavaScript问题
翘阳啦
只有不断学习,才不会落后!做笔记的博客
展开
-
【JS算法】数组的各种方法在增删改查的重要作用(写后台管理的心得总结)
删除数据 pop()、shift()、slice()、splice()修改数据 filter()、reverse()查找数据 every()、some()、indexOf、lastIndexOf()、map()、forEach()push():在数组末尾插入数据下面的例子都是将新的属性添加到原来的数据中: unshift():在数组开头插入数据 pop():从数组末尾删除数据 shift():删除数组开头的数据 slice():...原创 2022-07-11 10:37:45 · 137 阅读 · 0 评论 -
【JS算法】 排序算法及性能汇总
冒泡排序比较所有相邻的两个项,如果第一个比第二个大,则交换它们选择排序算法是一种原址比较算法,找到数据结构中的最小值并将其放到第一位,接着找到第二小的值并将其放到第二位。插入排序每次排一个数组项,以此方式构建最后的排序数组。假定第一项已经排序了,接着它和第二项进行比较,判断第二项是待在原位还是插到第一项之前呢。这样,头两项......原创 2022-07-06 10:33:28 · 414 阅读 · 0 评论 -
【JavaScript笔记】打乱数组内元素的顺序、对调两个变量的多种方法
打乱数组内元素的顺序:应用:随机展示图片、随机播放歌曲、随机展示验证码等算法核心:Fisher-Yates shufflevar students=["学生1","学生2","学生3","学生4","学生5"];function rd(student){ var length=student.length, index, temp; //temp随机 for(var point = length -1 ;point>=0 ; point--.原创 2022-05-26 10:04:47 · 178 阅读 · 1 评论 -
【前端学习笔记】cookie和session的区别
cookie 为什么用cookie ? Http是无状态的协议,对于事务的处理没有记忆功能,因为是无状态的意味着如果后续处理前面的信息,必须要重新传输。cookie的出现解决了这个问题,第一次登录,服务器就会返回一些数据(cookie)给浏览器,当用户再次发送请求的时候,就会自动的携带上次请求存储的cookie数据带给服务器,服务器就会根据数据判断当前用户信息。 cookie什么时候产生? cookie要先看需求,浏览器可以禁用cookie,服务端...原创 2022-05-24 10:22:17 · 440 阅读 · 0 评论 -
【Promise学习】async函数和await表达式
1、async 函数 (1)函数的返回值为 promise 对象(2) promise 对象的结果由 async 函数执行的返回值决定如果返回的是一个非Promise类型的数据输出成功如果返回的是一个promise对象输出成功如果抛出异常输出失败2、await表达式(1)await 右侧的表达式一般为 promise 对象, 但也可以是其它的值(2)如果表达式是 promise 对象, await 返回的是 p...原创 2022-04-29 10:42:07 · 329 阅读 · 0 评论 -
【Promise学习】Promise的状态、对象的值、基本流程和Promise的API
1、Promise的状态实例对象中的一个属性【PromiseState】pending 未决定的 resolved/fullfulled 成功 rejected失败pending 变为 resolvedpending 变为 rejected 说明: 只有这 2 种, 且一个 promise 对象只能改变一次 无论变为成功还是失败, 都会有一个结果数据 成功的结果数据一般称为 value, 失败的结果数据一般称为 reason2、Promise对象的值实例对象中的另一..原创 2022-04-28 21:22:30 · 530 阅读 · 0 评论 -
【Promise学习】Promise的理解
1、Promise 是什么? 抽象表达:(1) Promise 是一门新的技术(ES6 规范)(2)Promise 是 JS 中进行异步编程的新解决方案 备注:旧方案是单纯使用回调函数具体表达:(1)从语法上来说: Promise 是一个构造函数(2)从功能上来说: Promise 对象用来封装一个异步操作并可以获取其成功/ 失败的结果值异步编程:fs文件操作,数据库操作,ajax,定时器等2、为什么要用 Promise?指定回调函数的方式更加灵活 1. 旧的: 必.原创 2022-04-28 19:35:27 · 539 阅读 · 0 评论 -
ES6 Set数据结构
ES6提供了新的数据结构Set。它类似于数组,但是成员的值都是唯一的,没有重复的值Set本身就是一个构造函数,用来生成Set数据结构const s1 = new Set();const s1 = new Set();console.log(s1.size) //输出0const s2 = new Set(["a","b"]);console.log(s2.size) //输出2const s3 = new Set(["a","a","b","b"]);conso原创 2022-03-13 14:46:26 · 1347 阅读 · 0 评论 -
ES6 String的扩展方法、模板字符串
模板字符串ES6新增的创建字符串的方式,使用反引号定义。let name = `zhangsan`;模板字符串可以解析变量let name = '张三';let sayHello = `hello,my name is ${name}`; //hello,my name is zhangsan 举例:let name = '张三';let sayHello = `Hello,我的名字叫${name}`;console.log(sayHello); //Hello,我的.原创 2022-03-13 14:28:19 · 206 阅读 · 0 评论 -
ES6新增语法 剩余参数、Array的扩展方法
剩余参数const sum = (...args) =>{ let total =0; args.forEach(item =>total +=item); return total;};console.log(sum(10,20));console.log(sum(10,20,30));输出30,60Array的扩展方法扩展运算符(展开语法)扩展运算符可以将数组或者对象转为用逗号分隔的参数序列let ary = [1,2,3];..原创 2022-03-13 14:04:45 · 150 阅读 · 0 评论 -
ES6新增语法 箭头函数
()=>{} 箭头函数就是用来简化函数定义语法的const fn = ()=>{}1.函数体中只有一句代码,且代码的执行结果就是返回值,可以省略大括号const sum=(n1,n2)=>{ return n1+n2;}const sum = (n1,n2) => n1+n2;const result = sum(10,20);console.log(result);//输出302.如果形参只有一个,可以省略小括号const...原创 2022-03-08 21:22:53 · 181 阅读 · 0 评论 -
ES新增语法 解构赋值
ES6中允许从数组中提取值,按照对应位置,对变量赋值。对象也可以实现解构。数组解构let ary =[1,2,3];let [a,b,c] = ary;console.log(a);console.log(b);console.log(c);//分别输出1、2、3对象解构对象解构允许我们使用变量的名字匹配对象的属性 匹配成功将对象属性的值赋值给变量let person = {name:'李四',age:30,sex:'男'};let {name,age,sex} = .原创 2022-03-08 21:05:25 · 412 阅读 · 0 评论 -
ES6新增语法 let、const、var区别
letlet是ES6中新增的用于声明变量的关键词let声明的变量只在所处于的块级有效if (true){ let a = 10;}console.log(a); //a is not defined注意:使用let关键字声明的变量才具有块级作用域,使用var声明的变量不具备块级作用域特性。if (true){ let num = 100; var abc = 200;}console.log(abc); //输出200console.lo原创 2022-03-08 20:50:57 · 115 阅读 · 0 评论 -
js高级-正则表达式
正则表达式概述1.定义正则表达式(Regular Expression)是用于匹配字符串中字符组合的模式。在js中,正则表达式也是对象通常被用来检索、替换那些符合某个模式(规则)的文本,列入验证表单,替换敏感词,从字符串中获取我们想要的特定部分。2.特点灵活性、逻辑性和功能性非常的强 可以迅速地用极简单的方式达到字符串的复杂控制 对于刚接触的人来说,比较复杂难懂 实际开发,一般都是直接复制写好的正则表达式,但是要求会使用正则表达式并且根据实际情况修改正则表达式。正则表达式在js中原创 2022-03-08 13:46:36 · 339 阅读 · 0 评论 -
js高级-ES6的扩展运算符... ,是浅拷贝
1.浅拷贝只是拷贝一层,更深层次对象级别的只拷贝引用2.深拷贝拷贝多层,每一级别的数据都会拷贝3.Object.assign(target,...sources) es6新增方法可以浅拷贝原创 2022-03-08 10:52:35 · 130 阅读 · 0 评论 -
js高级-递归
一个函数内部可以调用其本身,这个函数就是递归函数简单理解:函数内部自己调用自己,这个函数就是递归函数递归函数的作用和循环效果一样由于递归很容易发生“栈溢出”错误(stack overflow),所以必须要加退出条件returnvar num = 1;function fn() { console.log('我要打印6句话'); if(num==6){ return; //递归里面必须加退出条件 } num++; fn();}原创 2022-03-05 20:03:28 · 145 阅读 · 0 评论 -
js高级-闭包
变量作用域:全局变量和局部变量1.函数内部可以使用全局变量2.函数外部 不可以使用局部变量3.当函数执行完毕,本作用域内的局部变量会销毁什么是闭包?闭包(closure)是有权访问另一个函数作用域中变量的函数。简单理解就是,一个作用域可以访问另一个函数内部的局部变量。//fun这个函数作用域 访问了另外一个函数fn里面的局部变量numfunction fn(){ var num = 10; function fun(){ console原创 2022-03-04 21:34:23 · 143 阅读 · 0 评论 -
js高级-严格模式
1.为脚本开启严格模式 为整个脚本文件开启严格模式,需要在所有语句之前放一个特定语句“use strict”(或'use strict')<script> "use strict"; console.log("这是严格模式")</script>2.为函数开启严格模式<script> function fn(){ "use strict";}</script>3.严格模式中的变化...原创 2022-03-04 20:38:39 · 76 阅读 · 0 评论 -
js高级-this指向问题,改变函数内部this指向的三种方法 call() apply() bind() 及区别
1.this指向问题1.普通函数 this指向windowfunction fn(){ console.log('普通函数的this'+ this);}window.fn()2.对象的方法 this指向的是对象ovar o = { sayHi:function fn(){ console.log('普通函数的this'+ this); }}o.sayHi();3.构造函数 this指向ldh这个实例对象 原型对象里面的this指...原创 2022-03-01 14:01:18 · 407 阅读 · 0 评论 -
js高级-函数的定义和调用
函数的定义方式1.函数声明方式function关键字(命名函数)function fn(){};2.函数表达式(匿名函数)var fun = function(){};3.new Function('参数1','参数2','函数体')Function里面参数都必须是字符串格式 第三种格式执行效率低,也不方便书写,因此较少使用 所有函数都是Function的实例(对象) 函数也属于对象var f = new Function('a','b','console.log(a+原创 2022-03-01 10:34:36 · 153 阅读 · 0 评论 -
js高级-ES5中的新增方法 对象方法 Object.keys(),Object.defineProperty()
1.Object.keys()用于获取对象自身所有的属性Object.keys(obj)效果类似for in返回一个由属性名组成的数组//用于获取对象自身所有的属性var obj = { id:1, pname:'小米', price:1999, num:2000};var arr = Object.keys(obj);console.log(arr);上面程序输出 array(4)//用于获取对象自身所有的属性var obj =.原创 2022-03-01 10:09:54 · 413 阅读 · 0 评论 -
js高级-ES5中的新增方法 字符串方法trim()
trim()方法会从一个字符串的两端删除空白字符str.trim()trim()方法并不影响原字符串本身,它返回的是一个新的字符串var str = ' andy ';console.log(str);//这样输出的有空格var str1 = str.trim();console.log(str1);//这样输出的去除了两边的空格主要用于去除输入值的空格...原创 2022-02-28 10:43:28 · 146 阅读 · 0 评论 -
js高级-ES5中的新增方法 迭代(遍历)方法:forEach() 、map()、filter()、some()、every()
数组方法迭代(遍历)方法:forEach() 、map()、filter()、some()、every()forEach() 循环数组array.forEach(function(currentValue,index,arr))currentValue:数组当前项的值index:数组当前项的索引arr:数组对象本身//求和var arr[1,2,3];var sum = 0;arr.forEach(function(value,index,array)){ ..原创 2022-02-28 10:15:40 · 358 阅读 · 1 评论 -
js高级-继承call(),借用父构造函数继承属性,借用父构造函数继承方法
调用这个函数,并且修改函数运行时的this指向fun.call(thisArg,arg1,arg2,...)this.Arg :当前调用函数this的指向对象arg1,arg2 :传递的其他参数1.call()可以调用函数function fn(){ console.log('我想喝咖啡')}fn.call(); 输出:我想喝咖啡2.call()可以改变这个函数的this指向,此时的这个函数的this就指向了o这个对象functi...原创 2022-02-27 21:34:57 · 203 阅读 · 0 评论 -
js高级-原型链
function Star(uname,age){ this.uname = uname; this.age = age; //公共属性 }Star.prototype.sing = function(){ console.log('我会唱歌'); //公共方法} var ldh = new Star('刘德华',18);var zxy = new Star('张学友',19); ldh.sing();zxy.sing();.原创 2022-02-27 20:38:54 · 411 阅读 · 0 评论 -
js高级-对象原型__proto__
对象都会有一个属性__proto__指向构造函数的原型对象prototype,之所以我们对象可以构造函数prototype原型对象的属性和方法,就是因为对象有__proto__原型的存在。1.__proto__对象原型和原型对象prototype是等价的function Star(uname,age){ this.uname = uname; this.age = age; //公共属性 }Star.prototype.sing = functio原创 2022-02-27 16:46:33 · 523 阅读 · 0 评论 -
js高级-原型对象prototype
构造函数方法很好用,但是存在浪费内存的问题。function Star(uname,age){ this.uname = uname; this.age = age; this.sing = function(){ console.log('我会唱歌'); }} var ldh = new Star('刘德华',18);var zxy = new Star('张学友',19); 构造函数原型prototypeJavaScript规.原创 2022-02-27 16:31:52 · 419 阅读 · 0 评论 -
js高级-静态成员和实例成员
function Star(uname,age){ this.uname = uname; this.age = age; this.sing = function(){ console.log('我会唱歌'); }}var ldh = new Star('刘德华',18);1.实例成员 通过构造函数内部通过this添加的成员 uname age sing 就是实例成员实例成员只能通过实例化的对象来访问console.log(...原创 2022-02-27 16:11:56 · 421 阅读 · 0 评论 -
【Vue笔记】Vue的事件修饰符
事件的基本作用 1.使用v-on:xxx或者@xxx绑定事件,其中xxx是事件名 2.事件的回调需要配置在methods对象中,最终在vm上 3.methods中配置的函数,不要用箭头函数!否则this就不是vm 4.methods中配置的函数,都是被Vue所管理的函数,this的指向是vm或组件实调对象 5.@click=“demo”和@click="demo($event)"效果一致,但后者可以传参事...原创 2022-02-07 13:07:22 · 559 阅读 · 0 评论