![](https://img-blog.csdnimg.cn/20190907005303413.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JavaScript进阶之路高级
文章平均质量分 66
空中无色,无受想行识,无眼耳鼻舌身意,无色声香味触法,无眼界乃至无意识界,无无明亦无无明尽,乃至无老死,亦无老死尽,无苦集灭道,无智亦无得。
hello,是翠花呀
地势坤,君子以厚德载物
展开
-
代码初学者可以看看这样可不可以快速理解链表
如果用js来模拟链表操作,我们应该怎样理解?网上大部分就是贴一下概念,一张图,一篇代码,但是对于小白来说还是很抽象。什么指针?什么next?为什么一会儿next=值一会儿next=next?令很多初学代码的人很困惑,而且JavaScript是弱类型语言,没有“指针”这一概念,导致对很多文章里说的指针不太不理。链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部原创 2021-12-30 23:24:58 · 287 阅读 · 0 评论 -
从日常应用例子defineProperty到vue.js computed实现
相信很多人知道 defineProperty ,或者在面试的时候被问过“vue(2)实现双向数据绑定的原理”呀“vue3 与 vue2 实现双向绑定的区别”呀等类似问题了。官方描述:Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象。大白话就是说可以通过这个方法在 a 对象上定义一些属性更改 a 对象的可读/写和值的操作。懒得写了,复制的官方示例 ????:往 object 上添加了个值为 42 不可赋值的 prope原创 2021-11-01 00:28:05 · 172 阅读 · 0 评论 -
JavaScript数据转换一些小技巧
有时候后端返回的数据格式不能直接使用,这时前端就需要额外处理,我记录了一些常见的数据处理方式,如果有其他的小伙伴们可以下方评论。1.a对象数组对象映射为b对象数组,map方法多快好省const a = [ { name: "li", age: 24, sex: "女" }, { name: "lizi", age: 24, sex: "女" },];const b = a.map((item) => item.name); // [ 'li', 'lizi' ]const c原创 2021-09-17 00:27:48 · 305 阅读 · 0 评论 -
promise 使用竟态机制以及在实际中的应用
竟态,意思是程序的运行结果与时间有关,可能前一秒是 A 结果但是推迟几秒后是 B 结果。什么时候用到竟态当我们需要判断异步方法执行顺序或时间的时候:function delay(time = 1000) { return new Promise((resolve, reject) => { setTimeout(() => { reject("超时");...原创 2019-12-19 01:31:27 · 219 阅读 · 0 评论 -
typescript初探之函数(function)与泛型(generic)
之前我们有简单了解了一下使用接口表示函数类型。接下来我们了解 typescript 中的函数和泛型。函数//声明式function add(x, y) { return x + y;}// 函数表达式let myAdd = function(x, y) { return x + y;};JavaScript 声明方式有声明式和表达式,另外有具名函数和匿名函数:// ...原创 2019-12-05 01:29:09 · 1898 阅读 · 0 评论 -
JavaScript必备知识点之Object.defineProperty与es6Proxy代理二三事(二)
上次我们了解了 Object.defineProperty。defineProperty 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象。属性描述符里面有 get,和 set 方法提供 geeter 和 setter。认识 proxyProxy 对象用于定义基本操作的自定义行为(如属性查找,赋值,枚举,函数调用等)。let p = new Proxy(t...原创 2019-11-27 09:14:52 · 265 阅读 · 0 评论 -
JavaScript必备知识点之Object.defineProperty与es6Proxy代理二三事(一)
乍一看proxy就想到了 Nginx 里面的代理。不过今天要分享的不是 Nginx 里的代理,而是 ES6 新增的类Proxy。代理一词早在 JavaScript 事件委托中有出现(利用事件冒泡向父级添加事件作用于子级)。就是说我不直接操作要作用的对象而是通过“中介”来操作。事件代理document.addEventListener("click", function(e) { //...原创 2019-11-21 12:40:30 · 464 阅读 · 2 评论 -
typescript 初探之 interface(接口)
typescript 接口用于约束变量的类型,名称与需要验证的变量一一对应,它不会去检查属性的顺序,只要相应的属性存在并且类型也是对的就可以,可复用。它的结构是interface 接口名称 {定义规则}。interface Test { price: number; name: string;}let info: Test = { price: 10, name: "Appl...原创 2019-11-16 19:01:17 · 1201 阅读 · 0 评论 -
typescript 初探之基础类型附ts式求斐波拉切数列
typescript 支持校验 JavaScript 数据类型,比如 number、boolean、string…可以让我们在写程序时清晰地看见各个对象的类型,更规范地编写,更方便地定位错误。比如这样操作:let bo: boolean = false;let num: number = 4;let name: string = "lisi";定义数组在元素类型后面加[],表示由此...原创 2019-11-04 21:04:29 · 202 阅读 · 0 评论 -
__proto__、Object.setPrototypeOf()、Object.getPrototypeOf()
__proto__属性首先来回顾一下原型和原型链。原型ECMAScript有特定规则,一旦创建了一个函数那么这个函数就有一个原型(prototype)属性,这个属性是一个指针,指向属性的原型对象。通过构造函数创建的实例可以共享原型对象拥有的属性和方法。例如:function Person(){ }原型链点击这里了解更多JavaScript之继承的几种形式...原创 2019-10-27 23:42:18 · 903 阅读 · 0 评论 -
onresize、ResizeObserver 监听浏览器宽高变化和元素宽高变化在Vue、react中使用
onresizeonresize 事件会在窗口或框架被调整大小时发生。当需要对窗口大小变化做监听时,可以使用。例如我们需要在窗口大小改变的时候改变某个元素的宽高或者执行某个函数。<body onresize="resizeFun()">window.onresize = function() { // SomeJavaScriptCode};除了 body 标签,其...原创 2019-09-26 00:42:12 · 7495 阅读 · 0 评论 -
用实例说明 var、let、const 的区别和特性
用实例说明 var、let、const 的区别和特性写了这么就居然发现没写一篇关于 let 和 const 的…从今天开始全方位的进军 es6,哈哈啊哈哈哈首先回顾一下 es5 var 的特性和作用域。var 命令可以声明一个变量,声明的变量和函数会有变量提升。例如:console.log(a); // undefinedvar a = 10;console.log(foo); ...原创 2019-10-09 23:52:57 · 277 阅读 · 0 评论 -
Element.scrollIntoView()、window.scrollXX 和 vue router 路由滚动行为
scrollIntoViewElement.scrollIntoView() 方法让当前的元素滚动到浏览器窗口的可视区域内。scrollIntoView 可以带有 alignToTop 参数和 scrollIntoViewOptions。scrollIntoView(alignToTop):这里 alignToTop 是一个布尔类型值,如果为true那么元素会在可视区域顶端显示,对应 s...原创 2019-09-21 17:32:15 · 1175 阅读 · 0 评论 -
javascript之手写一个promise
promisepromise 的三个状态:pending(未完成)、fulfilled(完成)、reject(拒绝)一个常见操作:new Promise((resolve, reject) => { //一些请求 this.$axios .get("/", { params: { id: id } }) .then(res => { resol...原创 2019-05-09 18:46:32 · 635 阅读 · 1 评论 -
JavaScript 之promise相关
1.promise的由来由于JavaScript是单线程的,在界面加载的时候从上至下依次载入。若此时界面中有一部分数据需要从后台获取而渲染,如果不采取异步措施,界面中未渲染的完的部分会等数据请求完成之后再渲染。这样对用户体验来说很不友好。这是一个方面,另外一方面,当我们执行完一个方法返回结果,另一个方法需要等第一个方法返回结果后才执行,这时候也需要异步。最开始我们可以使用setTimeout来...原创 2019-03-14 00:46:05 · 110 阅读 · 0 评论