js
文章平均质量分 87
JS
Lomon6
Talk is cheap ...
展开
-
js中的继承
原型继承构造函数继承共享原型临时构造函数继承原创 2021-02-15 14:06:35 · 113 阅读 · 0 评论 -
模块的导入和引入
要知道的es6和node都支持的引入:require只有node支持的导出:exports和module.exports只有es6支持的导出引入:export和importnode模块的导出导入引入:require导出:exports或module.exportsNode里面的模块系统遵循的是CommonJS规范。那问题又来了,什么是CommonJS规范呢?由于js以前比较混乱,各写各的代码,没有一个模块的概念,而这个规范出来其实就是对模块的一个定义。CommonJS定义的模原创 2020-05-29 15:07:06 · 830 阅读 · 0 评论 -
深拷贝和浅拷贝
文章目录浅拷贝深拷贝实现深拷贝递归复制所有层级的属性JSON对象的stringify和parse```jquery```的```extend()```参考链接浅拷贝假设B复制了A,当修改A时, B也会发生改变深拷贝假设B复制了A,当修改A时,B不会发生改变实现深拷贝递归复制所有层级的属性function deepClone(obj){ let target = Array.isArray(obj) ? [] : {} if (obj && typeof obj原创 2020-09-27 16:38:46 · 120 阅读 · 0 评论 -
JSON.stringify()和JSON.parse()的使用
文章目录JSON.stringify()JSON.parse()用处```JSON.stringify()```与```toString()```的区别参考博文JSON.stringify()作用:将js对象转为字符串引用类型转为基本类型JSON.parse()作用:将json类型的字符串转换为对象基本类型转为引用类型用处1. 判断数组是否包含某对象,或者判断对象是否相等。// 判断数组里面是否包含某对象let obj = [ {name:'echo'},{name:'听风是风原创 2020-09-27 16:32:52 · 154 阅读 · 0 评论 -
作用域和作用域链
文章目录作用域静态作用域动态作用域js采用的静态作用域全局作用域局部作用域块作用域作用域链上下文和作用域执行上下文和作用域作用域作用域就是变量和函数的可访问范围,控制着变量和函数的可见性与生命周期。作用域分为 静态作用域 和 动态作用域作用域的另外理解可点击这里查看静态作用域静态作用域还称为词法作用域:词法作用域是指在词法分析阶段就确定了,不会改变。在词法作用域中:变量的作用域是在定义时决定而不是执行时决定,也就是说词法作用域取决于源码,通过静态分析就能确定词法分析的详细信息可点击这原创 2020-09-25 13:32:32 · 137 阅读 · 0 评论 -
toString方法
文章目录数据的转换toString()和valueOf()调用顺序toString详解数据的转换所有JS数据类型都拥有valueOf和toString这两个方法,null除外。它们俩解决javascript值运算与显示的问题。第一个是toString(),它的作用是返回一个相对这个对象的字符串(js值显示)第二个是valueOf(),它的作用是返回它相应的原始值(js值运算)toString()和valueOf()调用顺序可以看做是把一个数据转换成了相应字符串的形式,安照这个转换规则中toS原创 2020-08-30 16:52:10 · 5991 阅读 · 1 评论 -
valueOf
文章目录ES5中valueOf的介绍语法和返回值例子分析ES5中valueOf的介绍15.2.4.4 Object.prototype.valueOf ( )When the valueOf method is called, the following steps are taken:Let O be the result of calling ToObject passing the this value as the argument.If O is the result of call原创 2020-08-30 11:31:51 · 225 阅读 · 0 评论 -
(五-1)this相关例题
注意:以下代码全基于浏览器非严格模式运行咱先定义一个全局变量a,后面所有的示例都假定此全局变量已存在:var a = 0;案例一 :执行环境// demo1var obj = { a: 1, b1: this.a, b2: () => this.a,};console.log(obj.b1); console.log(obj.b2()); 【要知道的】JS代码有三种运行环境Global Code : JavaScript代码开始运行的默认环境 this原创 2020-08-25 11:20:31 · 470 阅读 · 0 评论 -
JS执行上下文,作用域链,闭包
文章目录代码的运行环境执行上下文VO (变量对象)AO (活动对象)细看执行上下文案例分析代码的运行环境在JS中有三种代码运行环境Global CodeJavaScript代码开始运行的默认环境Function Code代码进入一个JavaScript函数Eval Code使用eval()执行代码执行上下文为了表示代码处在不同的运行环境,又引出了执行上下文(Execution context,EC)的概念即当JS代码在执行的时,会在执行环境中进入到不同的执行上下文。而这些原创 2020-08-24 18:21:47 · 256 阅读 · 0 评论 -
(一)编译器+引擎+作用域的关系
文章目录要知道的传统编译语言的流程分词/词法分析解析/语法分析代码生成js引擎中的编译器三个搭档引擎编译器作用域var a = 2 发生了什么编译器的小术语要知道的我们通常将JavaScript归类为“动态”或“解释执行”语言,但事实上它是一门编译语言与传统的编译语言不同,js不是提前编译的,编译结果也不可以在分布式系统中进行移植,尽管如此,js引擎进行编译的步骤和传统的编译语言还是非常的相似,但他在某些环节可能会更复杂传统编译语言的流程在传统编译语言的流程中,如果程序中的一段源代码需要执行,原创 2020-08-18 18:40:00 · 413 阅读 · 0 评论 -
mouseover,mouseout和mouseenter,mouseleave
mouseover与mouseentermouseover: 只要鼠标指针移入事件所绑定的元素或其子元素,都会触发该事件mouseenter: 只有鼠标指针移入事件所绑定的元素时,才会触发该事件换句话说就是,如果一个元素没有子元素,那么该元素绑定mouseover或者mouseenter两种事件效果没有区别,鼠标每次移入元素时都只会触发一次事件如果绑定了mouseover事件的元素存在子元素,那么,每次移入该元素时都会触发一次事件(包括从外部移入到该元素和从子元素移入该元素),移入子元素时也会原创 2020-07-21 09:55:49 · 252 阅读 · 0 评论 -
js中的数据类型转化
文章目录显式转换的数据类型隐式的数据类型转换显式转换的数据类型 1、非数值 =====》 数值类型 有3个函数可以把非数值转换为数值:Number()、parseInt()、parseFloat() 第一个函数Number(mix),可以用于任何数据类型,该函数先将mix的数据类型转换为number类型,然后再将mix的值转换为数值。 若mix的值能直接转换成数字,则直接显示。...原创 2020-03-11 17:21:59 · 197 阅读 · 0 评论 -
js中的数据类型及判断
JS中的七大数据类型五种基本数据类型:String、Boolean、Number、Undefined、Null一种复杂数据类型:ObjectES6语法中新增的Symboljs中三大引用类型:Object、Array、Functiontype of 和 instance oftype oftype of是一个一元运算,放在一个运算数之前,运算数可以是任意类型。它返回值是一个字...原创 2020-02-05 15:51:07 · 255 阅读 · 0 评论 -
同步-异步-回调 (二)
文章目录什么是回调函数为什么要写回调1.关于回调函数和js单线程以及js异步机制2.js的单线程浏览器内核的多线程同步回调异步回调什么是回调函数官方解释:A callback is a function that is passed as an argument to anotherfunction and is executed after its parent function h...原创 2019-12-07 19:44:12 · 113 阅读 · 0 评论 -
同步-异步-回调(一)
文章目录同步-异步异步编程情况1、定时器都是异步编程2、所有的事件绑定都是异步编程3、ajax异步读取数据时4、通过回调函数实现异步同步-异步异步async/同步sync举个小栗子1.早上起来不论你是先刷牙还是先洗脸,都要等一个事情完毕后才能进行下一项,这就是一个同步的例子2.然后刷牙的时候你也可以烧水喝 (不用等你刷完牙)这就是一个异步的例子异步:规定要做一件事,不是立马执行这件事,...原创 2019-12-07 19:30:33 · 134 阅读 · 0 评论 -
浏览器渲染机制(三)Event Loop
文章目录从Event Loop谈JS的运行机制定时器setIntervalPromise时代的microtask与macrotask浏览器渲染机制二入口处从Event Loop谈JS的运行机制到此时,已经是属于浏览器页面初次渲染完毕后的事情,JS引擎的一些运行机制分析。主要是结合Event Loop来谈JS代码是如何执行的。我们已经知道了JS引擎是单线程的,知道了JS引擎线程,事件触发线程...原创 2019-12-07 17:16:39 · 1228 阅读 · 0 评论 -
浏览器渲染机制 (二)浏览器主进程-浏览器内核-浏览器渲染流程
文章目录浏览器主进程(Brower进程)和浏览器内核(浏览器渲染进程)的通信过程浏览器内核(渲染进程)中线程之间的管理GUI渲染线程与JS引擎线程互斥JS阻塞页面加载css加载是否会阻塞dom树渲染WebWorker,JS的多线程?WebWorker与SharedWorker总结浏览器渲染流程load事件与DOMContentLoaded事件的先后普通图层和复合图层如何变成符合图层(硬件加速)ab...原创 2019-12-07 17:14:59 · 3319 阅读 · 0 评论 -
浏览器渲染机制(一)浏览器的多进程
文章目录线程和进程浏览器是多进程的浏览器包含的进程浏览器多进程的优势浏览器渲染进程(浏览器内核)线程和进程. 进程是一个工厂,工厂有它的独立资源–工厂之间相互独立. 线程是工厂中的工人,多个工人协作完成任务. 工厂内有一个或多个工人–工人之间共享空间. 工厂有多个工人,就相当于一个进程可以有多个线程,而且线程共享进程的空间。进程是cpu资源分配的最小单位(是能拥有资源和独立运行的最...原创 2019-12-07 17:09:19 · 1195 阅读 · 1 评论 -
js遍历对象和数组的方法总结02
文章目录遍历数组1. for循环2. forEach()3. for of4. for in5. map遍历数组1. for循环通过对数组下表的遍历,从而达到对数组的遍历2. forEach() var arr = [12,4,63,56]; //-----------------forEach()-------------------- arr.forEach(fun...原创 2019-11-09 15:27:41 · 114 阅读 · 0 评论 -
js遍历对象和数组的方法总结01
遍历对象方法是否遍历原型链是否包含Symbol属性返回结果for…in是否输出的是对象自身的属性以及原型链上可枚举的属性Object.keys()否否返回包含对象自身可枚举属性的数组Object.getOwnPropery()否否返回自身的所有属性(可枚举属性和不可枚举属性)Reflect.ownKeys()否是返回对象自身的所有...原创 2019-11-09 15:09:21 · 117 阅读 · 0 评论 -
js中的小点点
访问对象的属性!. 当访问对象的属性时:如果该属性不存在时,则访问结果为:undefined2. 当访问对象的属性时:如果该对象不存在时,则访问结果则会出错。<script> var a; //报错:Cannot read property 'name' of undefined console.log(a.name); var obj = {}...原创 2019-08-09 18:56:16 · 566 阅读 · 1 评论 -
js中的小点点之二
文章目录String 方法中的截取指定字符串中的易混函数String 方法中的截取指定字符串中的易混函数1.slice()//摘取一个字符串区域,返回一个新的字符串。String.prototype.slice();var s = 'abcdef';//cd s.slice(2,4);//cd (倒数第四个到倒数第二个但不包括倒数第二个)s.slice(-4,-2);2.s...原创 2019-08-13 21:33:54 · 144 阅读 · 0 评论 -
typeof
内置类型JavaScript中有七种内置类型,包括六种基本类型和一种引用类型基本类型number(数字)string(字符串)boolean(布尔值)undefined(未定义)null(空值)symbol(符号)【ES6规范新增】引用类型object(对象)注意:array数组与function函数是特殊的对象,也就是说他们是对象的“子类型”同样为引用值其中基本类型是...转载 2019-07-23 12:47:18 · 153 阅读 · 0 评论 -
预编译
大家要明白,这个预编译和传统的编译是不一样的(可以理解js预编译为特殊的编译过程) JavaScript是解释型语言, 既然是解释型语言,就是编译一行,执行一行 传统的编译会经历很多步骤,分词、解析、代码生成什么的 下面就给大家分享一下我所理解的JS预编译JavaScript运行三部曲脚本执行js引擎都做了什么呢?语法分析预编译解释执行在执行代码前,还有两个步骤 语法分析...转载 2019-07-23 12:03:08 · 526 阅读 · 0 评论 -
作用域和作用域链
文章目录作用域作用域的理解作用域的分类作用域的作用作用域和执行上下文的区别作用域和上下文环境的联系练习作用域作用域的理解1.作用域相当于一块“地盘”,也就是一块代码所在的区域;2.作用域是静态的,在编写代码的时候就已经确定了作用域的分类1.全局作用域2.局部作用域作用域的作用隔离变量,即不同作用域下的变量同名不会有冲突作用域和执行上下文的区别区别1:除了全局作用域外,每个函数...原创 2019-08-24 17:34:57 · 110 阅读 · 0 评论 -
原型
函数的prototype属性1.每一个函数都会有一个prototype属性,它默认指向一个object的空对象(即没有我们定义的方法和属性),这个空对象也称为原型对象2.原型对象中有一个constructor属性,指向函数对象显式原型和隐式原型1.每一个函数都会有一个prototype,也就是显式原型属性(函数定义的时候添加的)2.每一个函数实例对象都会有一个_ _proto_ _:属...原创 2019-08-24 18:45:59 · 162 阅读 · 0 评论 -
闭包
如何产生闭包当一个嵌套的内部函数引用了嵌套的外部函数的变量(函数)是便产生了闭包产生闭包的必要条件函数嵌套内部函数引用了嵌套外部函数的变量(函数)调用外部函数,执行内部函数定义注:闭包存在于嵌套的内部函数中执行下面代码会产生闭包 function fn(){ var a = 1; function fn1(){ //执行函数定义 ...原创 2019-08-25 17:08:09 · 291 阅读 · 0 评论 -
dom中的offset、clientX、pageX的区别
文章目录offsetclientX、clientYoffsetclientX、clientY原创 2019-09-09 09:18:23 · 348 阅读 · 0 评论 -
js小练习
事件委托根据数组中图片的数量动态生成按钮,点击相应的按钮出现相应的图片方法1<body> <div id="control"> </div> <img src="" alt=""/> <script> var pictures = ['../images/cat.jpg','../im...原创 2019-09-09 10:29:04 · 159 阅读 · 0 评论 -
函数声明和函数表达式
函数定义和函数表达式函数定义例题1://不会报错,因为"提升了"函数声明,函数调用可在函数声明之前fn1();function fn1(){ console.log("这里是函数定义");}函数表达式例题1: fn2(); //会报错(错误信息:“fn2 is not a function”),变量fn2还未保存对函数的引用,函数调用必须在函数表达式之后 ...原创 2019-07-24 13:43:19 · 136 阅读 · 0 评论