十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
JsUnit
专注于为中小企业提供成都网站建设、网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业应城免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了成百上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
JsUnit的官网: h jsunit.net/
JsUnit遵循XUnit的一些惯例:
单元测试在JsUnit中叫做Test Functions.
Test Functions所在的HTML页面叫做Test Page.
一个Test Page是一个包含jsUnitCore.js的HTML页面. jsUnitCore.js提供了一些断言函数, 比如assertEquals(comment, arg1, arg2).
JsUnit支持setUp()和tearDown().
Test Suite Page声明了一个suite()函数,返回一个JsUnitTestSuite, 用来运行含多个测试的套件.
JsUnit的testRunner.html页运行Test Pages.
TestRunner页面可以运行在一个文件服务器或者web服务器上.
异步回调就是发起请求后,不等待响应就去先干别的事
相对于同步就是必须等到响应该请求后才能做别的事
你可以在网页的开头写上
script
var startDate=new Date();
function testSpeed()
{
var endDate = new Date();
alert('加载用时'+(startDate.getTime() - endDate .getTime())+'毫秒' );
}
/script
然后把body标签改为
body onload='testSpeed()'
javascript查看一个对象中的属性和值,包括里面有嵌套的情况。
function f(obj){
var s="";
for(prop in obj){
var temp=typeof obj[prop];
if(temp==="object"){
s+=prop+":"+"{"+f(obj[prop])+"}";
}
else{
s+=prop+":"+obj[prop]+"\n";
}
}
return s;
}
这个函数所需要的参数是一个对象。
一 :
1. A (b c声明的分别是对象和数组,不会报错,d也会报错,但是是编译错误,不是运行期错误)
---------------------------------------------------
2.B
---------------------------------------------------
3.C(a明显错了,null和undefined都是顶级对象,没有constructor,b不说了,三个等号匹配类型,他们没有类型,不会相等,d是比较特殊的,NaN是个数字引用,它不等于任何值)
二:
4.AB(JavaScript算是Jscript的子集,Google一下Jscript就清楚了,第二个根本就是胡扯,C飘过了,Ajax的全称是Asynchronous JavaScript and XML,当然必须用JavaScript)
---------------------------------------------------
5.ACE(这是个考JSON写法的题,属于基础知识,不解释了)
---------------------------------------------------
6.AB(自己把它们写出来就知道了)
---------------------------------------------------
7.ABCDE
---------------------------------------------------
8.ABCDE(iframe是个框架,通过脚本可以实现内部外部的互相通信,当然也可以互相改变大小)
---------------------------------------------------
9.ABCDE(CAPTION必须紧跟在table标签之后,其他的不解释了)
---------------------------------------------------
10.D(window.opener指向上一级的window对象,reload方法是不存在的,window.location="a.html"本身就是个错误语句)
三:
1.sort方法用于对数组进行排序,它的参数是个闭包函数,用来确定排序规则,默认是按照大小从小到大排列,但是如果有参数,就会按照参数的返回值的正负来判断,比如要对一个数字数组进行倒序排序就需要一个闭包函数
var a = function(x,y){return y-x;};
然后把这个闭包作为参数传进去:
[3,2,1,5,8].sort(a); //=[8,5,3,2,1]
实现机制就是对数组进行两两比较,如果闭包的返回值是负值,顺序就互相调换,正值或者零就不变,相当于一个简写的冒泡排序法
---------------------------------------------------
2.
DIV是block元素,默认自己占一行具备width,height等block才有的css样式,SPAN是inline元素,内嵌在DHTML结构中,默认不换行
DIV中可以包含SPAN,但是SPAN中包含DIV是不符合W3C标准的。
---------------------------------------------------
3.
innerHTML属性 是标示一个包含标签内部全部html代码的字符串
outerHTML属性 是标示一个不但包含标签内部而且包含标签本身全部html代码的字符串
innerText属性 是标示一个包含标签内所有文本的字符串,不包含html标签的任何内容
---------------------------------------------------
4.
1.标签必须闭合
2.所有元素属性与属性名称必须为小写字母
3.所有属性值必须加上引号
---------------------------------------------------
5
日妈这个问题真让人恼火,问的也太大了,web标准也太多了,列常用的吧:
1.XHTML应该加上doctype
2.标签必须闭合而且规范排布
3.所有属性值加上引号
4.特殊元素加上必要的属性,比如img应该带着alt,script应该带着type而不是平时经常看到的language
5.属性和属性值全部改成小写,不能出现STYLE="WIDTH:100%"
6.把css和JavaScript改成外部引用
7.不要乱套标签,比如在span或者li里面套div
8.布局不要用table,会造成大量的垃圾代码
9.表单元素带上label
10.把出这个题的人毙了!
以IE8浏览器为例,接下来重点介绍并演示如何使用浏览器自带的开发人员工具调试JS程序。(该工具快捷按钮为F12)
1、在工具-Internet选项-高级,去掉“禁用脚步调试(Internet Explorer)”项的勾选。
2、去掉“显示友好http错误信息”项的勾选。最后点击应用,确定按钮。
3、预览表单,当要执行的js程序出现错误时,浏览器会给出提示。
4、在给出的错误提示窗口中,选择“是(Y)”按钮,进入IE浏览器自带的开发人员工具脚本调试界面。
5、根据JS调试信息可以知道,当前JS报错是由于没有找到指定对象“dat”而导致的。我们需要在表单设计器中,修改JS程序并保存。因演示效果的需要,在本例中是没有设置id值为dat的单行输入框控件的,本例中第二个单行输入框控件的id值是data2。修改后的JS代码。
6、将其改成值data2后,再进行测试不会出现JS报错信息,程序得以正常执行。
7、本例只是演示了如何利用IE自带的开发人员工具进行简单的调试工作,如需了解其他调试及排查技巧,请参阅网络及相关书籍进行学习。