-
视频里CASE2的立即执行函数里 Function构造器里 拿不到外层立即执行函数的局部变量 但却能拿到全局变量global (这么不常用的也讲!)
查看全部 -
Function构造器的立即执行(在后面加括号)
查看全部 -
在Function构造器当中创建的变量仍然是局部变量
查看全部 -
[重点] new Function出现了!
查看全部 -
注意这里左边的add函数
里面的a = +a 是将a转化为数字 而是否转化成功 可以通过后面的isNaN来判断
查看全部 -
以f开头 也就是最左边是f的函数声明的方式就是"函数声明"
而以let var 开头 或者(function(){})() 等开头的 就是表达式或者立即执行表达式
查看全部 -
对象都有一个属性是 "propertyIsEnumerable" 这个属性的右边括号里 可以是这个对象已经它的原型链上的所有属性 但是如果enumerable的值是false的话 那返回的就是false了.
查看全部 -
用in操作符查看某个属性是否在对象的原型链上 这个属性的enumerable是不考虑的
在for in 中 enumerable属性是false是无法被遍历出的 (意思是 for in考虑 enumerable 而 单独的 in 是不考虑的)
查看全部 -
var 声明的变量 function声明的函数 都是无法delete掉的
只有不带var生命的 全局变量 可以被delete掉 (浏览器环境和Node环境下测试通过)
视频里还说到了"eval 里面生命的变量 是可以被delete掉的"(没有测试)
查看全部 -
成功删除一个对象的属性后 再次删除还是会返回true
比如:
obj = {one: 1}
console.log(delete obj.one) //true
console.log(delete obj.one) //true! (非严格模式 严格模式下没有测试)
查看全部 -
找一个不存在的一级属性 会返回undefined
找一个不存在的一级属性下面的一级属性(二级属性) 会报错 TypeError 同时 给一个不存在的一级属性下的二级属性写值 也会报错 TypeError
查看全部 -
for in 遍历时 顺序是不确定的
查看全部 -
[重点]Object.create方法
这里的箭头是[[proto]]的意思
注意下面的Object.create(null) 意思是 obj.__proto__ == null !
查看全部 -
[重点] 函数 function(){} 的原型链
function XXX(){}
XXX.prototype.__proto__ === Object.prototype
Object.prototype.__proto__ = null
查看全部 -
这里他说的是 "如果valueOf返回的是对象 valueOf也不会被使用 而会转为去找toString执行 如果toString也是返回对象 那么加法则无法执行 即为报错"
查看全部
举报