1.24
面向对象按照顺序执行即可,new b 的时候,A的prototype里面只有 n = 1;
1.25
// 1 之后有空格就不会报错
1.26
5:先进行隐式的强制类型转换:Number(A)和Number(B)的结果都是NaN,最终结果是字符串‘NaN2’
6:NaN + 2 => NaN : NaN数字运算结果都是NaN
1.27
1.28
// 2: ·点运算符的优先级高于“=”,所以先给a内部添加x属性,并且x的属性值为undefined
// 3:为a整体重新赋值之后,a,b不再相关联
// 4:为a.x赋值a的时候,a中已经不包含x属性了;这时候会自动寻址b中的x,为其赋值a
1.29
//两个结果都是function,与编译时候优先级:function > arguments > 声明的变量
1.30
1.31
2.1
// 函数声明与函数调用不同:函数的作用域取由函数声明时候确定。
// 函数内部var声明的变量作用域是在该function内部的,是一个局部变量,不会改变var x = 10 的全局变量
2.2
// 对象作为参数,传进去的也是地址值
2.3
// foo是对象实例,Object是构造函数;foo必然继承自构造函数原型里面的东西
// foo里面没有bar,但是会顺着原型链去找构造函数上面去找
//hasOwnProperty只会去找foo本身的属性,不会顺着原型链去找他所继承的属性
2.4
// for in循环遍历的是key的值
// for of循环遍历的是value的值
// for in 遍历对象会把原型链上的属性key都遍历
// for of 遍历对象会报错
2.5
// return的结果处换不换行是不一样的
// 第二个return后面省略了undefined;换行后的代码不是return的内容了,后面的代码不会执行
2.6
// arguments是一个参数对象:object
2.7
// 数字0,空串‘’,null,undefined 转Boolean为false,其他都为true
2.8
// if条件中的内容不会被预编译,所以 typeof f 的值是undefined