1 .js在执行代码之前都会先对声明的变量名进行索引,建立索引表,这样在程序执行中就非常快,提高程序执行效率。
2 .一旦声明了var 语句变量,那就永远的存在js变量索引表中
3 .变量的隐式声明:函数中 直接写a=100;a此时会变成全局变量,泄漏了函数的隐私
4 .垃圾回收机制:遍历变量的列表,并做标记,如果被引入的值是对象或数据,也会递归做标记,--回收,遍历环境中所有的值的列表,同时释放那些没有被标记的值。
5 .数据天生就是文静的,总想保持自己的固有本色,而代码确时时刻刻想着改变世界。
6 .typeof typeof 5 string /1?0:1?2:3从右向左计算
7 .运算符的副作用那些可以改变自身的运算符。赋值,递增运算符
8 .函数的this是可以调用自己的prototype过的函数。
9 .var a=4;a++为什么必须是变量。
10 a++ ,++a的区别是前面的先显示值,然后在计算加一,后一个是先计算,然后显示值
11 .&& 要求两个值必须都是真才可以执行,如果第一个值为假,那么直接返回第一个值的函数表达式算出的值。这个的优先级高于 ||。第一个为真的话,直接返回第二个。一个函数存在,且执行它就是这个运算符。
12 .||如果第一个值为真,那么直接返回前面表达式的值,第二个忽略。默认值赋值就是这个。
13 .'4'>'3':比较的是unicode编码
14 .对象比较的是地址指针是否相同。var a={},b=a, a==b,a===b都对
15 .a in b:判断左侧的运算符是否是右侧的成员,右侧可以使对象,数组。
16 .a instanceof b:a是否是b的某个实例。
17 . null ==0 undefined==0; false。
18 .delete 删除对象的属性,数组元素或者变量,相当于内存回收机制
19 .
for (var i in window){
console.log(window[i])
}
20 .当var 和function语句定义同名函数的时候,发生冲突的时候,var 胜出。
21 .return 语句后面跟一个表达式,并把这个表达式的值传出函数体。因此,return 语句只能存在于函数表达体中。
22 .return 还可以提前终止h