javascript
文章平均质量分 77
js
F班的小夏同学
理想主义青年永远不会被现实招安
展开
-
js中常用的遍历方法以及区别
every()方法使用指定函数检测数组中的所有元素:如果数组中检测到有一个元素不满足,则整个表达式返回false,且剩余的元素不会再进行检测。some()方法用于检测数组中的元素是否满足指定条件。所以我们可以看出来,for in就是专门用来遍历对象的,for of可以用来遍历数组、字符串、数组对象、map、set等拥有迭代器的集合,但是不能遍历对象,因为对象没有迭代器。map()方法定义在js的Array中,他返回的是一个新的数组,数组中的元素为原始数组调用函数处理后的值。原创 2022-10-12 21:34:39 · 1359 阅读 · 3 评论 -
javascript中的继承----类式继承
javascript主要包括类式继承、原型继承、拷贝继承这三种继承方式。 类式继承 大多数面向对象的编程都支持类与类继承的特性,但是javascript是基于原型的编程语言,他并不支持这些特性,只能通过其他方法定义并关联多个相似的对象,如new和instanceof。不过在后来的ES6中新增了一些元素,比如class关键字,但是这个并不意味着javascript中是有类的,class只不过是构造函数的语法糖而已。 类式继承的主要思路是:通过构造函数实例化对象,通过原型链将实例对象关联起来。下面将对类式继承进原创 2022-05-13 15:01:36 · 272 阅读 · 1 评论 -
闭包(五)----一个常见的循环
function foo(){ var arr = []; for(var i = 0; i < 2; i++){ arr[i] = function(){ return i; } } return arr; } var bar = foo(); console.log(bar[0]());//2 以上的代码运行结果是2,而不是预想的0。接下来我们用执行环境图示的方法,来看看到底是哪里出了问题。 执行流首先创原创 2022-05-12 17:17:04 · 103 阅读 · 0 评论 -
闭包(四)----IIFE
在闭包(二)中我们就了解过,严格来说,IIFE并不是闭包,因为他并不满足函数成为闭包的三个条件。但是一般的,人们认为IIFE就是闭包。 实现 函数跟随一对圆括号()表示函数调用 //函数声明语法 function test(){}; test(); //函数表达式 var test=function(){}; test(); 但是有时需要在函数定义之后,立即调用该函数。这种函数就叫做立即执行函数,全称为立即调用的函数表达式IIFE。 注意:js引擎规定,如果function关键字出现在行首,一律解释成原创 2022-05-12 16:15:18 · 70 阅读 · 0 评论 -
闭包(三)----执行环境
本文我们将从执行环境的角度来了解闭包。 下面按照代码执行流的顺序对该图示进行说明: function foo(){ var a = 2; function bar(){ console.log(a); } return bar; } var baz = foo(); baz(); 【1】代码执行流进入全局执行环境,并对全局环境中的代码进行声明提升。 【2】执行流执行第9行代码var baz=foo();调用foo()函数,此时执行流进入foo()函数执原创 2022-05-11 22:01:47 · 84 阅读 · 0 评论 -
闭包(二)
闭包这个神奇的东西,现在的定义已经多到大家不知道怎么理解了,今天我们梳理一下各种版本的定义。 古老定义 闭包,是指函数变量可以保存在函数作用域内,因此看起来是函数将变量包裹起来了。 那这样说来,包含变量的函数就是闭包。 //按照古老定义,包含变量的函数就是闭包。 function foo(){ var n=0; } console.log(n)//Uncaught ReferenceError: n is not defined 定义一 闭包是指可以访问其所在作用域的函数。 那这样说来,需要通过作用域原创 2022-05-11 20:51:03 · 53 阅读 · 0 评论 -
闭包(一)
闭包的存在一直是一个迷,一直以来太多博客给了闭包太多不同的定义,今天我们来说说什么是闭包。 什么是闭包? 闭包是指有权访问另一个函数作用域中的变量的函数。可以理解为(能够读取另一个 函数作用域的变量的函数) function outer(){ var a='变量1' var inner=function(){ console.info(a); } return inner;//inner就是一个闭包函数,因为他能够访问到outer函数的作用域。 } 实际上,闭包是站在作用域的角度上来定义的。因为inn.原创 2022-05-11 18:56:46 · 225 阅读 · 0 评论 -
原型与原型链
首先不得不向大家安利一篇博客,写的非常的明了,我的这篇文章也是借鉴过来的。 javascript中的原型与原型链 什么是原型? 原型:每一个javascript对象(除null以外)在创建的时候,都会与之关联另一个对象,这个对象就是我们所说的原型,这个原型是一个object空对象,每一个对象都会从原型中“继承”属性。 在这里我们看到构造函数和原型的关系是: prototype(显式原型) 那么我们怎么从对象中拿到这个原型呢?prototype解决了这个问题,构造函数有这样一个属性,指向了原型。 例如:.原创 2022-03-29 15:09:56 · 867 阅读 · 0 评论 -
一篇搞懂值传递和引用传递
在各种教程中,大家可以经常看到这句话: ECMAScript中所有参数传递的都是值,不可能通过引用传递参数 但是在实际应用的时候,似乎没有这么简单,今天我们来聊一下在js调用函数传递变量参数时,到底是值传递还是引用传递呢?在此之前,先和大家插入一个小知识: 关于引用变量赋值问题 两个引用变量指向同一个对象,通过一个变量修改对象内部数据,另一个变量看到是修改之后的数据 var obj1={name:'Tom'} var obj2=obj1 obj2.age=12 console.log(obj1.ag原创 2022-03-26 22:01:10 · 818 阅读 · 0 评论