首页
沸点
课程
AI Coding
数据标注
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
《你不知道的JS》笔记
清崖
创建于2021-09-29
订阅专栏
《你不知道的JS》笔记
暂无订阅
共12篇文章
创建于2021-09-29
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
作用域
定义:变量可访问的范围; 类型分类:2类 静态作用域:也称词法作用域,JS属于此类; 与代码的位置有关,与代码的执行环境无关; 无论函数在哪里被调用,及如何被调用,其词法作用域只由函数申明是的位置决定
值
数组: 特殊的值: 特殊数字: 特殊等式: 值和引用:基本类型的赋值,是复制;复合(对象/数组/函数)类型的赋值,是引用;
类型
JS中的其中内置类型: JS中变量没有类型,只有值才拥有类型,因为变量可以随时被修改成不同类型的值; undefined:已在作用域声明,但还赋值的变量;
行为委托
[[prototype]]机制是指对象中的一个内部链接引用另外一个对象,其本质就是对象之间的关联关系(行为委托机制); 面向类设计模式: ES6 class语法糖: 对象关联风格委托(行为委托模式):
原型
原型:所有函数默认拥有一个prototype,并不可枚举的属性,它会指向另外一个对象; 原型继承:js中并不会将一个对象('类')复制到另一个对象('实例')中,只是将他们关联起来; (更准确应该是“
对象
基本类型: 内置对象: 对象子类型(注意:没有null/undefined),实质上是内置函数; 属性描述符 不变性
this
绑定方式 优先级: new > bind > apply/call > 隐式 > 默认 额外 注意事项
闭包
定义: 个人理解 好处: 可以使用闭包做模块化处理; 直接上代码: 注意: (function(){}())自调函数不是闭包,因为其函数不是在其本身词法作用域外执行的;
提升
变量和函数在内的所有声明均会在执行前处理完毕;(先声明,后赋值) 比如: 编译器分为两步: 注意: 函数优先
函数作用域和块级作用域
函数作用域: 隐藏内部实现 区分函数申明和表达式:如果function是声明中第一个词,则是函数声明,否则是函数表达式; 函数声明:function (){....} 函数表达式:(function(
词法作用域
工作模型: 定义:词法作用域意味着作用域由其书写时函数申明的位置决定 小结:eval/with两个欺骗词法作用域的机制会导致引擎在编译时无法对作用域查找进行优化,影响性能;
作用域是什么
变量涉及两个问题: 作用:储存变量的计算机规则;(确定如何查找变量) 编译原理: 理解作用域: 异常: 总结: