javascript数据类型拾遗(未完待续)

一、Array

1.两个数组能用< > == ===做比较吗?

  答:数组可以用> <进行矩阵比较,比如a=[1,2,3] b=[1,2,4],那么a<b,如果a的数值长度增加,比如a=[1,2,3,1],那么结果还是a<b。而如果数组的长短和数据项大小都相同,那么ab怎么比较都是false。

       所以我们可以知道数组的比较规则:从索引0开始,只要二者比较出结果,即停止比较,返回比较结果。

2.两个空数组相等吗?[]==[]?

 答:不相等,等同于两个空对象比较,有法比较吗?所以false。

3.变态使用数组的方法:x=array.sort;【任意方法名】x();会产生什么效果?

答:只能是报错。

4.变态数组[,,]的长度?现有成员数目?join(‘1‘)会显示什么?

答:数组将,号的解析undefined,长度也是undefined,但是成员却是两个undefined,join(‘1‘)会显示 1 。

二、Number

三、RegExp

1.正则表达式的test(null) 和 test(),二者匹配的项是什么?

答:test:返回值为布尔,如果匹配成功返回true。exec:返回匹配成功的字符串。complie:返回值为正则表达式,用途是更换当前正则对象的匹配内容。

    正则表达式的test 方法会把 null看成字符串"null",而空则被看成"undefined". 相似的方法是:exec 。但是complie方法比较特殊,对于null和其他方法处理一致,但是当为undefined时,就变成了 /(?:)/,很奇特。

四、Function

1.你不知道的function对象的默认属性。

答:有一个name属性是函数对象特有的,值就是函数名,如果是匿名函数,这个值就是"",而如果该函数对象时通过new Function()出来的,默认值是"anonymous"--匿名的

2.当我eval一个函数名的时候会发生什么?

答:会将该函数的函数体整出来,但是该函数不会执行。typeof这个eval会告诉你这是一个 function;

五、Object

 

X.其他

1.乱使用关键字的后果:a={class:‘一班‘,name:‘jack‘}; a.class是什么?

答:根据浏览器的不同,效果也不同,在FF下(其他浏览器好像和FF一致),会输出一班,而在IE8会报错。

javascript数据类型拾遗(未完待续)

上一篇:Asp.Net 4.0 FormAuthentication 原理


下一篇:js在php 中出现 unterminated string literal 解决方法