首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
JavaScript
三吉姥爷
创建于2023-03-31
订阅专栏
JavaScript学习笔记
暂无订阅
共14篇文章
创建于2023-03-31
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
prototype、__proto__、constructor的关系
所有函数创建时都会默认创建一个显式原型属性 prototype,它的默认值是空 Object 实例对象, prototype 中保存着该构造函数所实例化的对象们都可以找到的公有属性和方法; 每个实例对
面向对象-继承
继承是获取已经存在的对象已有属性和方法的一种方式,ECMAScript 依靠原型连实现继承。 就近继承原则 对象的方法去访问属性时,先查找有没有对应的实例属性,有则使用; 若没有,就去该对象的原型对象
面向对象-对象的创建方式
在程序中所有的对象都被分成了两个部分:数据和功能。以人为例,人的姓名、性别、年龄、身高、体重等属于数据,人可以说话、走路、吃饭、睡觉这些属于人的功能。数据在对象中被称为属性,而功能就被称为方法。 对象
彻底搞懂this
this 到底是什么 this 是在运行时进行绑定的,并不是在编写时绑定,它的上下文取决于函数调用时的各种条件。this 的绑定和函数声明的位置没有任何关系,只取决于函数的调用方式。当一个函数被调用时
全局代码执行过程
变量 1.全局代码 2.代码编译,在执行代码前 js 引擎内部提前创建一个 globalObject 对象(GO)声明的变量会加入 GO,此时代码尚未执行,变量没有赋值,GO 中变量初始值为 unde
执行上下文
全局执行上下文 在执行全局代码前将 window 确定为全局执行上下文。 对全局数据进行预处理: var 定义的全局变量赋值 undefined 添加为 window 的属性 function 声明的
作用域
作用域提升 提升演示 var a = 2; JavaScript 实际上会将其看作两个声明:var a; 和 a = 2; 第一个定义声明是在编译阶段进行的。第二个赋值声明会被留在原地等待执行阶段。
闭包及其应用
闭包定义 函数执行时使用的是定义函数时生效的变量作用域,而不是调用函数时生效的变量作用域。 严格来讲,所有Javascript函数都是闭包。但由于多数函数调用与函数定义都在同一作用域内当函数可以记住并
函数
所有函数都是Function的实例(包括Function本身) arguments 虽然 arguments 很像数组,但它是一个对象。数组专有的方法(比如 slice 和 forEach ),不能在
运算符
typeof 对变量执行 typeof 操作时,得到的结果并不是该变量的类型,而是该变量持有的值的类型,因为JavaScript 中变量没有类型,只有值才有。 instanceof 判断对象 p 是否
Array
常用实例方法 Array.prototype.slice(begin,end) 当没有数组实例时,就需要从原型上拿方法使用。 该方法返回一个新的数组对象,该对象是由 begin 和 end 决定的原数
Object-静态方法
静态方法 部署在构造函数自身的方法。 Object.setPrototypeOf(obj,prototype) 设置一个指定的对象的原型到另一个对象或 null obj 要设置其原型的对象。 prot
Object-实例属性和实例方法
实例属性和实例方法 绑定在使用构造函数创建出来的实例对象上的,最终也是使用实例对象来访问。 Object.prototype.vlaueOf() 返回当前对象对应的值。 上面代码比较 obj.valu
JavaScript中的迭代
迭代对象 for...in for...in 用于对数组或者对象的属性进行循环操作。只遍历可枚举属性(包括它的原型链上的可枚举属性) for...in 是为了遍历对象属性而构建的,不建议数组使用,数组