js
一些常用的js
axzzy
lol
展开
-
关于原型链的解释(三)
七. 函数对象所有的构造器都来自于 Function.prototype,甚至包括根构造器Object及Function自身。所有构造器都继承了·Function.prototype·的属性及方法。如length、call、apply、bind。所有构造器(含内置及自定义)的__proto__都是Function.prototype,那Function.prototype的__proto__是谁呢?如下console.log(Function.prototype.proto === Object.pro原创 2022-01-07 15:02:21 · 707 阅读 · 0 评论 -
关于原型链的解释(二)
那原型对象主要作用是用于继承。举个例子:var Person = function(name){ this.name = name; // tip: 当函数执行时这个 this 指的是谁? }; Person.prototype.getName = function(){ return this.name; // tip: 当函数执行时这个 this 指的是谁? } var person1 = new person('Mick'); person1.getName()原创 2022-01-07 10:09:23 · 576 阅读 · 0 评论 -
关于原型链的解释(一)
一. 普通对象与函数对象JavaScript 中,万物皆对象!但对象也是有区别的。分为普通对象和函数对象,Object 、Function 是 JS 自带的函数对象var o1 = {}; var o2 =new Object();var o3 = new f1();function f1(){}; var f2 = function(){};var f3 = new Function('str','console.log(str)');console.log(typeof Objec原创 2022-01-05 11:55:06 · 90 阅读 · 0 评论 -
数据类型 的判断及转换
判断数据类型typeof 值 { undefined boolean string number function object //新增 bigint symbol}typeof 不能检测出Object 的衍生类型(Array)判断数组的方式有哪些let obj = [];Object.prototype.toString.call(obj)Array.isArrray(obj); //es6obj instanceof ArrayArray.prototype.原创 2021-12-14 17:03:13 · 926 阅读 · 0 评论 -
数组对象去重
var arr = [{name: 'a',id: 1}, {name: 'a',id: 2}, {name: 'b',id: 3}, {name: 'c',id: 4}, {name: 'c',id: 6}, {name: 'b',id: 6}, {name: 'd',id: 7}];对数组对象的某一个key进行去重处理,这里对那么 结果显示为:[{name: 'a',id: 1}, {name: 'b',id: 3}, {name: 'c',id: 4}, {name: 'd',id: 7}];原创 2021-11-01 15:37:26 · 159 阅读 · 0 评论 -
15 个优雅的 JavaScript 个技巧
JavaScript 有很多很酷的特性,大多数初学者和中级开发人员都不知道。今天分享一些,我经常在项目中使用一些技巧。1. 有条件地向对象添加属性我们可以使用展开运算符号(...)来有条件地向 JS 对象快速添加属性。const condition = true;const person = { id: 1, name: 'John Doe', ...(condition && { age: 16 }),};如果每个操作数的值都为 true,则 &&原创 2021-10-20 09:51:00 · 346 阅读 · 0 评论 -
跨页面通信BroadcastChannel
BroadcastChannel,这个方式,只要是在同一原始域和用户代理下,所有窗口、iframe之间都可以进行交互。这个感觉就有点类似于广播了。 1,父页面发送数据var BroadcastChanne1 = new BroadcastChannel('name');//创建一个名字是name BroadcastChannel对象//广播值BroadcastChanne1.postMessage("data") 2,子页面接收var var BroadcastChanne1 = new原创 2021-08-16 16:48:40 · 565 阅读 · 0 评论 -
class 类
传统的javascript中只有对象,没有类的概念。它是基于原型的面向对象语言。原型对象特点就是将自身的属性共享给新对象。这样的写法相对于其它传统面向对象语言来讲,很有一种独树一帜的感脚!非常容易让人困惑!如果要生成一个对象实例,需要先定义一个构造函数,然后通过new操作符来完成。构造函数示例://函数名和实例化构造名相同且大写(非强制,但这么写有助于区分构造函数和普通函数)function Person(name,age) { this.name = name; this.age=a翻译 2021-07-16 12:00:27 · 68 阅读 · 0 评论 -
axios 及请求
axioseg:在用户登陆请求与验证是否登陆this.axios({ method: 'post', url: '/user/login', data: _this.loginForm, // `transformRequest` 允许在向服务器发送前,修改请求数据 // 只能用在 'PUT', 'POST' 和 'PATCH' 这几个请...翻译 2020-05-07 14:58:48 · 231 阅读 · 0 评论 -
Array Object 自身属性及方法大全
Objectconsole.log(Object.getOwnPropertyNames(Object))// ["length", "name", "prototype", "assign", "getOwnPropertyDescriptor", "getOwnPropertyDescriptors", "getOwnPropertyNames", "getOwnPropertySymbols", "is", "preventExtensions", "seal", "create", "defin原创 2021-07-02 17:32:09 · 354 阅读 · 0 评论 -
前端性能优化
1. 减少 HTTP 请求一个完整的 HTTP 请求需要经历 DNS 查找,TCP 握手,浏览器发出 HTTP 请求,服务![在这里插入图片描述](https://img-blog.csdnimg.cn/20210616102442608.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2F4enp5,size_16,color_FFFFFF,t_7原创 2021-06-16 10:25:18 · 84 阅读 · 0 评论 -
wx-open-launch-weapp标签跳转小程序问题
亲测有效<div class="launch-weapp-box"> <wx-open-launch-weapp id="launch-btn" username="跳转小程序原始id" //gh_ 开头 path="跳转地址" //不带参 '/pages/index/index.html' //带参 '/pages/project/project?id=1&name=lll' @launch="onLaunch" @e转载 2021-06-11 11:52:44 · 359 阅读 · 1 评论 -
Promise.all与Promise.race
//promise.all 所有请求并行发送 ,Promise.all可以将多个Promise实例包装成一个新的Promise实例。同时,成功和失败的返回值是不同的,成功的时候返回的是一个结果数组,而失败的时候则返回最先被reject失败状态的值。let p1 = new Promise((resolve, reject) => { resolve('成功了')})let p2 = new Promise((resolve, reject) => { resolve('suc原创 2021-06-10 09:42:22 · 70 阅读 · 0 评论 -
循环里的异步问题,串行,并行
//首先有一个异步的函数:function sleep() { return new Promise((resolve, reject) => { setTimeout(() => { resolve() }, 1000) })}async function promiseAll() { let promiseArr = [] arr.forEach(item => { promiseArr.push((async (item)原创 2021-06-09 16:45:37 · 349 阅读 · 0 评论 -
ios 键盘弹起页面 问题
var u = navigator.userAgent;var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端if (isiOS) { setTimeout(function(){ window.scrollTo(0,1334); }, 10);}原创 2021-06-08 20:48:54 · 120 阅读 · 0 评论 -
js 常用函数集
//常用实用函数//版本控制判断function compareVersion(v1, v2) { v1 = v1.split('.') v2 = v2.split('.') const len = Math.max(v1.length, v2.length) while (v1.length < len) { v1.push('0') } while (v2.length < len) { v2.push('0') } for (let原创 2021-04-01 19:54:43 · 126 阅读 · 0 评论 -
关于图片base64,二进制,灰度处理,压缩及 fetch API
二进制转载 2021-03-18 16:43:01 · 433 阅读 · 0 评论 -
Symbols
Symbol这个词在IT软件领域实际上是个常见角色,在传统前端技术领域,这个词出现频率有限,但是,随着现代web技术的发展,Symbol这个词开始在不同前端语言中出现。symbol的中文意思是:符号;象征;标志;记号等。作为一个JavaScript的原生数据类型(primitive data type)存在。说到JavaScript原生数据类型,我们通常想到的有这6种:undefined、null、boolean、string、number、object。而symbol是ES6新增的一个原生数原创 2021-01-13 11:06:52 · 456 阅读 · 0 评论 -
websoket
websoket// Create WebSocket connection.const socket = new WebSocket(‘ws://localhost:8080’);// Connection openedsocket.addEventListener(‘open’, function (event) {socket.send(‘Hello Server!’);向服务器发...原创 2020-05-07 14:59:41 · 159 阅读 · 0 评论 -
Promise 失败重试
function getData(){ let p = new Promise(function(resolve, reject){ setTimeout(function(){ var num = Math.ceil(Math.random()*20); //生成1-10的随机数 console.log('随机数生成的值:',num) if(num<=10){ console.log('符合条件,值为'+num)原创 2020-11-27 11:17:32 · 470 阅读 · 0 评论 -
promise
所谓 Promise,就是一个对象,用来传递异步操作的消息。它代表了某个未来才会知道结果的事件(通常是一个异步操作),并且这个事件提供统一的 API,可供进一步处理。Promise 对象有以下两个特点。(1)对象的状态不受外界影响。Promise 对象代表一个异步操作,有三种状态:Pending(进行中)、Resolved(已完成,又称 Fulfilled)和 Rejected(已失败)。只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态。这也是 Promise 这个名字的由来原创 2020-05-20 17:41:23 · 139 阅读 · 0 评论 -
js的基础
js/***!js ****/ time问题 new Date() //当前时间 new Date(year, month, day, hours, minutes, seconds, milliseconds) //设置的时间传递的参数 new Date(milliseconds) //正为1970年 1 月 1 日加上100 000 000 000...原创 2020-05-07 14:53:33 · 460 阅读 · 0 评论 -
js正则表达式及语法
正则 :正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。1.定义正则表达式: a.普通方式:var reg=/表达式/附加参数 附件参数: g:代表可以进行全局匹配。 i:代表不区分大小写匹配。 m:代表可以进行多行匹配。 例子: var reg=/a*b/; var reg=/abc+f/g; b.构造函数方式:var reg原创 2021-01-12 16:58:57 · 754 阅读 · 2 评论 -
面向对象的this
//事件调用时谁调用这个函数,函数里的this就指向谁与声明没有任何关系1.什么是this它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。(emm…不懂,算了还是直接敲代码吧)。2.普通函数中的this指向默认绑定默认绑定,this指向windowvar a = 1;function fn(){ var a = 2; console.log(this.a);}fn();//1 这里是window 在调用隐式绑定function fn(){原创 2020-06-20 13:47:59 · 88 阅读 · 0 评论 -
for in
对象遍历:let obj={ x:1, y:2}for(let i in obj){ console.log(i)//x ,y}//但是我们在对象的原型上定义一个属性过后Object.property.z=3for(let i in obj){ console.log(i)//x ,y,z}//问什么呢?Object有那么多的属性比如z,toString...//那为什么值将z属性遍历以上情况://我们对对象的属性定义有//obj.key=value//Object.d原创 2020-06-14 15:07:18 · 112 阅读 · 0 评论 -
迭代器与迭代规则
常见的循环方法有,for循环、map()、forEach()、filter(),for in ,for of等等,可以发现,每个方法都有自己的规则,比如返回值什么的。那么,我们可以通过迭代器,去自定义循环规则,通过迭代器,返回自己想要的结果。for of 迭代规则//我们都知道for of 不能遍历对象 那为什么不能遍历呢?//是因为我们的默认迭代规则不允许,那我们就可以自定义for of 的迭代规则//遍历对象let obj = { x:10, y:20}for(ob原创 2020-06-13 10:44:16 · 523 阅读 · 0 评论