Javascript
文章平均质量分 72
笔记
S_aitama
这个作者很懒,什么都没留下…
展开
-
访问器描述符 getter和setter
有两种类型的数据描述符第一种是数据属性描述符(DataDescriptor),即上篇博客提到的 (这里应该有个超链接) 四个属性第二种是访问器属性描述符(AccessorDescriptor),是用于获取和设置值的函数数据属性描述符:configurableenumerablewritablevalue访问器属性描述符:configurableenumerablesetget数据属性描述符对象上不能有get,set属性,访问器属性描述符对象上不能有value,writab原创 2021-06-28 16:34:53 · 319 阅读 · 0 评论 -
属性描述符
文章目录属性描述符writableenumerableconfigurable一些方法Object.definePropertiesObject.getOwnPropertyDescriptorsjs对象的属性可以用一些关键字修饰,表示当前属性是否可写、是否可枚举、是否有默认值等,这些关键字就是属性描述符本质上属性描述符是一个对象,用来定义对象属性的行为方式属性描述符属性描述符共6个value:属性的值,默认值为 undefined。writable:属性值是否可写,默认值为 true。原创 2021-06-24 22:37:38 · 275 阅读 · 1 评论 -
宏任务 微任务 循环队列
Event loopjs是单线程事件循环EventLoop是指js执行环境的流程顺序,通过任务队列的机制进行协调,一个loop中可以有多个队列共两种队列:宏任务(macrotask) 微任务(microtask)一个 macrotask 执行结束后所有的 microtask,这是一个loop简单总结:执行macrotask队列中最早的task,然后移出执行microtask队列中所有任务,全部移出(下一个循环) 重复1 2宏任务maccrotask包括:script标签中的代码s原创 2021-06-21 23:25:34 · 329 阅读 · 0 评论 -
ES6模块导入导出详解
文章目录在声明前导出 / 导出与声明分开导入import *import "as"exportexport "as"export defaultdefault名称重新导出重新导出默认导出总结注意ES6模块的导出export 导入import在声明前导出 / 导出与声明分开export function hi(){ console.log('hello');}/* 声明后 */function hi(){ console.log('hello');}export {hi}原创 2021-06-11 15:33:24 · 943 阅读 · 1 评论 -
JavaScript 模块化
文章目录ComonJsES6模块功能始终使用"use strict"模块级作用域模块代码仅在第一次导入时被解析在一个模块中,"this"是undefined模块脚本是延迟的JavaScript起初没有官方的模块语法在社区中诞生了野生规范:AMD —— 最古老的模块系统之一,最初由 require.js 库实现。CommonJS —— 为 Node.js 服务器创建的模块系统。UMD —— 另外一个模块系统,建议作为通用的模块系统,它与 AMD 和 CommonJS 都兼容。ComonJs原创 2021-06-11 00:22:24 · 174 阅读 · 2 评论 -
js实现sleep
实现sleepJavaScript由于用途为浏览器脚本语言,故设计为单线程,js为了实现sleep不能像java那样直接暂停某线程es6新增的Promise异步解决了sleep问题,以下是用Promise封装的sleep函数 function sleep(delay) { return new Promise((resolve) =>setTimeout(resolve, delay)); } sleep.then(()={ // slee原创 2020-12-20 21:35:20 · 272 阅读 · 2 评论 -
Promise链及静态方法
文章目录一、Promise链二、Promise合成1. Promise.all()2. Promise.allSettled3. Promise.race()三、Promise.resolve/reject1. Promise.resolve()2. Promise.reject()四、Promise静态方法总结多个期约组合在一起可以构成强大的代码逻辑。这种组合可以通过两种方式实现:期约连锁与期约合成一、Promise链每个Promise方法都会返回一个新的Promise对象,新Promise又有原创 2020-12-07 19:41:36 · 694 阅读 · 0 评论 -
Promise基础
老方法实现异步用回调函数es6之后有了PromisePromise语法:let promise = new Promise(function(resolve, reject) { // executor});创建Promise时需要传入函数executor(执行器)作为参数该函数的两个参数通常都命名为resolve和rejectresolve(value) ———— 任务成功并带有结果valuereject(error) ———— 失败并带有error对象总结:execu.原创 2020-12-03 23:01:05 · 148 阅读 · 0 评论 -
js可视化 迷宫问题
文章目录图片演示部分解释代码图片演示部分解释算法部分用递归代码<html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> bo原创 2020-10-26 21:47:09 · 419 阅读 · 0 评论 -
js六种继承
文章目录构造函数式继承原型链式继承组合继承(原型链+构造函数)原型式继承Object.creat()寄生式继承寄生组合式继承(常用)共有六种继承方式:构造函数式继承、原型链式继承、组合继承、原型式继承、寄生式继承、寄生组合式继承构造函数式继承利用函数实现继承 //父类构造函数 function Father(){ this.name = "Father"; this.say = function(){ console.log(t原创 2020-09-23 17:26:04 · 322 阅读 · 2 评论 -
原生js简单贪吃蛇
文章目录思路全部代码解决 连续快速键盘bug思路400px * 400px的地图,每20px*20px分成单元格绘制蛇身每次移动即更换尾 部 头部的颜色全部代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"原创 2020-09-06 20:32:15 · 299 阅读 · 1 评论 -
窗口大小、滚动
文章目录`` 作用查看滚动条的滚动距离查看视口尺寸innerWidth 和 clientWidth 区别查看元素的几何尺寸滚动条滚动禁止滚动实现demo:<!DOCTYPE HTML> 作用有这行是标准模式去掉是混杂模式 向前兼容老的渲染方式查看滚动条的滚动距离window.pageXOffset / pageYOffset IE8及以下不兼容document.body/documentElement.scrollLeft/scrollTop兼容性混乱,两个值对立一个有则另一原创 2020-07-20 22:06:30 · 252 阅读 · 0 评论 -
JS rest参数 return大括号位置
rest参数ES6新增 为弥补这种情况: function sum(a,b){ console.log(a+b); if(arguments.length>2) for(var i=2;i<arguments.length;i++>) console.log(arguments[i]); }我想输出额外传入的参数,使用arguments就必须排除前面规定好的项ES6 的 rest参数可以原创 2020-07-16 20:53:53 · 354 阅读 · 0 评论 -
JavaScript 对象 原型 原型链
对象的创建方法var obj = {} \ plainObject 对象字面量/对象直接量构造函数系统自带的构造函数 new Object()自定义函数 new FunctionName()自定义函数用大驼峰式命名 (所有首字母大写)构造函数内部原理在函数体最前面隐式加上this={}执行this.xxx = xxx;隐式的返回this也可以传参 function Car(number){ // this = {};原创 2020-07-16 20:47:20 · 160 阅读 · 1 评论 -
JavaScript 立即执行函数
文章目录两种立即执行函数函数表达式:函数声明:解释开头函数声明特殊点划重点针对只操作一次的函数,正常函数声明后会一直占用内存等待执行eg.计算100! 但只需要一次 就可以使用立即执行函数 var num = (function (a,b){ return a+b; }(1,2) );可以有返回值执行一次就会被销毁两种立即执行函数(function () {} ()); W3c建议第一种(function () {}) ();最后解释只有 表达式原创 2020-07-16 20:44:23 · 151 阅读 · 0 评论 -
JavaScript 预编译
文章目录原创 2020-06-07 00:24:31 · 163 阅读 · 0 评论 -
JavaScript函数
文章目录一、函数的定义1. 函数声明2. 函数表达式3. 区别4. 函数名二、函数参数 arguments1. arguments.length2.arguments.callee函数是可以重复调用执行的代码块一、函数的定义使用 function1. 函数声明 function f(n1,n2){ return n1+n2; }f 为函数名 、n1,n2 为函数参数2. 函数表达式 var f = function(n1,n2){ return n1+n2; };func原创 2020-05-10 22:41:00 · 150 阅读 · 0 评论 -
JavaScript 鼠标滚轮事件(实现导航栏上滚显示)
文章目录detail与wheelDelta上下滚动检测隐藏导航栏例子当在垂直方向滚动页面时就会触发 mousewheel 事件detail与wheelDelta判断鼠标滚轮滚动方向在各浏览器的属性不同现在五大浏览器(IE、Opera、Safari、Firefox、Chrome)中Firefox 使用detail,其余四类使用wheelDelta;两者只在取值上不一致,代表含义一致det...原创 2020-04-26 15:48:26 · 2145 阅读 · 6 评论 -
JavaScript运算符
文章目录优先级一、一元操作符1. 自增自减二、位操作符1. 按位非2. 按位与3.按位或4.按位异或优先级优先级运算符说明1[]、()数组、括号分组2++ -- ~ 等、new、typeof一元运算符、对象创建、返回数据类型3*、/、%相乘、相除、求余4+、-相加、相减5<<、>>、>>>...原创 2020-04-25 16:25:35 · 199 阅读 · 0 评论 -
JavaScript数据类型
文章目录一、类型检测操作符 typeof一、Number1. 进制2. NaN3. 数据范围二、BigInt1. 用法三、Boolean四、String1. 转义字符2. 转换为字符串五、Undefined六、NullJavaScript的变量是松散类型,即用var/let定义的变量可以保存任何类型的数据七种基本类型:(按值访问,可以操作保存在变量中实际的值)Number(数字)Big...原创 2020-04-12 14:46:24 · 144 阅读 · 0 评论 -
JavaScript中var和let的区别 及 let临时死区
文章目录一、基本用法二、区别1. 作用域2. 重复声明3. 变量提升临时死区一、基本用法var和let都用于声明变量,let是ES6中新增的定义方式var a=1;let b=2;两个语法相同,区别如下二、区别1. 作用域块作用域:块作用域由 { } 包括,if语句和for语句里面的{ }也属于块作用域var定义的变量有 函数作用域或全局作用域(定义在函数中/全局),没有块的...原创 2020-04-12 01:04:43 · 273 阅读 · 0 评论