前端
文章平均质量分 77
虾泥泥泥泥
砌下落梅如雪乱,拂了一身还满
展开
-
项目实训——【ES6学习笔记之】Object.assign()
基本用法Object.assign方法用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target)。const target = { a: 1 };const source1 = { b: 2 };const source2 = { c: 3 };Object.assign(target, source1, source2);target // {a:1, b:2, c:3}Object.assign方法的第一个参数是目标对象,后面的参数都是源对象。注意,如转载 2021-03-12 14:56:50 · 148 阅读 · 0 评论 -
JavaScript连续赋值的执行顺序问题
新的一天从一道查漏补缺题开始:let a = {n : 1};let b = a;a.x = a = {n: 2}; console.log(a.x) // undefinedconsole.log(b.x) // {n:2}解析:多次赋值与顺序无关,是同时进行赋值的每个节点的变量最终赋值的值取决去最后一个等号的右边值如果赋值是引用类型,则最终指向的是同一个对象a.x=引用的是堆内存里面的属性变量,在解析时会直接对这个地址的变量进行操作,而a=访问变量栈内存里面这原创 2021-02-21 11:34:39 · 1741 阅读 · 1 评论 -
理解和使用Promise.all和Promise.race
一、理解promise所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。Promise 提供统一的 API,各种异步操作都可以用同样的方法进行处理。Promise对象有以下两个特点。(1)对象的状态不受外界影响。Promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。只有异步操作的结果,可以决定当前是哪一种状原创 2021-01-30 16:08:20 · 302 阅读 · 0 评论 -
node中的setTimeout,setInterval,promise.then和process.nextTick()的执行顺序
1.javascript事件循环:同步任务:直接通过主线程执行,如script代码异步任务:进入Event Table,并注册回调函数——> Event Queue,等主线程的执行栈为空时候,读取Event Queue里面的函数就,进入主线程。如setTimeout,promise.then()等;那怎么知道主线程的执行栈为空呢,JS引擎存在monitoring process进程,它会持续检查主线程执行栈是否为空,一旦为空,就会去Event Queue那里检查是否有等待被调用的函数。原创 2021-01-30 14:45:27 · 1292 阅读 · 0 评论 -
详解setTimeout()
前言:看了这篇文章,1.注意setTimeout引用的是全部变量还是局部变量了,当直接调用外部函数方法时,实际上函数内部的变量已经变成全局。2.提醒我防止出错的,用匿名函数不容易出错。3.setTimeout最快执行时间是4毫秒。4.使用setTimeout的函数会比当前队列的函数慢执行,在他们的后面。5.setTimeout中的定时器并不是准确的时间,实际中它需要在执行完前面的函数后才定时执行。 你还可以查阅关于setTimeout的相关介绍 JavaScript提供定时执行代码的功能,叫做定时器(tim转载 2021-01-30 11:41:23 · 27620 阅读 · 0 评论 -
深入理解npm run命令
npm 可以在项目package.json里面自定义脚本命令package.json文件:{ "script":{ "dev": "webpack -w" }}package.json文件中的字段script的每一个属性都是一个自定义的脚本命令。在命令行中可以通过执行npm run dev来执行这段脚本。执行原理使用npm run script执行脚本的时候都会创建一个shell,然后在shell中执行指定的脚本。这个shell会将当前项目的可执行依赖目录(即node_mo原创 2021-01-29 15:24:02 · 19254 阅读 · 0 评论 -
CSS可以继承的属性和不能继承的属性
一、无继承性的属性1、display:规定元素应该生成的框的类型2、文本属性:vertical-align:垂直文本对齐text-decoration:规定添加到文本的装饰text-shadow:文本阴影效果white-space:空白符的处理unicode-bidi:设置文本的方向3、盒子模型的属性:width、height、margin 、margin-top、margin-right、margin-bottom、margin-left、border、border-style、borde原创 2021-01-29 00:08:31 · 130 阅读 · 0 评论 -
script 标签的加载机制
脚本在页面的位置script 通常被放在 header 或者 body 标签中,但位置的不同对于页面的加载效果也不一样。放在 header 中<head> <title>script 加载机制</title> <script src='/js/test1.js'></script> <script src='/js/test2.js'></script> <script src='/js/test原创 2021-01-27 21:22:22 · 1617 阅读 · 0 评论 -
ES6总结(三):默认参数
如果调用函数的过程中,定义的参数缺失,此参数变量的值则会是undefined。怎么给缺失的参数赋值默认值,在ES6之前,没有简洁的语法设置缺失参数的默认值,但是我们一般可以这么编写代码解决缺失参数默认值:function myFunction(x, y, z) { x = x === undefined ? 1 : x; y = y === undefined ? 2 : y; z = z === undefined ? 3 : z; console.log(x, y, z); //Output原创 2021-01-23 16:00:27 · 121 阅读 · 0 评论 -
ES6总结(二):模板字符串
一、基础用法1、传统:$('#result').append( 'There are <b>' + basket.count + '</b> ' + 'items in your basket, ' + '<em>' + basket.onSale + '</em> are on sale!');2、ES6$("#result").append( `He is <b>${person.name}</b>an原创 2021-01-23 15:17:45 · 423 阅读 · 0 评论 -
ES6总结(一):let、const与var
一、前言在ES6(ES2015)出现之前,JavaScript中声明变量就只有通过 var 关键字,函数声明是通过 function 关键字,而在ES6之后,声明的方式有 var 、 let 、 const 、 function 、 class ,本文主要讨论 var 、 let 和 const 之间的区别。二、var如果使用关键字 var 声明一个变量,那么这个变量就属于当前的函数作用域,如果声明是发生在任何函数外的顶层声明,那么这个变量就属于全局作用域。举例说明:var a = 1; //此处声原创 2021-01-23 14:06:05 · 83 阅读 · 0 评论