JS
PeggyCoding
这个作者很懒,什么都没留下…
展开
-
ES6部分数组扩展方法
1. Array.from()Array.from方法用于将两类对象转为真正的数组:类似数组的对象和可遍历的对象。先看一个例子let fakeArr = { '0': 'a', '1': 'b', '2': 'c', length: 3}// es5的写法var arr1 = [].slice.call(fakeArr)// es6的写法var arr2 = Array.from(fakeArr)只要是部署了Iterator接口的数据结构,Array.fro原创 2020-10-20 11:55:09 · 220 阅读 · 0 评论 -
JavaScript之深入作用域链
作用域链的概念:当查找变量的时候,会先从当前上下文的变量对象中查找,如果没有找到,就会从父级(词法层面上的父级)执行上下文的变量对象中查找,一直找到全局上下文的变量对象,也就是全局对象。这样由多个执行上下文的变量对象构成的链表就叫做作用域链。下面我们来看看作用域链是如何创建和变化的。函数创建函数一个内部属性[[scope]],当函数创建的时候,就会保存所有父变量对象到其中,可以理解成[[scope]]就是所有父变量对象的层级链,但是值得注意的是,[[scope]]并不代表完整的作用域链。举个栗子f原创 2020-10-10 15:00:28 · 223 阅读 · 0 评论 -
JavaScript call和apply的实现
MDN对call方法的定义:call()方法使用一个指定的 this值和单独给出的一个或多个参数来调用一个函数。var foo = { value: 1};function bar(){ console.log(this.value) };bar.call(foo); // 1这段代码一共做了两件事情:call方法改变了this的指向,指向了foo执行了bar函数我们可以尝试着改变一下foo对象:var foo = { value: 1, bar:原创 2020-09-23 11:47:40 · 155 阅读 · 0 评论 -
JavaScript中的模块化开发
什么是模块化?简单来说,一个功能就是一个模块,多个功能组成完整的应用,我们把其中一个模块抽离出来,也不会影响其他功能的运行。那么为什么前端需要模块化呢?Javascript这门语言被创造出来时,它只是基于浏览器的。但自1996年以来,已经有各种各样的JavaScript平台可以在浏览器之外进行编程,官方定义的API只能构建基于浏览器的应用程序。人们逐渐认识到了问题的严重性:JavaScript没有模块系统。要编写JavaScript脚本,必须以HTML格式管理,连接,注入或手动获取和评估它们。没有原创 2020-06-22 18:09:45 · 155 阅读 · 0 评论 -
JavaScript原型和原型链(查找机制,this指向)
1.1 原型对象prototype什么是原型?我们先来看看下面的代码:function Person(name,age){ this.name = name this.age = age this.sport = function(){ console.log("我会运动") }}let p1 = new Person('Peggy',20)let p2 = new Person('Kris',25)上面这段代码相信大家都不会陌生,是很常见的利用原创 2020-06-21 15:44:49 · 539 阅读 · 0 评论 -
ES6中新增的一些数组方法(map、filter、reduce,find、every、some、forEach)
1. map函数map函数是一个映射函数,有一一映射的关系。array.map((item) => {…})let array = [1,2,3,4,5]let newArr = array.map(item => { return item + 1})console.log(newArr) //[2,3,4,5,6]可以看到结果是遍历了数组中的每一个数并加上了1。2. filter函数filter是过滤的意思,调用了filter方法后,会得到一个过滤后的新数组。a原创 2020-06-20 18:28:38 · 669 阅读 · 0 评论 -
JavaScript中this的指向问题
本文是基于很多大佬写得很棒的博客以及自己看书的一点理解,如果哪里说得有问题的欢迎评论区指正讨论~相信很多人刚开始学JavaScript,都会像我一样被this指向弄混,单纯秉着“谁调用指向谁”这句话并不是万能的,因为很多时候分不清是谁调用了函数。我们先来下面两段代码看看this的作用let obj = { a:'a', fun(){ console.log(this.a) }};let fn = obj.fun;fn(); //undefined相信很多原创 2020-06-20 16:47:26 · 168 阅读 · 0 评论 -
用CSS、JS实现三角形、轮播图和动画盒子
三角形用CSS边框可以模拟三角形的效果。首先将盒子的高度、宽度设为0。四个边框都要写,只给有需要的边框设置颜色,其余设置为透明。为了照顾兼容性,低版本的浏览器可以加上font-size:0;line-height:0;这是未设置透明的效果:div{ width: 0; height: 0; border-top: 50px solid red; border-right: 50px solid green; border-left:原创 2020-06-16 16:29:18 · 480 阅读 · 0 评论 -
JavaScript判断数据类型的方法
本文将介绍在JavaScript中几种判断数据类型的方法。1. typeof用typeof对基本数据类型进行判断typeof 1 // 'number'typeof '1' // 'string'typeof undefined // 'undefined'typeof true // 'boolean'typeof null //返回类型错误,返回Object用typeof对复杂数据类型进行判断typeof [] // 'object'typeof {} // 'object'ty转载 2020-06-02 14:22:25 · 319 阅读 · 0 评论