javascript声明数组:javascript下function声明一些小结

function test{
123;
}

显然这是声明,那下面
var b=function{ 123};

这个大家就怀疑了,好似不是声明,没有名字,只是个匿名,好,再看
var b=function test{ 123};

这个到底是不是声明呢,好象是,那我回答你"不是"
alert(test);
var b=function test{ 123};

可以在非ie上面任何个js实现去测试,会报告test未定义,那如果这样呢
var b=function test{ 123};
alert(b);
alert(test);

会显示出function test{...}这样toString结果,可以第 2个alert还是异常,为什么呢,也就是说这里function test{ 123}不是声明,而是对象,把引用放到了b里面而已,所以不会象声明样默认把对象绑定到test名字上,那为什么我不叫用ie测试呢,
alert(test);
var b=function test{ 123};

ie会把显示出来,ie比较笨,不会区分单独function声明和=右面对象区别,另外ie甚至还支持function String.prototype.test{...}这样声明,可见iejs bug还真不少了,难怪wilson不支持es4,非得搞个es3.1出来呢,其实是自己bug修正版
Tags:  javascript特效 javascript教程 javascript javascript声明数组

延伸阅读

最新评论

发表评论