一些小特性

for in 遍历会遍历原型链 



hasOwnProperty可以检测对象上的属性  不会遍历原型链(这个属性还可以做赋值。因为并未设置成敏感词)



typeof 可以用于检测变量是否被定义 typeof xxx !=='undefined'



<br />



==做相等判断比较会做隐式转换



===比较不会强制做类型转换操作



<br />



instanceof 操作符最合适的使用坏境是比较两个相同上下文背景下的自定义对象的构造函数



<br />



数组的length可以被赋值 数组进行裁剪或者填充undefined



<br />



删除属性可以使用delete



<br />



作用域 由于没有块级作用域  由函数做划分  变量跟函数的作用域是在定义时决定的



<br />



词法 作用域可以简单理解成静态的时候的作用域  取决于源码的位置



词法作用域加上活动对象 =函数动态执行作用域链



<br />



闭包在作用域链上的活动对象引用数大于1得不到释放 所以也容易有内存泄漏的问题。



闭包常用在封装上,对内提供私有的方法跟变量。利用闭包给外部访问定义的可操作部分。(闭包的是引用值。所以总是呈现最终状态)



函数执行后 执行作用域得不到释放



<br />



变量、函数表达式——变量声明,默认赋值为undefined;/this——赋值;/函数声明——赋值;<br />

这三种数据的准备情况我们称之为“执行上下文”或者“执行上下文环境”。

<br />



函数每被调用一次,都会产生一个新的执行上下文环境<br />

相当于一个栈。全局上下文执行环境在最下面,遇到一个函数就进行压栈。函数内部有函数继续压栈,函数执行完出栈。

将栈块设置活动状态使得每次执行的函数只有一个



<br />

console.log是异步。对于引用类型的输出会输出最终态。而不是当时态

发表评论

电子邮件地址不会被公开。 必填项已用*标注