JavaScript
文章平均质量分 66
js基础知识
VtoC
不会前端
展开
-
JS中的原型与原型链
当试图访问一个对象的属性时,它不仅仅在该对象上搜寻,还会搜寻该对象的原型,以及该对象的原型的原型,依次层层向上搜索,直到找到一个名字匹配的属性或到达原型链的末尾——null。,它和普通的函数没有任何区别,为了区分和普通函数的区别用了驼峰方式命名。有了上图的构造函数与实例对象之间的关系图以后,原型链就呼之欲出了。通过new关键字,可以创建多个实例,且子实例可以使用。注意:的是这两个原型并不存在于JS的所有对象中。这里只看到了显示原型,隐式原型在哪呢?存在于JS的所有对象中;,它存在于所有的对象上,原创 2022-10-18 09:46:43 · 59 阅读 · 0 评论 -
什么是js的原型以及原型链
JavaScript中其实并没有类的概念。从es6通过关键字才引入了这个概念,但是ES6的可以看作是一个语法糖,它的绝大部分功能,ES5都可以做到。。es6之前,实现生成实例对象的传统方法是通过构造函数。将实例对象与构造函数连接起来的就是与。JavaScript中有两个原型:但是,这两种原型并不存在于JavaScript的所有对象中。那么在哪里可以体现出这两个原型呢?先看代码:结果如下:可以看到:数组、对象、函数三个引用类型都有属性(隐式原型)只有函数除了之外还有一个属性(显式原型)所有的函数默认都会拥有原创 2022-06-29 10:16:11 · 1389 阅读 · 0 评论 -
js的函数与构造函数之间的关系
先说结论:构造函数和普通函数是一样的,没有任何区别。比如一个函数:这个函数可以直接这样调用:也可以当作一个构造函数:函数本身并不是构造函数,然而,当在普通的函数调用前加上关键字以后,就会把这个函数调用变成一个“构造函数调用”。实际上会劫持所有的普通函数并用构造对象的形式来调用它。函数不是构造函数,但是当且仅当使用时,函数调用会变成“构造函数调用”。**因此:**在JavaScript中对于“构造函数”最准确的解释是:所有带的函数调用。...原创 2022-06-29 10:15:15 · 133 阅读 · 0 评论 -
什么是js的闭包,它是如何产生的
先放let关键字声明变量的特点总结:let关键字可以将变量绑定到当前所在作用域(通常是{ … }内部)无法在块级作用域之外的地方访问使用let命令声明的变量不允许使用let关键字多次声明同一个变量不存在变量提升,使用let关键字声明的变量一定要在声明之后使用,否则将报错js的函数作用域不用说了,在函数内不论是用var还是let声明的变量是无法直接被外界访问到的。但是JS的块级作用域,如:、、等这种都是属于块级作用域,在这些块级作用域中使用var关键字声明的变量,是可以直接在块级作用域以外的地方访问到的,这样原创 2022-06-29 10:14:10 · 596 阅读 · 0 评论 -
es6中的let与const关键字及其与var关键字的不同
先放let关键字声明变量的特点总结:let关键字可以将变量绑定到当前所在作用域(通常是{ … }内部)无法在块级作用域之外的地方访问使用let命令声明的变量不允许使用let关键字多次声明同一个变量不存在变量提升,使用let关键字声明的变量一定要在声明之后使用,否则将报错js的函数作用域不用说了,在函数内不论是用var还是let声明的变量是无法直接被外界访问到的。但是JS的块级作用域,如:、、等这种都是属于块级作用域,在这些块级作用域中使用var关键字声明的变量,是可以直接在块级作用域以外的地方访问到的,这样原创 2022-06-29 10:11:40 · 196 阅读 · 0 评论 -
什么是js中的作用域
首先要知道一段JS程序执行过程中,有哪些角色在起作用:示例:这段代码是如何执行的:可以看到,JS代码执行过程都是围绕着作用域的。js代码中的变量都是放在作用域中的。JS有两种常见作用域:函数作用域就是一段代码如果用函数进行包裹,那么函数外界就无法访问到这个函数的作用域。还有一种作用域就是块作用域。如 ,,等这种都是属于块作用域,但是使用关键字在块作用域中声明的变量,却是可以在这个块作用域外访问到的,因此会有污染全局作用域变量的风险。不过要解决这个问题可以在块作用域中使用关键字来声明变量。可以将作用域想象成原创 2022-06-29 10:10:42 · 279 阅读 · 0 评论 -
js的this及this的指向是什么
this在日常开发中给人一种它好像用的不多,但是又好像无处不在的错觉。但是它确实无处不在。它是一个特殊的关键字,被自动定义在所有函数的作用域中。先说结论:先放不用this的代码:上面代码中通过将对象由形参的方式传递给函数,然后在函数内手动获取到此对象形参的属性进行操作。下面放上使用this的代码:两种方法实现的功能一样,但是随着使用模式越来越复杂,显式的传递上下文对象会让代码越来越混乱。但是this提供了一种更为优雅的方式来隐式“传递”一个独享引用,因此可以将API设计的更加简洁且易于复用。我们很容易把原创 2022-06-29 10:09:23 · 232 阅读 · 1 评论 -
判断一个对象是不是数组的3种常用方法
js判断是不是数组原创 2022-06-29 10:07:17 · 628 阅读 · 0 评论 -
最简单的防抖和节流
防抖和节流很长一段时间不太懂什么意思,总觉得它们是一个东西。但是花了时间着重了解以后发现它们还是有不少区别的。但是有个共同点就是都是使用setTimeOut定时器实现的。特点:一个函数,短时间多次触发,但是只执行最后一次触发的事件思路:将所有的消息推入消息队列,但是只执行最后一次的消息用处:如一个点击发送请求的按钮。为了防止用户由于误触导致的多次点击。所以只执行短时间内多次触发的最后一次触发。......原创 2022-06-29 10:04:10 · 214 阅读 · 0 评论