摘要:一、Object.defineProperty的作用 用来给对象新增属性,和修改对象中的属性。 二、JS对象中的描述符 js对象中两种属性描述符:数据描述符和存取描述符(访问描述符)。 注意事项: 1、数据描述符和存取描述符都具备configurable、enumerable属性。 2、描述符不具备
阅读全文
随笔分类 - Javasript系列
摘要:一、绑定事件的3种方式 1、内联绑定事件 2、on+事件名,绑定事件程序 3、通过addEventListener/removeEventListener绑定事件 不支持ie9之前的浏览器,ie9之前浏览器可以通过attachEvent/detachEvent绑定事件 这两种处理事件的方法有两个区别
阅读全文
摘要:思路就是利用input元素中的setSelectionRange方法 setSelectionRange(posstart,posend)用来选中被focus的输入框的特定范围. 开始位置和结束位置设置为内容的总长度,光标就会定位到内容最右边。 需要注意到是,元素一定要被选中然后才能通过setSel
阅读全文
摘要:一、什么是函数节流和函数防抖 函数节流和函数防抖目的都是避免同时多次执行函数。 函数防抖是将多次执行变成一次执行,函数节流是将多次执行变成每隔一定时间执行一次。 二、具体实现 三、什么时候需要节流,什么时候需要防抖 防抖的应用场景: 实时搜索功能,当用户停止输入之后等待一定时间间隙,再查询搜索结果,
阅读全文
摘要:一、为什么要用this 通过this可以在不同的上下文对象中重复使用函数 二、this是什么 this就是我们说的执行上下文(包含调用栈(哪里被调用)、函数的调用方式、传入的参数等信息) 三、this的绑定规则 1、默认绑定 当函数调用没有引用对象时,默认this指向全局对象 2、隐式绑定 this
阅读全文
摘要:一、js中的词法作用域和动态作用域 词法作用域也就是在词法阶段定义的作用域,也就是说词法作用域在代码书写时就已经确定了。 js中其实只有词法作用域,并没有动态作用域,this的执行机制让作用域表现的像动态作用域,this的绑定是在代码执行的时候确定的。 example1: 理解词法作用域 记住js中
阅读全文
摘要:一、原型 每当创建一个函数时,函数就会包含一个prototype属性,这个属性其实相当于一个指针,指向调用该构造函数创建的对象原型。 这个对象原型里面有一个constructor属性,这个属性又指向构造函数。 当创建一个函数实例时,这个实例会包含一个指向对象原型的_proto_属性。 一个函数的原型
阅读全文
摘要:一、如何编写可以计算的对象的属性名 我们都知道对象的属性访问分两种,键访问(["属性名"])和属性访问(.属性名,遵循标识符的命名规范) 对于动态属性名可以这样 (这里可以对比学习一下es6中的symbol) 二、如何给对象的属性添加特性 通过Object.defineProperty()定义对象的
阅读全文
摘要:前言 类型转换js中主要有以下几种情况: 1、条件判断时; 2、对象转基本类型时; 3、四则运算时; 4、‘==’操作符比较值时; 5、比较运算符时。 一、条件判断时 在条件判断时,除了 undefined, null, false, NaN, '', 0, -0,其他所有值都转为 true,包括所
阅读全文
摘要:js的执行机制是事件循环 什么是事件循环? js引擎在执行代码时,首先会将同步代码加入到主线程中,异步代码会放到event table中注册回调函数, 当主线程空闲之后,event table中的回调函数就会被加入到主线程中执行。 当遇到宏任务(例如:script、setTimeout、setInt
阅读全文
摘要:一、函数声明变量提升 函数声明具有变量提升的问题,所以在函数被声明之前就可以访问。 需要注意的是现在可以在普通块内部定义函数,不会有变量提升,因为是在执行的时候,才会有函数声明。 改成函数表达式的形式如下: 2017-2-7更: 函数声明提升优先级大于变量声明提升优先级: 函数表达式没有变量提升的过
阅读全文
摘要:一、什么是闭包 函数可以记住并访问所在词法作用域时,就产生了闭包,即使在词法作用域外调用函数。 (也就是说如果一个函数在执行完之后,其中的内部包含的函数仍然对该函数的作用域持有着引用(函数执行完之后,内存没有被释放, 因为还一直被引用着),那么这个引用就是一个闭包) 二、辨别闭包 1、也就是这样的一
阅读全文
摘要:看完《你不知道的javascript》上,对作用域的新的理解(2018-9-25更) 一、学习笔记: 1、javascript中的作用域和作用域链 + 每个函数在被调用时都会创建一个自己的执行环境(作用域),javascript中一切皆为对象,函数也是一个对象;函数对象和其他对象一样,拥有通过代码访
阅读全文
摘要:一、总结: es6中通过extends实现继承 es5和es6实现继承的区别:es5主要是先创建子类的实例对象的this,然后再将父类方法添加到this上;而es6相反,所以在子类构造函数中必须先调用super,将父类实例对象的属性和方法添加到this上,然后再用子类的构造函数修改this。
阅读全文
摘要:js中有7种内置类型,这7种类型又分为2大类:基本数据类型和对象(object) 一、检测原始(基本数据:字符串、数字、布尔、null、undefined、symbol)类型。 用typeof检测原始类型: 1.对于字符串,typeof返回"string"; 2.对于数字,typeof返回"numb
阅读全文

浙公网安备 33010602011771号