JavaScript作为网站前端的核心知识是非常重要的,但是如何学习JavaScript是很多初学者面对的一个难题,下面我说一下个人对于如何学习JavaScript的一点心得,希望能帮到大家。
10年积累的成都网站制作、网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先做网站设计后付款的网站建设流程,更有牧野免费网站建设让你可以放心的选择与我们合作。
1、首先学习基础,尤其是JavaScript与其他语言不同的基础知识。
学习每个编程语言可能都要从基础的变量函数结构等学起,JavaScript相对于其他的编程语言在基础上有一些比较有特点的地方,这些东西是尤其需要我们注意的,比如说自调函数、比如说变量值为空不是null而是undefined的等,这些东西都是和主流的编程的语言如c++、java等是有区别的,所以想要学好JavaScript,这些基础的知识一定要把握好学习好才行。
2、关于学习JavaScript的进阶
JavaScript进阶知识更是有很多难理解的东西和不同于其他语言的东西,这些东西都是深入学习JavaScript的难点,简单的说一下JavaScript是基于对象的浏览器脚本语言,但是为了使JavaScript也能够支持面向对象编程,人们就使用了很多的方法来模拟面向对象的的特点,这些就变成了JavaScript的一些难点,比如说JavaScript的继承要借助原型、比如JavaScript的类需要使用构造函数来构造一个对象等,这些东西都是和其他支持面向对象的语言是不同的,所以就导致了一些难点。关于进阶学习JavaScript,还有JavaScript一些深入的知识需要去理解比如原型链和闭包、比如收函数的作用域执行流程和上下文,这些东西都是JavaScript比较深入的知识、
最后说明,JavaScript作为前端的核心语言绝对没有没有想象的那么简单,要想学好JavaScript除了以上提到的知识和注意点,还需要的就是多动手和实践,我们都知道网页上的所有特效都是借助JavaScript来实现,那么我们就需要在学习JavaScript的过程中多使用原生的JavaScript代码实现一些特效,当然学习使用jQuery等JavaScript类库进行开发也十分的重要,但是这绝对不能是取代我们学习JavaScript的方法。
是不是要这样的 效果:
html
head
meta http-equiv="Content-Type" content="text/html; charset=gb2312"
title新建网页 1/title
SCRIPT language=javascript
/************************JS验证代码******************/
function chkform(){
var shen=/^(\d{18,18}|\d{15,15}|\d{17,17}x)$/;
var daxue=/ [u4e00-u9fa5]/;
var xi=/ [u4e00-u9fa5]/;
if (shen.test(document.getElementById("txtUsername").value))
{
alert("请输入正确的身份证格式");
return false;
}
else if(document.getElementById("txtUsername").value=="")
{
alert("身份证不能为空!");
return false;
}
else if (daxue.test(document.getElementById("undaxue").value)){
alert("请输入正确大学名称,限制汉字");
return false;
}
else if (xi.test(document.getElementById("unxi").value)){
alert("请输入正确系院名称,限制汉字");
return false;
}
}
/*********表单提交调用代码****************************/
/SCRIPT
/head
body
form name="form2" id="regUser" action="reg_new.php" method="post"
lispan用户名:/span
input name="userid" type="text" id="txtUsername" class="text" /
i class="red"*/i em id="_userid"(可以使用中文,但禁止除[@][.]以外的特殊符号)/em /li
lispan登陆密码:/span
input name="userpwd" type="password" id="txtPassword" class="text" /
i class="red"*/i /li
lispan确认密码:/span
input name="userpwdok" type="password" id="userpwdok" value="" size="20" class="text" /
i class="red"*/i em id="_userpwdok"/em /li
lispan真实姓名:/span
input name="uname" type="text" id="uname" size="20" class="text" /
i class="red"*/i em id="_uname"(请填写您的真实姓名)/em /li
lispan身份证:/span
input name="unshen" type="text" id="unshen" size="20" class="text" /
i class="red"*/i em id="_uname"(请填写身份证,限制数字+字母)/em /li
lispan大学名称:/span
input name="undaxue" type="text" id="undaxue" size="20" class="text" /
i class="red"*/i em id="_uname"(请填写您的大学名称)/em /li
lispan所在院系:/span
input name="unxi" type="text" id="unxi" size="20" class="text" /
i class="red"*/i /li
button class="buttonGreen142" id="btnSignCheck" type="submit" onclick="return chkform()"注 册/button
/form
/body
/html
一、不定项选择题 (每题3分,共30分)
1. 声明一个对象,给它加上name属性和show方法显示其name值,以下代码中正确的是( D )
A. var obj = [name:"zhangsan",show:function(){alert(name);}];
B. var obj = {name:”zhangsan”,show:”alert(this.name)”};
C. var obj = {name:”zhangsan”,show:function(){alert(name);}};
D. var obj = {name:”zhangsan”,show:function(){alert(this.name);}};
2. 以下关于Array数组对象的说法不正确的是( CD )
A. 对数组里数据的排序可以用sort函数,如果排序效果非预期,可以给sort函数加一个排序函数的参数
B. reverse用于对数组数据的倒序排列
C. 向数组的最后位置加一个新元素,可以用pop方法
D. unshift方法用于向数组删除第一个元素
3. 要将页面的状态栏中显示“已经选中该文本框”,下列JavaScript语句正确的是( A )
A. window.status=”已经选中该文本框”
B. document.status=”已经选中该文本框”
C. window.screen=”已经选中该文本框”
D. document.screen=”已经选中该文本框”
4. 点击页面的按钮,使之打开一个新窗口,加载一个网页,以下JavaScript代码中可行的是( AD )
A.
onclick=”open(‘new.html’, ‘_blank’)”/
B.
onclick=”window.location=’new.html’;”/
C.
onclick=”location.assign(‘new.html’);”/
D.
5. 使用JavaScript向网页中输出
hello
,以下代码中可行的是( BD )
A.
document.write(
hello
);
B.
document.write(“
hello
”);
C.
hello
D.
document.write(“hello”);
6. 分析下面的代码:
function writeIt (value) { document.myfm.first_text.value=value;}
以下说法中正确的是( CD )
A. 在页面的第二个文本框中输入内容后,当鼠标离开第二个文本框时,第一个文本框的内容不变
B. 在页面的第一个文本框中输入内容后,当鼠标离开第一个文本框时,将在第二个文本框中复制第一个文本框的内容
C. 在页面的第二个文本框中输入内容后,当鼠标离开第二个文本框时,将在第一个文本框中复制第二个文本框的内容
D. 在页面的第一个文本框中输入内容后,当鼠标离开第一个文本框时,第二个文本框的内容不变
7. 下面的JavaScript语句中,( D )实现检索当前页面中的表单元素中的所有文本框,并将它们全部清空
A. for(vari=0;i form1.elements.length;i++) {
if(form1.elements.type==”text”)
form1.elements.value=”";}
B. for(vari=0;i
if(forms[0].elements.type==”text”)
forms[0].elements.value=”";
}
C. if(document.form.elements.type==”text”)
form.elements.value=”";
D. for(vari=0;i
for(var j=0;j
if(document.forms.elements[j].type==”text”)
document.forms.elements[j].value=”";
}
}
8. 在表单(form1)中有一个文本框元素(fname),用于输入电话号码,格式如:010-82668155,要求前3位是010,紧接一个“-”,后面是8位数字。要求在提交表单时,根据上述条件验证该文本框中输入内容的有效性,下列语句中,( A )能正确实现以上功能
A. var str= form1.fname.value;
if(str.substr(0,4)!=”010-”|| str.substr(4).length!=8 ||
isNaN(parseFloat(str.substr(4))))
alert(“无效的电话号码!”);
B. var str= form1.fname.value;
if(str.substr(0,4)!=”010-” str.substr(4).length!=8
isNaN(parseFloat(str.substr(4))))
alert(“无效的电话号码!”);
C. var str= form1.fname.value;
if(str.substr(0,3)!=”010-”|| str.substr(3).length!=8 ||
isNaN(parseFloat(str.substr(3))))
alert(“无效的电话号码!”);
D. var str= form1.fname.value;
if(str.substr(0,4)!=”010-” str.substr(4).length!=8
!isNaN(parseFloat(str.substr(4))))
alert(“无效的电话号码!”);
9. 关于正则表达式声明6位数字的邮编,以下代码正确的是( C )
A. var reg = /\d6/;
B. var reg = \d{6}\;
C. var reg = /\d{6}/;
D. var reg = new RegExp(“\d{6}”);
10. 关于JavaScript里的xml处理,以下说明正确的是( BCD )
A. Xml是种可扩展标记语言,格式更规范,是作为未来html的替代
B. Xml一般用于传输和存储数据,是对html的补充,两者的目的不同
C. 在JavaScript里解析和处理xml数据时,因为浏览器的不同,其做法也不同
D. 在IE浏览器里处理xml,首先需要创建ActiveXObject对象
二、问答题
1. 列举浏览器对象模型BOM里常用的至少4个对象,并列举window对象的常用方法至少5个 (10分)
对象:Window document location screen history navigator
方法:Alert() confirm() prompt() open() close()
2. 简述列举文档对象模型DOM里document的常用的查找访问节点的方法并做简单说明 (10分)
Document.getElementById 根据元素id查找元素
Document.getElementByName 根据元素name查找元素
Document.getElementTagName 根据指定的元素名查找元素
三、程序题
1、补充按钮事件的函数,确认用户是否退出当前页面,确认之后关闭窗口; (10分)
function closeWin(){
//在此处添加代码
if(confirm(“确定要退出吗?”)){
window.close();
}
}
2、写出简单描述html标签(不带属性的开始标签和结束标签)的正则表达式,并将以下字符串中的html标签去除掉(15分)
var str = “
这里是div
里面的段落
”;
//
varreg = /\/?\w+\/?/gi;
varstr = “
这里是div
里面的段落
”;
alert(str.replace(reg,”"));
3、完成foo()函数的内容,要求能够弹出对话框提示当前选中的是第几个单选框。(10分)
function foo() {
//在此处添加代码
var rdo =document.form1.radioGroup;
for(var i =0 ;i
if(rdo.checked){
alert(“您选择的是第”+(i+1)+”个单选框”);
}
}
}
4、完成函数showImg(),要求能够动态根据下拉列表的选项变化,更新图片的显示 (15分)
function showImg (oSel) {
//在此处添加代码
var str = oSel.value;
document.getElementById(“pic”).src= str+”.jpg”;
}
1。当p1时返回pb?pb:p=6
1。1当pb时返回pb
1。2当p=b时返回p=6
2。当p=1是返回p=3
所以先执行1
当p=9的时候,返回pb?pb:p=6
接着执行1。1
当p=912时,返回pb,即912,条件不成立
所以最终结果为false
一 :
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.把出这个题的人毙了!
var txt=prompt('please enter your score:',"your score");
if (txt) parseInt(txt)60?alert('congratulations'):alert('you failed');