1、JS六种基本数据类型:string Boolean number object undefined function
typeof返回的是字符串,有六种:string Boolean number object undefined function
var a=1;if(function f(){}){ x+=typeof f;}//x的值:“1undefined” 此时function f(){}不算函数声明,会被转换为true,而内部f未定义
2、instanceof
实例 a instanceof b(a是b的实例),返回true、false
[] instanceof Array;//true
3、delete 用于删除对象的成员变量
(function(x){delete x; //falsealert(x);})(1)//结果:1 因为delete删除x失败
4、JS逗号运算符
var a=(1,2,3);//最终a的值为3,选择最后一个值
5、JS预解析
(function f(){ function aaa(){ return 1}; return aaa(); function aaa(){ return 2};})();//返回的结果是2,因为代码在执行前预先解析过,后面的函数声明覆盖了前面的
6、函数参数相当于局部变量
var a=10;function aaa(a){ //此处的a相当于全局变量的副本,是不同于全局变量a的另一个参数,是局部变量 a+=3; } aaa(a); alert(a);//此时找到的是全局的那个a,基本类型的复制操作,全局a从未被改变//10
var a=10; function aaa(){ a+=3;//赋值操作,js没有块级作用域,于是改变了全局变量a的值 } aaa(); alert(a); //13