Help
RSS
API
Feed
Maltego
Contact
Domain > blog.chuyuxuan.top
×
Welcome!
Right click nodes and scroll the mouse to navigate the graph.
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2021-04-08
119.188.76.96
(
ClassC
)
2021-08-04
150.138.213.72
(
ClassC
)
2024-09-21
183.61.168.3
(
ClassC
)
Port 443
HTTP/1.1 200 OKContent-Type: text/html; charsetutf-8Content-Length: 44873Connection: keep-aliveServer: GitHub.comETag: 662fdee7-af49Date: Sat, 21 Sep 2024 07:52:05 GMTLast-Modified: Mon, 29 Apr 2024 17:54:47 GMTExpires: Sat, 21 Sep 2024 08:02:05 GMTCache-Control: max-age600Accept-Ranges: bytesAccess-Control-Allow-Origin: *x-proxy-cache: MISSX-GitHub-Request-Id: 547C:3F43D0:9A749E:A4F9F1:662FDFFBVia: 1.1 varnishX-Served-By: cache-syd10159-SYDX-Cache: MISSX-Cache-Hits: 0X-Timer: S1714413567.681874,VS0,VE216Vary: Accept-EncodingX-Fastly-Request-ID: d0c7ba1af814a6bc83938330381b2e577d64ae10x-link-via: jmct06:443;yancmp16:80;X-Cache-Status: HIT from KS-CLOUD-YANC-MP-16-24X-Cache-Status: HIT from KS-CLOUD-JM-CT-06-05-LX-Cdn-Request-ID: 4538f33680dab1e17feebcc566c863c3 !DOCTYPE html>html langzh-CN data-themelight>head>meta charsetUTF-8>meta http-equivX-UA-Compatible contentIEedge>meta nameviewport contentwidthdevice-width, initial-scale1.0,viewport-fitcover>title>CHUYUXUAN/title>meta nameauthor contentchuyuxuan>meta namecopyright contentchuyuxuan>meta nameformat-detection contenttelephoneno>meta nametheme-color contentffffff>meta propertyog:type contentwebsite>meta propertyog:title contentCHUYUXUAN>meta propertyog:url contenthttps://blog.chuyuxuan.top/index.html>meta propertyog:site_name contentCHUYUXUAN>meta propertyog:locale contentzh_CN>meta propertyog:image contenthttps://blog.chuyuxuan.top/img/avatar1.jpg>meta propertyarticle:author contentchuyuxuan>meta propertyarticle:tag content临渊羡鱼,不如退而结网>meta nametwitter:card contentsummary>meta nametwitter:image contenthttps://blog.chuyuxuan.top/img/avatar1.jpg>link relshortcut icon href/img/favicon1.ico>link relcanonical hrefhttps://blog.chuyuxuan.top/index.html>link relpreconnect href//cdn.jsdelivr.net/>link relpreconnect href//hm.baidu.com/>link relpreconnect href//busuanzi.ibruce.info/>link relstylesheet href/css/index.css>link relstylesheet hrefhttps://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css mediaprint onloadthis.mediaall>link relstylesheet hrefhttps://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox/fancybox.min.css mediaprint onloadthis.mediaall>script>var _hmt _hmt || ;(function() { var hm document.createElement(script); hm.src https://hm.baidu.com/hm.js?66e8bfee2641f792cfb4b22b2cf76e0e; var s document.getElementsByTagName(script)0; s.parentNode.insertBefore(hm, s);})();/script>script>const GLOBAL_CONFIG { root: /, algolia: undefined, localSearch: undefined, translate: undefined, noticeOutdate: {limitDay:500,position:top,messagePrev:It has been,messageNext:days since the last update, the content of the article may be outdated.}, highlight: {plugin:highlighjs,highlightCopy:true,highlightLang:true,highlightHeightLimit:false}, copy: { success: 复制成功, error: 复制错误, noSupport: 浏览器不支持 }, relativeDate: { homepage: false, post: false }, runtime: , dateSuffix: { just: 刚刚, min: 分钟前, hour: 小时前, day: 天前, month: 个月前 }, copyright: undefined, lightbox: fancybox, Snackbar: undefined, source: { justifiedGallery: { js: https://cdn.jsdelivr.net/npm/flickr-justified-gallery/dist/fjGallery.min.js, css: https://cdn.jsdelivr.net/npm/flickr-justified-gallery/dist/fjGallery.min.css } }, isPhotoFigcaption: false, islazyload: false, isAnchor: false, percent: { toc: true, rightside: true, }, autoDarkmode: false}/script>script idconfig-diff>var GLOBAL_CONFIG_SITE { title: CHUYUXUAN, isPost: false, isHome: true, isHighlightShrink: false, isToc: false, postUpdate: 2024-04-30 01:53:59}/script>noscript>style typetext/css> #nav { opacity: 1 } .justified-gallery img { opacity: 1 } #recent-posts time, #post-meta time { display: inline !important }/style>/noscript>script>(win>{ win.saveToLocal { set: function setWithExpiry(key, value, ttl) { if (ttl 0) return const now new Date() const expiryDay ttl * 86400000 const item { value: value, expiry: now.getTime() + expiryDay, } localStorage.setItem(key, JSON.stringify(item)) }, get: function getWithExpiry(key) { const itemStr localStorage.getItem(key) if (!itemStr) { return undefined } const item JSON.parse(itemStr) const now new Date() if (now.getTime() > item.expiry) { localStorage.removeItem(key) return undefined } return item.value } } win.getScript url > new Promise((resolve, reject) > { const script document.createElement(script) script.src url script.async true script.onerror reject script.onload script.onreadystatechange function() { const loadState this.readyState if (loadState && loadState ! loaded && loadState ! complete) return script.onload script.onreadystatechange null resolve() } document.head.appendChild(script) }) win.getCSS (url,id false) > new Promise((resolve, reject) > { const link document.createElement(link) link.rel stylesheet link.href url if (id) link.id id link.onerror reject link.onload link.onreadystatechange function() { const loadState this.readyState if (loadState && loadState ! loaded && loadState ! complete) return link.onload link.onreadystatechange null resolve() } document.head.appendChild(link) }) win.activateDarkMode function () { document.documentElement.setAttribute(data-theme, dark) if (document.querySelector(metanametheme-color) ! null) { document.querySelector(metanametheme-color).setAttribute(content, #0d0d0d) } } win.activateLightMode function () { document.documentElement.setAttribute(data-theme, light) if (document.querySelector(metanametheme-color) ! null) { document.querySelector(metanametheme-color).setAttribute(content, ffffff) } } const t saveToLocal.get(theme) if (t dark) activateDarkMode() else if (t light) activateLightMode() const asideStatus saveToLocal.get(aside-status) if (asideStatus ! undefined) { if (asideStatus hide) { document.documentElement.classList.add(hide-aside) } else { document.documentElement.classList.remove(hide-aside) } } const detectApple () > { if(/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)){ document.documentElement.classList.add(apple) } } detectApple() })(window)/script>meta namegenerator contentHexo 6.3.0>/head>body>div idweb_bg>/div>div idsidebar>div idmenu-mask>/div>div idsidebar-menus>div classavatar-img is-center>img src/img/avatar1.jpg onerroronerrornull;src/img/friend_404.gif altavatar/>/div>div classsidebar-site-data site-data is-center>a href/archives/>div classheadline>文章/div>div classlength-num>60/div>/a>a href/tags/>div classheadline>标签/div>div classlength-num>72/div>/a>a href/categories/>div classheadline>分类/div>div classlength-num>0/div>/a>/div>hr classcustom-hr/>div classmenus_items>div classmenus_item>a classsite-page href/>i classfa-fw fas fa-home>/i>span> 主页/span>/a>/div>div classmenus_item>a classsite-page href/about/>i classfa-fw fas fa-address-book>/i>span> 关于/span>/a>/div>div classmenus_item>a classsite-page href/archives/>i classfa-fw fas fa-archive>/i>span> 归档/span>/a>/div>div classmenus_item>a classsite-page href/link/>i classfa-fw fas fa-link>/i>span> Link/span>/a>/div>/div>/div>/div>div classpage idbody-wrap>header classfull_page idpage-header>nav idnav>span idblog-info>a href/ titleCHUYUXUAN>/a>/span>div idmenus>div classmenus_items>div classmenus_item>a classsite-page href/>i classfa-fw fas fa-home>/i>span> 主页/span>/a>/div>div classmenus_item>a classsite-page href/about/>i classfa-fw fas fa-address-book>/i>span> 关于/span>/a>/div>div classmenus_item>a classsite-page href/archives/>i classfa-fw fas fa-archive>/i>span> 归档/span>/a>/div>div classmenus_item>a classsite-page href/link/>i classfa-fw fas fa-link>/i>span> Link/span>/a>/div>/div>div idtoggle-menu>a classsite-page hrefjavascript:void(0);>i classfas fa-bars fa-fw>/i>/a>/div>/div>/nav>div idsite-info>h1 idsite-title>CHUYUXUAN/h1>/div>div idscroll-down>i classfas fa-angle-down scroll-down-effects>/i>/div>/header>main classlayout idcontent-inner>div classrecent-posts idrecent-posts>div classrecent-post-item>div classpost_cover left>a href/2024/04/30/JS%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E4%BB%A3%E7%90%86%E6%A8%A1%E5%BC%8F/ titleJS设计模式-代理模式>img classpost-bg srchttps://s2.loli.net/2024/04/14/ZxojA43sn1HWCiB.png onerrorthis.onerrornull;this.src/img/404.jpg altJS设计模式-代理模式>/a>/div>div classrecent-post-info>a classarticle-title href/2024/04/30/JS%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E4%BB%A3%E7%90%86%E6%A8%A1%E5%BC%8F/ titleJS设计模式-代理模式>JS设计模式-代理模式/a>div classarticle-meta-wrap>span classpost-meta-date>i classfar fa-calendar-alt>/i>span classarticle-meta-label>发表于/span>time datetime2024-04-29T16:52:06.000Z title发表于 2024-04-30 00:52:06>2024-04-30/time>/span>span classarticle-meta>span classarticle-meta-separator>|/span>i classfas fa-comments>/i>a href/2024/04/30/JS%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E4%BB%A3%E7%90%86%E6%A8%A1%E5%BC%8F/#post-comment>span classvaline-comment-count data-xid/2024/04/30/JS%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E4%BB%A3%E7%90%86%E6%A8%A1%E5%BC%8F/>i classfa-solid fa-spinner fa-spin>/i>/span>/a>span classarticle-meta-label> 条评论/span>/span>/div>div classcontent>JS设计模式大合集 仓库地址:JS设计模式大合集欢迎大家 Star ,一起交流学习! 代理模式代理模式(Proxy Pattern)为其他对象提供一种代理以控制对这个对象的访问。我们可以举一个形象的例子:小明的妈妈想要去买水果,但是有事情忙不开,所以叫小明帮忙去买水果。小明出去之后,他可能会先到玩具店逛一下,然后去水果店逛一下,最后把买到的水果带回家。小明在这个过程中,就相当于代理,他代替妈妈买了水果,但是在买水果的过程中,又可以做一些其他的事情。代理模式的应用场景有了代理之后,我们能做的事情可就多了。比如我们日常前端开发过程中使用到的网络请求拦截axios。12345678910111213141516171819202122// 添加请求拦截器http.interceptors.request.use(function (config) { // 在发送请求之前做些什么 console.log('Sending request to:', config.url); return config; }, fun .../div>/div>/div>div classrecent-post-item>div classpost_cover right>a href/2024/04/14/JS%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E7%AD%96%E7%95%A5%E6%A8%A1%E5%BC%8F/ titleJS设计模式-策略模式>img classpost-bg srchttps://s2.loli.net/2024/04/14/PI3fcUwVQhiStEK.png onerrorthis.onerrornull;this.src/img/404.jpg altJS设计模式-策略模式>/a>/div>div classrecent-post-info>a classarticle-title href/2024/04/14/JS%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E7%AD%96%E7%95%A5%E6%A8%A1%E5%BC%8F/ titleJS设计模式-策略模式>JS设计模式-策略模式/a>div classarticle-meta-wrap>span classpost-meta-date>i classfar fa-calendar-alt>/i>span classarticle-meta-label>发表于/span>time datetime2024-04-14T09:02:24.000Z title发表于 2024-04-14 17:02:24>2024-04-14/time>/span>span classarticle-meta>span classarticle-meta-separator>|/span>i classfas fa-comments>/i>a href/2024/04/14/JS%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E7%AD%96%E7%95%A5%E6%A8%A1%E5%BC%8F/#post-comment>span classvaline-comment-count data-xid/2024/04/14/JS%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E7%AD%96%E7%95%A5%E6%A8%A1%E5%BC%8F/>i classfa-solid fa-spinner fa-spin>/i>/span>/a>span classarticle-meta-label> 条评论/span>/span>/div>div classcontent>JS设计模式大合集 仓库地址:JS设计模式大合集欢迎大家 Star ,一起交流学习! 策略模式是个啥策略模式(Strategy Pattern)是一种常见的设计模式,它允许在运行时选择算法的行为。这种模式使得算法可以独立于其使用者而变化。在JavaScript中,策略模式经常用于将一组算法封装成独立的对象,并且使它们在需要时可以相互替换。理解策略模式策略模式通过定义一系列的算法,将它们封装成独立的策略对象,然后在运行时根据需要选择适当的策略对象。这种方式可以使得算法的变化独立于使用算法的客户端代码。策略模式通常包含以下角色:环境(Context):环境类包含一个对策略对象的引用,并且可以在运行时切换不同的策略对象。策略接口(Strategy Interface):定义了一组算法的接口,所有具体策略类都实现了该接口。具体策略(Concrete Strategy):实现了策略接口的具体算法。举个例子可能理论说的还是一头雾水,下面我们通过简单的例子来理解策略模式。例如,我需要一个通用的算法,用来计算图像的面积。那么假设图像分别有:圆形(circle)方形(recta .../div>/div>/div>div classrecent-post-item>div classpost_cover left>a href/2024/04/12/JS%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E5%8D%95%E5%88%97%E6%A8%A1%E5%BC%8F/ titleJS设计模式-单列模式>img classpost-bg srchttps://s2.loli.net/2024/04/14/PRamo5sxw9ithZK.png onerrorthis.onerrornull;this.src/img/404.jpg altJS设计模式-单列模式>/a>/div>div classrecent-post-info>a classarticle-title href/2024/04/12/JS%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E5%8D%95%E5%88%97%E6%A8%A1%E5%BC%8F/ titleJS设计模式-单列模式>JS设计模式-单列模式/a>div classarticle-meta-wrap>span classpost-meta-date>i classfar fa-calendar-alt>/i>span classarticle-meta-label>发表于/span>time datetime2024-04-12T06:39:37.000Z title发表于 2024-04-12 14:39:37>2024-04-12/time>/span>span classarticle-meta>span classarticle-meta-separator>|/span>i classfas fa-comments>/i>a href/2024/04/12/JS%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E5%8D%95%E5%88%97%E6%A8%A1%E5%BC%8F/#post-comment>span classvaline-comment-count data-xid/2024/04/12/JS%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E5%8D%95%E5%88%97%E6%A8%A1%E5%BC%8F/>i classfa-solid fa-spinner fa-spin>/i>/span>/a>span classarticle-meta-label> 条评论/span>/span>/div>div classcontent>JS设计模式大合集 仓库地址:JS设计模式大合集欢迎大家 Star ,一起交流学习! JS设计模式-单列模式单列模式(Singleton pattern)是一种常见的设计模式,用于限制一个类只能有一个实例,并提供一个全局访问点来获取这个唯一实例。换言之,你只能创建一个特定类的对象。如果你尝试创建一个已存在的实例,那么它将始终返回你已创建的那个实例。这种模式特别适合需要保持状态的场合,例如数据库连接日志记录VUEX或者任何其他可能需要多个地方更新的数据来写一个单列模式吧如我们上面所说,单列模式只有一个实例,并且提供一个全局的访问点来访问获取这个唯一实例。因此,也就是私有属性。在js中,我们可以利用闭包来做私有属性。1234567891011121314151617181920212223242526272829303132333435363738type myInstance { name: string; showMessage: () > void;};const Singleton (function () .../div>/div>/div>div classrecent-post-item>div classpost_cover right>a href/2024/04/03/JS%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E5%8F%91%E5%B8%83%E8%AE%A2%E9%98%85%E8%80%85%E6%A8%A1%E5%BC%8F/ titleJS设计模式-发布订阅者模式>img classpost-bg srchttps://s2.loli.net/2024/04/06/WXv36wo2Cy5tEqK.png onerrorthis.onerrornull;this.src/img/404.jpg altJS设计模式-发布订阅者模式>/a>/div>div classrecent-post-info>a classarticle-title href/2024/04/03/JS%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E5%8F%91%E5%B8%83%E8%AE%A2%E9%98%85%E8%80%85%E6%A8%A1%E5%BC%8F/ titleJS设计模式-发布订阅者模式>JS设计模式-发布订阅者模式/a>div classarticle-meta-wrap>span classpost-meta-date>i classfar fa-calendar-alt>/i>span classarticle-meta-label>发表于/span>time datetime2024-04-03T14:53:04.000Z title发表于 2024-04-03 22:53:04>2024-04-03/time>/span>span classarticle-meta>span classarticle-meta-separator>|/span>i classfas fa-comments>/i>a href/2024/04/03/JS%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E5%8F%91%E5%B8%83%E8%AE%A2%E9%98%85%E8%80%85%E6%A8%A1%E5%BC%8F/#post-comment>span classvaline-comment-count data-xid/2024/04/03/JS%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E5%8F%91%E5%B8%83%E8%AE%A2%E9%98%85%E8%80%85%E6%A8%A1%E5%BC%8F/>i classfa-solid fa-spinner fa-spin>/i>/span>/a>span classarticle-meta-label> 条评论/span>/span>/div>div classcontent>JS设计模式大合集 仓库地址:JS设计模式大合集欢迎大家 Star ,一起交流学习! JS设计模式-发布订阅者模式如果你用过VUE、React, 你应该对这个发布者订阅者模式不陌生,明天让我们来一起来探讨一下发布订阅者模式。什么是发布订阅者模式在我们日常生活中,其实有很多发布订阅者模式案例。我们在微信里面订阅了一个公众号,这个公众号 在某一个时间阶段会给我发推文。在电商平台预约一个商品,等商品有货时,平台会给我们发短信通知。点一个外卖。……等等数不胜数。不过从上面的例子,我们可以 提取出三样东西, 一个是订阅者,一个是平台,一个是发布者。 订阅者会向平台订阅属于自己的个性需求, 平台则会收集这个需求, 发布者就会根据这个需求发布对应的内容, 在此之后,平台会把发布者发布的内容推送到订阅者。好了,有了这三个基本接下来我们可以开始创造属于我们自己的发布订阅者模式啦。创建一个发布订阅模式首先我们需要一个平台,它可以记录订阅者的需求,以及让发布者能够根据需求发布的功能:123const platform { eventPool:{ .../div>/div>/div>div classrecent-post-item>div classpost_cover left>a href/2024/03/26/Javascript%E6%93%8D%E4%BD%9C%E7%AC%A6%E8%BF%90%E7%AE%97%E5%90%88%E9%9B%86/ titleJavascript操作符运算合集>img classpost-bg srchttps://s21.ax1x.com/2024/03/26/pF5gcY4.png onerrorthis.onerrornull;this.src/img/404.jpg altJavascript操作符运算合集>/a>/div>div classrecent-post-info>a classarticle-title href/2024/03/26/Javascript%E6%93%8D%E4%BD%9C%E7%AC%A6%E8%BF%90%E7%AE%97%E5%90%88%E9%9B%86/ titleJavascript操作符运算合集>Javascript操作符运算合集/a>div classarticle-meta-wrap>span classpost-meta-date>i classfar fa-calendar-alt>/i>span classarticle-meta-label>发表于/span>time datetime2024-03-26T10:40:59.000Z title发表于 2024-03-26 18:40:59>2024-03-26/time>/span>span classarticle-meta>span classarticle-meta-separator>|/span>i classfas fa-comments>/i>a href/2024/03/26/Javascript%E6%93%8D%E4%BD%9C%E7%AC%A6%E8%BF%90%E7%AE%97%E5%90%88%E9%9B%86/#post-comment>span classvaline-comment-count data-xid/2024/03/26/Javascript%E6%93%8D%E4%BD%9C%E7%AC%A6%E8%BF%90%E7%AE%97%E5%90%88%E9%9B%86/>i classfa-solid fa-spinner fa-spin>/i>/span>/a>span classarticle-meta-label> 条评论/span>/span>/div>div classcontent>Javascript操作符运算合集在javascript的语法中,不同类型通过操作符运算后求最终值这样的运算,在面试过程中会经常碰到,因此,今天我们就来一起探讨一下对应的规则。四则运算符+ 加法加法有两种运算法则,分别为数字加法和字符串连接。运算时,它首先将两个操作数强制转换为基本类型后再计算。我们来一一举例:若有一方是字符串,则另一方会被转换成字符串,最后再连接起来形成新的字符串。1234const str 'chuyuxuan'const num 1console.log(str + num) // chuyuxuan1typeof (str + num) // 'string'若双方都是 BigInt,则执行 BigInt 加法。如果一方是 BigInt 而**另一方1**不是,会抛出 TypeError。12345678910// 双方都是 BigIntconst bnum1 2024nconst bnum2 2025nconsole.log(bnum1 + bnum2) // 4049ntypeof .../div>/div>/div>div classrecent-post-item>div classpost_cover right>a href/2023/08/06/20230806/ titlevue源码阅读-Object.defineProperty>img classpost-bg srchttps://s2.loli.net/2023/08/06/Np49USqBcGLwefH.png onerrorthis.onerrornull;this.src/img/404.jpg altvue源码阅读-Object.defineProperty>/a>/div>div classrecent-post-info>a classarticle-title href/2023/08/06/20230806/ titlevue源码阅读-Object.defineProperty>vue源码阅读-Object.defineProperty/a>div classarticle-meta-wrap>span classpost-meta-date>i classfar fa-calendar-alt>/i>span classarticle-meta-label>发表于/span>time datetime2023-08-06T07:10:58.000Z title发表于 2023-08-06 15:10:58>2023-08-06/time>/span>span classarticle-meta>span classarticle-meta-separator>|/span>i classfas fa-comments>/i>a href/2023/08/06/20230806/#post-comment>span classvaline-comment-count data-xid/2023/08/06/20230806/>i classfa-solid fa-spinner fa-spin>/i>/span>/a>span classarticle-meta-label> 条评论/span>/span>/div>div classcontent>在vue2中,这个 js 原生API就是整个vue2的核心了。我们先来看一下官方文档对该属性的描述:Object.defineProperty() 允许精确地添加或修改对象上的属性。Object.defineProperty的语法如下:1Object.defineProperty(obj, prop, descriptor)下面是它的参数介绍:obj要定义属性的对象。prop一个字符串或 Symbol,指定了要定义或修改的属性键。descriptor要定义或修改的属性的描述符。不知道你是不是有这样的疑问,descriptor 到底是个啥?这里呢,我们来了解一下:对象的属性描述符是一个用于描述对象属性特性的配置对象,它包含以下可选属性:value: 属性的值,默认为 undefined。用于设置属性的初始值。writable: 布尔值,默认为 false。如果为 true,则属性的值可以被修改,否则为只读属性。enumerable: 布尔值,默认为 false。如果为 true,则属性可以通过 for...in 循环和 Object.keys .../div>/div>/div>div classrecent-post-item>div classpost_cover left>a href/2023/06/21/202306210946/ title如何优雅的甩锅BUG>img classpost-bg srchttps://s2.loli.net/2023/06/21/FouatOY6wW7sfI9.png onerrorthis.onerrornull;this.src/img/404.jpg alt如何优雅的甩锅BUG>/a>/div>div classrecent-post-info>a classarticle-title href/2023/06/21/202306210946/ title如何优雅的甩锅BUG>如何优雅的甩锅BUG/a>div classarticle-meta-wrap>span classpost-meta-date>i classfar fa-calendar-alt>/i>span classarticle-meta-label>发表于/span>time datetime2023-06-21T01:46:59.000Z title发表于 2023-06-21 09:46:59>2023-06-21/time>/span>span classarticle-meta>span classarticle-meta-separator>|/span>i classfas fa-comments>/i>a href/2023/06/21/202306210946/#post-comment>span classvaline-comment-count data-xid/2023/06/21/202306210946/>i classfa-solid fa-spinner fa-spin>/i>/span>/a>span classarticle-meta-label> 条评论/span>/span>/div>div classcontent>BUG归属地判断在前后端分离的项目中,如何判断是前端BUG还是后端BUG?其实方法很简单,我们打开浏览器的控制台(图1)就可以一目了然了。图 1判断前后端BUG,我们主要看Network网络选项卡,如图2方框所标注的。通过网络的传值,我们就可以知道个大概了。图2介绍了部分功能项图 2接下来,让我们以BUG为例。例如,在页面中存在这样的BUG,当我们改变了一个表单值,并且点击保存。但是我再打开这个表单,发现这个值没有更新。图 3我们就可以看接口来判断是前端问题还是后端问题了。首先,保存时是会调用保存接口的,我们看看前端有没有把清空后的值传过去。如图4 所示,值已经传过去了。图 4我们再看看查询接口,后端有没有把正确的值更新回来。如图5所示.图 5接口返回回来的值确是旧值,好啦,原因找到了,是因为前端传过去的值后端没有更新,然后返回的还是旧值,所以我们可以判断,这个BUG是后端的BUG 类似的,如果后端返回过来的值更新了,有想要的值,但是前端没有更新或者渲染,就是前端的BUG啦。/div>/div>/div>div classrecent-post-item>div classrecent-post-info no-cover>a classarticle-title href/2023/03/06/11/ title如何拿到选项的label>如何拿到选项的label/a>div classarticle-meta-wrap>span classpost-meta-date>i classfar fa-calendar-alt>/i>span classarticle-meta-label>发表于/span>time datetime2023-03-06T11:15:29.000Z title发表于 2023-03-06 19:15:29>2023-03-06/time>/span>span classarticle-meta>span classarticle-meta-separator>|/span>i classfas fa-comments>/i>a href/2023/03/06/11/#post-comment>span classvaline-comment-count data-xid/2023/03/06/11/>i classfa-solid fa-spinner fa-spin>/i>/span>/a>span classarticle-meta-label> 条评论/span>/span>/div>div classcontent>如何拿到选项的label在我们的日常开发中,下拉框获取值是一个很常见的业务方法。基本上都是拿到代码里的value,如果有一天,我需要label的值该如何拿到呢?这里提供几个方法:方法1通过find函数去过滤对应的label,具体方法如下:123456789101112<script setup>import { ref } from 'vue'const value ref('')let obj ref({})const getLabel (value) > { console.log(value) obj options.find((item) > { return item.value value }) console.log(obj.label)}</script>这里通过find 找到了对应的值。方法2我们可以直接通过绑定值拿label,具体方法如下:123 .../div>/div>/div>div classrecent-post-item>div classpost_cover left>a href/2022/11/01/win%E8%AE%BE%E7%BD%AE%E5%90%8C%E6%97%B6%E9%93%BE%E6%8E%A5%E5%86%85%E5%A4%96%E7%BD%91/ titlewin设置同时链接内外网>img classpost-bg srchttps://s2.loli.net/2022/11/01/XurvGZ2QkBUIWmY.png onerrorthis.onerrornull;this.src/img/404.jpg altwin设置同时链接内外网>/a>/div>div classrecent-post-info>a classarticle-title href/2022/11/01/win%E8%AE%BE%E7%BD%AE%E5%90%8C%E6%97%B6%E9%93%BE%E6%8E%A5%E5%86%85%E5%A4%96%E7%BD%91/ titlewin设置同时链接内外网>win设置同时链接内外网/a>div classarticle-meta-wrap>span classpost-meta-date>i classfar fa-calendar-alt>/i>span classarticle-meta-label>发表于/span>time datetime2022-11-01T04:03:29.000Z title发表于 2022-11-01 12:03:29>2022-11-01/time>/span>span classarticle-meta>span classarticle-meta-separator>|/span>i classfas fa-comments>/i>a href/2022/11/01/win%E8%AE%BE%E7%BD%AE%E5%90%8C%E6%97%B6%E9%93%BE%E6%8E%A5%E5%86%85%E5%A4%96%E7%BD%91/#post-comment>span classvaline-comment-count data-xid/2022/11/01/win%E8%AE%BE%E7%BD%AE%E5%90%8C%E6%97%B6%E9%93%BE%E6%8E%A5%E5%86%85%E5%A4%96%E7%BD%91/>i classfa-solid fa-spinner fa-spin>/i>/span>/a>span classarticle-meta-label> 条评论/span>/span>/div>div classcontent>需求我需要访问内网的几个固定IP。例如 10.76.55.43,172.89.45.2。等等,但是内网链接好后,无法访问互联网,不利于开发的效率提升。故此,现需求如下:通过网线走内网访问固定IP的服务。通过Wi-Fi走外网访问互联网。思路其实思路很明确,只要你访问内网服务,就直接路由到内网即可,其余的一律走外网。所以,我们只要简单的改一下路由表配置就行。1.断开网线链接当然,你可以物理意义上的把网线给拔掉。或者,直接禁用网络。2.链接WiFi找网关首先,点一下Wi-Fi链接,我们需要找到你WiFi的网关。链接好后,输入1ipconfig找到你WiFi那列,找到网关(gateway),记录下来这个地址,例如192.168.8.1。⚠️下面也是基于这个网关而写的,你需要换成你自己的输入 1route print -4 查看接口列表,找到你的有线网卡和无线网卡的接口数字,例如我的如下 12345678910111213141516171819202122232425 .../div>/div>/div>div classrecent-post-item>div classpost_cover right>a href/2022/10/09/%E5%B0%9D%E8%AF%95%E9%85%8D%E7%BD%AE%E4%B8%80%E4%B8%8B%E7%AE%80%E5%8D%95%E7%9A%84webpack/ title尝试配置一下简单的webpack?>img classpost-bg srchttps://s2.loli.net/2022/10/09/rvQuakSAYZ2b9Wg.png onerrorthis.onerrornull;this.src/img/404.jpg alt尝试配置一下简单的webpack?>/a>/div>div classrecent-post-info>a classarticle-title href/2022/10/09/%E5%B0%9D%E8%AF%95%E9%85%8D%E7%BD%AE%E4%B8%80%E4%B8%8B%E7%AE%80%E5%8D%95%E7%9A%84webpack/ title尝试配置一下简单的webpack?>尝试配置一下简单的webpack?/a>div classarticle-meta-wrap>span classpost-meta-date>i classfar fa-calendar-alt>/i>span classarticle-meta-label>发表于/span>time datetime2022-10-09T13:50:31.000Z title发表于 2022-10-09 21:50:31>2022-10-09/time>/span>span classarticle-meta>span classarticle-meta-separator>|/span>i classfas fa-comments>/i>a href/2022/10/09/%E5%B0%9D%E8%AF%95%E9%85%8D%E7%BD%AE%E4%B8%80%E4%B8%8B%E7%AE%80%E5%8D%95%E7%9A%84webpack/#post-comment>span classvaline-comment-count data-xid/2022/10/09/%E5%B0%9D%E8%AF%95%E9%85%8D%E7%BD%AE%E4%B8%80%E4%B8%8B%E7%AE%80%E5%8D%95%E7%9A%84webpack/>i classfa-solid fa-spinner fa-spin>/i>/span>/a>span classarticle-meta-label> 条评论/span>/span>/div>div classcontent>准备1.需要安装node.js,当前教学版本为v12.22.122.一个IDE,这里使用vs code ,当前版本为v1.70.2。初始化一个项目在一个位置,我们新建一个文件夹,并且进入该文件夹。12mkdir webpack_studycd webpack_study初始化一个node项目。1npm init -y此时,在该目录下会有一个package.json文件12.└── package.json我们在根目录创建三个文件index.html,index.js,outside.js。12345.├── index.html├── index.js├── outside.js└── package.jsonindex.html内容如下:1234567891011121314151617<!DOCTYPE html><html lang"zh"><head> <meta charset"UTF-8"> <title>index</ti .../div>/div>/div>nav idpagination>div classpagination>span classpage-number current>1/span>a classpage-number href/page/2/#content-inner>2/a>span classspace>…/span>a classpage-number href/page/6/#content-inner>6/a>a classextend next relnext href/page/2/#content-inner>i classfas fa-chevron-right fa-fw>/i>/a>/div>/nav>/div>div classaside-content idaside-content>div classcard-widget card-info>div classis-center>div classavatar-img>img src/img/avatar1.jpg onerrorthis.onerrornull;this.src/img/friend_404.gif altavatar/>/div>div classauthor-info__name>chuyuxuan/div>div classauthor-info__description>/div>/div>div classcard-info-data site-data is-center>a href/archives/>div classheadline>文章/div>div classlength-num>60/div>/a>a href/tags/>div classheadline>标签/div>div classlength-num>72/div>/a>a href/categories/>div classheadline>分类/div>div classlength-num>0/div>/a>/div>a idcard-info-btn target_blank relnoopener hrefhttps://github.com/Chuyuxuan0v0>i classfab fa-github>/i>span>Follow Me/span>/a>/div>div classsticky_layout>div classcard-widget card-recent-post>div classitem-headline>i classfas fa-history>/i>span>最新文章/span>/div>div classaside-list>div classaside-list-item>a classthumbnail href/2024/04/30/JS%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E4%BB%A3%E7%90%86%E6%A8%A1%E5%BC%8F/ titleJS设计模式-代理模式>img srchttps://s2.loli.net/2024/04/14/ZxojA43sn1HWCiB.png onerrorthis.onerrornull;this.src/img/404.jpg altJS设计模式-代理模式/>/a>div classcontent>a classtitle href/2024/04/30/JS%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E4%BB%A3%E7%90%86%E6%A8%A1%E5%BC%8F/ titleJS设计模式-代理模式>JS设计模式-代理模式/a>time datetime2024-04-29T16:52:06.000Z title发表于 2024-04-30 00:52:06>2024-04-30/time>/div>/div>div classaside-list-item>a classthumbnail href/2024/04/14/JS%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E7%AD%96%E7%95%A5%E6%A8%A1%E5%BC%8F/ titleJS设计模式-策略模式>img srchttps://s2.loli.net/2024/04/14/PI3fcUwVQhiStEK.png onerrorthis.onerrornull;this.src/img/404.jpg altJS设计模式-策略模式/>/a>div classcontent>a classtitle href/2024/04/14/JS%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E7%AD%96%E7%95%A5%E6%A8%A1%E5%BC%8F/ titleJS设计模式-策略模式>JS设计模式-策略模式/a>time datetime2024-04-14T09:02:24.000Z title发表于 2024-04-14 17:02:24>2024-04-14/time>/div>/div>div classaside-list-item>a classthumbnail href/2024/04/12/JS%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E5%8D%95%E5%88%97%E6%A8%A1%E5%BC%8F/ titleJS设计模式-单列模式>img srchttps://s2.loli.net/2024/04/14/PRamo5sxw9ithZK.png onerrorthis.onerrornull;this.src/img/404.jpg altJS设计模式-单列模式/>/a>div classcontent>a classtitle href/2024/04/12/JS%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E5%8D%95%E5%88%97%E6%A8%A1%E5%BC%8F/ titleJS设计模式-单列模式>JS设计模式-单列模式/a>time datetime2024-04-12T06:39:37.000Z title发表于 2024-04-12 14:39:37>2024-04-12/time>/div>/div>div classaside-list-item>a classthumbnail href/2024/04/03/JS%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E5%8F%91%E5%B8%83%E8%AE%A2%E9%98%85%E8%80%85%E6%A8%A1%E5%BC%8F/ titleJS设计模式-发布订阅者模式>img srchttps://s2.loli.net/2024/04/06/WXv36wo2Cy5tEqK.png onerrorthis.onerrornull;this.src/img/404.jpg altJS设计模式-发布订阅者模式/>/a>div classcontent>a classtitle href/2024/04/03/JS%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E5%8F%91%E5%B8%83%E8%AE%A2%E9%98%85%E8%80%85%E6%A8%A1%E5%BC%8F/ titleJS设计模式-发布订阅者模式>JS设计模式-发布订阅者模式/a>time datetime2024-04-03T14:53:04.000Z title发表于 2024-04-03 22:53:04>2024-04-03/time>/div>/div>div classaside-list-item>a classthumbnail href/2024/03/26/Javascript%E6%93%8D%E4%BD%9C%E7%AC%A6%E8%BF%90%E7%AE%97%E5%90%88%E9%9B%86/ titleJavascript操作符运算合集>img srchttps://s21.ax1x.com/2024/03/26/pF5gcY4.png onerrorthis.onerrornull;this.src/img/404.jpg altJavascript操作符运算合集/>/a>div classcontent>a classtitle href/2024/03/26/Javascript%E6%93%8D%E4%BD%9C%E7%AC%A6%E8%BF%90%E7%AE%97%E5%90%88%E9%9B%86/ titleJavascript操作符运算合集>Javascript操作符运算合集/a>time datetime2024-03-26T10:40:59.000Z title发表于 2024-03-26 18:40:59>2024-03-26/time>/div>/div>/div>/div>div classcard-widget card-tags>div classitem-headline>i classfas fa-tags>/i>span>标签/span>/div>div classcard-tag-cloud>a href/tags/jQuery/ stylefont-size: 1.18em; color: #999ca1>jQuery/a> a href/tags/gitee/ stylefont-size: 1.1em; color: #999>gitee/a> a href/tags/text/ stylefont-size: 1.1em; color: #999>text/a> a href/tags/%E5%89%8D%E7%AB%AF/ stylefont-size: 1.5em; color: #99a9bf>前端/a> a href/tags/link/ stylefont-size: 1.1em; color: #999>link/a> a href/tags/GitHub/ stylefont-size: 1.1em; color: #999>GitHub/a> a href/tags/BFC/ stylefont-size: 1.1em; color: #999>BFC/a> a href/tags/%E7%A3%81%E7%9B%98%E8%B0%83%E5%BA%A6%E7%AD%96%E7%95%A5/ stylefont-size: 1.1em; color: #999>磁盘调度策略/a> a href/tags/%E9%93%B6%E8%A1%8C%E5%AE%B6%E7%AE%97%E6%B3%95/ stylefont-size: 1.1em; color: #999>银行家算法/a> a href/tags/JS%E5%AF%B9%E8%B1%A1/ stylefont-size: 1.1em; color: #999>JS对象/a> a href/tags/DNS/ stylefont-size: 1.1em; color: #999>DNS/a> a href/tags/node-js/ stylefont-size: 1.1em; color: #999>node.js/a> a href/tags/%E6%8F%92%E4%BB%B6/ stylefont-size: 1.1em; color: #999>插件/a> a href/tags/atom/ stylefont-size: 1.1em; color: #999>atom/a> a href/tags/background/ stylefont-size: 1.1em; color: #999>background/a> a href/tags/CDMA%E7%A0%81%E5%88%86%E5%A4%9A%E5%9D%80/ stylefont-size: 1.1em; color: #999>CDMA码分多址/a> a href/tags/Java-Web/ stylefont-size: 1.1em; color: #999>Java Web/a> a href/tags/Javascript/ stylefont-size: 1.34em; color: #99a3b0>Javascript/a> a href/tags/fullpage/ stylefont-size: 1.1em; color: #999>fullpage/a> a href/tags/Linux/ stylefont-size: 1.26em; color: #999fa8>Linux/a> a href/tags/openGL/ stylefont-size: 1.18em; color: #999ca1>openGL/a> a href/tags/React/ stylefont-size: 1.1em; color: #999>React/a> a href/tags/%E6%A6%82%E7%8E%87%E8%AE%BA/ stylefont-size: 1.1em; color: #999>概率论/a> a href/tags/%E7%AD%96%E7%95%A5%E6%A8%A1%E5%BC%8F/ stylefont-size: 1.1em; color: #999>策略模式/a> a href/tags/Android/ stylefont-size: 1.1em; color: #999>Android/a> a href/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/ stylefont-size: 1.42em; color: #99a6b7>计算机网络/a> a href/tags/bat/ stylefont-size: 1.1em; color: #999>bat/a> a href/tags/WebView/ stylefont-size: 1.1em; color: #999>WebView/a> a href/tags/android/ stylefont-size: 1.1em; color: #999>android/a> a href/tags/nginx/ stylefont-size: 1.1em; color: #999>nginx/a> a href/tags/list/ stylefont-size: 1.1em; color: #999>list/a> a href/tags/%E9%9D%A2%E8%AF%95/ stylefont-size: 1.1em; color: #999>面试/a> a href/tags/%E9%80%89%E6%8B%A9%E8%B0%83%E5%BA%A6%E7%AD%96%E7%95%A5/ stylefont-size: 1.1em; color: #999>选择调度策略/a> a href/tags/%E5%9B%BE%E5%BA%8A/ stylefont-size: 1.1em; color: #999>图床/a> a href/tags/webpack/ stylefont-size: 1.1em; color: #999>webpack/a> a href/tags/Http/ stylefont-size: 1.1em; color: #999>Http/a> a href/tags/javaScript/ stylefont-size: 1.1em; color: #999>javaScript/a> a href/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9B%BE%E5%BD%A2%E5%AD%A6/ stylefont-size: 1.34em; color: #99a3b0>计算机图形学/a> a href/tags/%E4%BB%A3%E7%90%86%E6%A8%A1%E5%BC%8F/ stylefont-size: 1.1em; color: #999>代理模式/a> a href/tags/%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0/ stylefont-size: 1.1em; color: #999>文件上传/a>/div>/div>div classcard-widget card-archives>div classitem-headline>i classfas fa-archive>/i>span>归档/span>a classcard-more-btn href/archives/ title查看更多> i classfas fa-angle-right>/i>/a>/div>ul classcard-archive-list>li classcard-archive-list-item>a classcard-archive-list-link href/archives/2024/04/>span classcard-archive-list-date>四月 2024/span>span classcard-archive-list-count>4/span>/a>/li>li classcard-archive-list-item>a classcard-archive-list-link href/archives/2024/03/>span classcard-archive-list-date>三月 2024/span>span classcard-archive-list-count>1/span>/a>/li>li classcard-archive-list-item>a classcard-archive-list-link href/archives/2023/08/>span classcard-archive-list-date>八月 2023/span>span classcard-archive-list-count>1/span>/a>/li>li classcard-archive-list-item>a classcard-archive-list-link href/archives/2023/06/>span classcard-archive-list-date>六月 2023/span>span classcard-archive-list-count>1/span>/a>/li>li classcard-archive-list-item>a classcard-archive-list-link href/archives/2023/03/>span classcard-archive-list-date>三月 2023/span>span classcard-archive-list-count>1/span>/a>/li>li classcard-archive-list-item>a classcard-archive-list-link href/archives/2022/11/>span classcard-archive-list-date>十一月 2022/span>span classcard-archive-list-count>1/span>/a>/li>li classcard-archive-list-item>a classcard-archive-list-link href/archives/2022/10/>span classcard-archive-list-date>十月 2022/span>span classcard-archive-list-count>1/span>/a>/li>li classcard-archive-list-item>a classcard-archive-list-link href/archives/2022/01/>span classcard-archive-list-date>一月 2022/span>span classcard-archive-list-count>1/span>/a>/li>/ul>/div>div classcard-widget card-webinfo>div classitem-headline>i classfas fa-chart-line>/i>span>网站资讯/span>/div>div classwebinfo>div classwebinfo-item>div classitem-name>文章数目 :/div>div classitem-count>60/div>/div>div classwebinfo-item>div classitem-name>本站访客数 :/div>div classitem-count idbusuanzi_value_site_uv>i classfa-solid fa-spinner fa-spin>/i>/div>/div>div classwebinfo-item>div classitem-name>本站总访问量 :/div>div classitem-count idbusuanzi_value_site_pv>i classfa-solid fa-spinner fa-spin>/i>/div>/div>div classwebinfo-item>div classitem-name>最后更新时间 :/div>div classitem-count idlast-push-date data-lastPushDate2024-04-29T17:53:58.918Z>i classfa-solid fa-spinner fa-spin>/i>/div>/div>/div>/div>/div>/div>/main>footer idfooter>div idfooter-wrap>div classcopyright>©2019 - 2024 By CHUYUXUAN/div>div classframework-info>span>Framework /span>a target_blank relnoopener hrefhttps://hexo.io>Hexo/a>span classfooter-separator>|/span>span>Theme /span>a target_blank relnoopener hrefhttps://github.com/jerryc127/hexo-theme-butterfly>Butterfly/a>span classfooter-separator>|/span>span>Design By /span>a hrefhttps://blog.chuyuxuan.top>CHUYUXUAN/a>/div>/div>/footer>/div>div idrightside>div idrightside-config-hide>button iddarkmode typebutton title浅色和深色模式转换>i classfas fa-adjust>/i>/button>button idhide-aside-btn typebutton title单栏和双栏切换>i classfas fa-arrows-alt-h>/i>/button>/div>div idrightside-config-show>button idrightside_config typebutton title设置>i classfas fa-cog fa-spin>/i>/button>button idgo-up typebutton title回到顶部>span classscroll-percent>/span>i classfas fa-arrow-up>/i>/button>/div>/div>div>script src/js/utils.js>/script>script src/js/main.js>/script>script srchttps://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox/fancybox.umd.min.js>/script>div classjs-pjax>script>(() > { function loadValine () { function initValine () { let initData { el: #vcomment, appId: 4VHYBgLfdjw6zhs1Ep46acMw-gzGzoHsz, appKey: t4eW4wzuDJuIU1McV0Ir9Dzq, serverURLs: } const valine new Valine(initData) } if (typeof Valine function) initValine() else getScript(https://cdn.jsdelivr.net/npm/valine/dist/Valine.min.js).then(initValine) } window.pjax ? loadValine() : window.addEventListener(load, loadValine)})()/script>/div>script async data-pjax src//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js>/script>/div>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]