php面试题之二——Javascript(基础部分)

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/s1070/article/details/51174644

二、JavaScript部分

1. JS 表单弹出对话框函数是?获得输入焦点函数是?

弹出对话框函数:alert(), prompt(), confirm()
获得输入焦点函数:focus()

2. JS 的转向函数是?怎么引入一个外部 JS 文件?

转向使用window.location.href = ""
引入外部 js 使用<script src=""></script>

3. 解释下面语句的意思:document.form["formName"].submit。(百度)

获取 name 为 formName 的表单并将该表单数据提交到服务器。但这行代码是不能运行的,有两处错误,一是通过表单名称来获取表单得到时候,应该写成document.forms[‘formName’],提交表单事件使用submit 方法,需要加上括号,下面给出简单的示例代码:

<form action="a.php" meathod="post" name="login" id="f1">
    用户名:<input type="text" name="username"/>
    <input type="button" id="btn" value="提交"/>
</form>
<script type="text/javascript">
    document.getElementById("btn").οnclick=function () {
        if (document.forms['login'].username.value != '') {
            document.forms['login'].submit();
        }
    }
</script>
4. 有下面语句:<input id="txt" type="text" value="baidu" />编写代码,当鼠标划过文本框,自动选中文本框中的内容。(百度)
<input id="txt" type="text" value="baidu"/>
<script type="text/javascript">
    var textBox = document.getElementById('txt');
    textBox.onmouseover = function(){
        this.select();
    }
</script>
5. 设计一个网页,使得打开它时弹出一个全屏的窗口,该窗口中有一个文本框和一个按钮。用户在文本框中输入信息后点击按钮就可以把窗口关闭,而输入的信息却在主网页中显示。(新浪)

主窗口:

<a href="" id="a1" target="new">新窗口</a>
<div id="msg"></div>
<script type="text/javascript">
    var a1 = document.getElementById('a1');
    a1.onclick = function () {
        window.open('new.html','new','location=no,toolbar=no');
        return false;
    }
</script>

弹出窗口:

<input type="text" name="message" id="m1"/><br />
<input type="button"value="关闭" id="btn"/><br />
<script type="text/javascript">
    var btn = document.getElementById('btn');
    var message = document.getElementById('m1');

    btn.onclick = function(){
        var div = window.opener.document.getElementById('msg');
        div.innerHTML = message.value;
        window.close();
    }
</script>
6. 可以使用哪些方法使用 JavaScript 向服务器发出请求且不离开当前页面,简单对比各自的特点(如果存在)(酷讯)

使用 XMLHttpRequest 对象异步请求

7. 判断以下代码是否正确,如果有错,请指出错误,如果正确,请指出运行结果 (酷讯)
var arr = new Array(
    new Array(1,2,3,4),
    new Array("abc", "def", "xyz"),
);
for(i = 0; i < arr.length; i++) {
    document.write(arr[0]);
}

怀疑这个代码写错了,第二个 new array 后面的逗号是多余的,如果此处没问题,则代码是正确的,输出的结果是 1,2,3,4 1,2,3,4
:arr 是一个二维数组,该数组有两个元素,第一个元素是数组[1,2,3,4],第二个元素也是一个数组为["abc", "def", "xyz"],for 循环语句执行了两次,但都是输出第一个元素,即数组[1,2,3,4]。

[E]8. 用 JavaScript 写一个函数,其功能是可以删除数组中重复的元素。
<script type="text/javascript">
function array_unique(arr){
    var result = arr;
    for (var i = 0; i < arr.length; i++) {
        for (var j = 0; i < arr.length; j++) {
                temp = arr[i];
                // 如果当前元素与后面某一个元素相等,则移除顶元素
                if ((i+j+1) < arr.length && temp === arr[i+j+1]) {
                    result.splice(i+j+1,1);
                }
        }
    }
    return result;
}

var a = [4,7,8,5,8,6,43,7,0,false,'',{}];
var b = array_unique(a);

alert(b);//4,5,8,5,6,43,0,false,[object Object]
</script>
9. 以下哪条 JavaScript 语句会产生运行错误:( )

A. var obj = ( );
B. var obj = [ ];
C. var obj = { };
D. var obj = //;
答案:A

10. 请选择结果为真的表达式:( )

A. null instanceof Object
B. null === undefined
C. null == undefined
D. NaN == NaN
答案:C

11. foo 对象有 att 属性,那么获取 att 属性的值,以下哪些做法是可以的:( )

A. foo.att
B. foo("att")
C. foo["att"]
D. foo{"att"}
E. foo["a"+"t"+"t"]
答案:ACE

12. 如何添加 html 元素的事件,有几种方法,举例

(1).直接作为元素的属性,如<img οnclick="alert( 'hello' );" src="hello.jpg">
(2).使用 DOM 0 级事件,简单,兼容性好,如 img.onclick = function(){}
(3).使用 DOM 2 级事件,功能更强大,在非 IE 等标准浏览其中,使用 addEventListener,在IE 浏览器中则使用 attachEvent 来实现。

13. JavaScript 能否定义二维数组,如果不能你如何解决?

JavaScript 不支持二维数组定义,可以用 arr[0] = new array()来解决。

14. 假设 a.html 和 b.html 在同一个文件夹下面,用 JavaScript 实现当打开 a.html 五秒钟后,自动跳转到 b.html。
<script type="text/javascript">
    function go2b() {
        window.location.href = "b.html";
        window.close();
    }

    setTimeout("go2b()",5000);//5秒后自动执行go2b方法
</script>
15. 请使用 JavaScript 写出三种产生一个 image 标签的方法(提示:从方法、对象、HTML角度考虑)

(1). var img = new Image();
(2).var img = document.createElement("image")
(3). img.innerHTML = "<img src='xxx.jpg' />"

16. js 中网页前进和后退的代码

前进: history.forward();或者 history.go(1);
后退: history.back ();或者history.go(-1);

17. 请写出一条至少 3 个节点的 DOM 树 (YG)
<script type="text/javascript">
    var div = document.createElement("div");

    var a = document.createElement("a");
    a.href = "http://www.baidu.com";

    var span = document.createElement("span");
    span.innerHTML = "百度";

    a.appendChild(span);
    div.appendChild(a);
    document.body.appendChild(div);
</script>

结果 HTML:
<div><a href="http://www.baidu.com"><span>百度</span></a></div>

18. 实现点击按钮弹出窗口的代码 (YG)
document.getElementById( 'button' ).onclick = function(){
window.open ('page.html');
}

其中,button 是按钮的 id,page.html 是要弹出的窗口页面。

19. JavaScript 包括那些基本数据类型?(小米)

JavaScript 中包括 5 种基本数据类型,分别是 Number,String,Boolean,Null 和 Undefined。

展开阅读全文

VB.net学习笔记之基础部分之二

01-27

41、Catch语句可以带when表达式,这是一个好过C#的特性。rnrn42、但但try finally endtry,不要catch语句 也是可以,用来提供统一的退出代码,但是不捕获错误。rnrn43、on error goto/resume会降低代码运行速度5倍。rnrn44、引发嵌套异常 ,throw new exception("新异常说明",ex), ex.getbaseexception取得最底层的异常。rnrn45、自己的代码尽量少地用引发异常来处理异常,用不同的返回值更好一些,异常通常在调用非自己定义的过程的时候用。rnrn46、在最终发行的程序中,选择项目属性“取消整数溢出检查”可以提高整数预算速度20%到40%rnrn47、对于过程是引用参数,如果需要传值进行,可以在调用过程用括号将参数括起来,例如 pf((X)),这样X就不会被目标函数改变。rnrn48、2L long型,2I Integer型,2D Double型 ,2S Short型,2@ Decimal型,2! single型rnrn49、属性可以作为引用参数传递,而且可能被改变。rnrn50、用readonly和writeonly关键词定义只读、只写属性,readonly也可以用于字段。rnrn51、带参数的属性还可以用可选参数,其实和过程也没啥差别,C#却不行啊,好!rnrn52、使用关键词Default,可以将带参数的属性设为默认属性。rnrn53、爽啊,有参数的属性竟然可以重载,C#太差了,哈哈哈哈,选择VB.net没错rnrn54、new过程引发异常,可以阻止创建对象,最好 不要这样,用private作用域的构造函数,然后用public共享过程创建对象更合理一些。rnrn55、类内部可以使用自己的属性,类自己的代码也应该坚持使用属性,而不是使用私有变量进行取值、赋值,这样就可以有统一的验证代码。rnrn56、New过程是唯一能够对只读字段赋值的地方。rnrn58、Finalize方法必须用Protected Overrides来重写。rnrn59、过程用Static关键词创建的变量,能够保持上一次运行的值,这是VB6留下来的吗?rnrn60、有意思的代码,判断某个变量是否是某个类型:rn Dim o1 As Objectrn o1 = 123rn If TypeOf o1 Is Object Then 成立的rn End Ifrn If TypeOf o1 Is Integer Then 成立的rn End Ifrn if IsReference(o1) then 不成立的rn end ifrnrn61、定义事件够简单的。rnClass myclsrnEvent MyEvent(byval s as string)rnsub testeventrn raiseevent myevent("我爱陈夏燕")rned subrnend classrnrn62、厉害,Module代码块也可以有事件。rnrn63、公共的数据用共享字段或属性保存rnrn64、如果只提供私有构造函数,那么类是不能创建实例的。rnrn65、共享构造函数用于初始化共享字段和属性。实例变量也可以用withevents/handles处理共享事件,当然我认为用addhandler处理更好一些。rnrn66、基类可重写成员用overridable修饰,派生类用overrides重写基类成员,如果是同名但签名不同的成员,用overloades.rnrn67、对于已经重写的基类成员,派生类可以用maybase关键词去引用,重写Dispose过程,必须调用mybase.disposernrn68、如果基类没有隐式或显式包括一个无参数的构造函数(也就是基类只存在有参数的构造函数),派生类必须定义一个构造函数,且第一行必须是mybase.new(...)rnrn69、没事不要使用overrideable,效率会降低15%rnrn70、派生类调用基类的一个非重写方法时,代码运行在基类中,却出于派生类的上下文中(也就是会调用派生类的重写成员),如果基类代码一定要调用基类成员,用myclass关键词指定.rnrn71、overloads隐藏相同签名的基类成员,而shadows隐藏所有的同名成员,注意这里是隐藏,不是重写。隐藏的成员之间没有任何关系,也就不存在第70条所说的问题。rnrn72、共享成员不能被重写,只能被隐藏,用shadows隐藏。rnrn73、NotInheritable定义不能被继承的类,MustInherit定义必须被继承的类,MustOverride定义必须重写的成员(也就是虚拟方法),有虚拟成员的类必须是MustInheritrnrn74、内部类的代码可以访问外部类的私有成员,共享成员直接访问,实例成员需要一个外部类的实例。私有嵌套类的实例不能被外部类用public定义。rnrn75、构造函数用Friend修饰,将只能在本程序集内创建对象,用private修饰,将不能创建对象(但是可以用一个public修饰共享方法来创建对象,这样就可以在创建对象之前运行某些代码,而且可以很方便地决定能否创建)rnrn76、定义事件的更合理代码,这样可以在派生类中更好地控制事件的触发。rnClass myclsrnEvent MyEvent(byval s as string)rnprotected overridable sub testeventrn raiseevent myevent("我爱陈夏燕")rned subrnend classrnrn77、接口不能包括变量,而且属性和方法不能带有作用域修饰符。rnrn78、实现接口的类,要访问接口成员,必须先转换为接口变量,但是如果是用public过程实现接口成员,那么可以直接用类访问。rnrn79、directcast只能转换引用类型,而ctype则没有这个限制。rnrn80、派生类重写基类中的实现的接口成员,不需要再用implements.rnrn81、array.sort对数组排序。array.sort(arr,system.Collections.CaseInsensitiveComparer.Default)可以忽略大小写。rnrn82、MemberwiseClone方法复制自己(浅表),注意该方法是Protected作用域。rnrn83、委托赋值的简单方法:rndelegate sub onedelegate(byval str as string)rndim delg as onedelegaterndelg = address of mysubrndelg.invoke("abc") 或者 delg("abc")rnrnsub mysub(byval str as string)rn msgbox(str)rnend subrnrn83、委托的Target返回目标对象,如果委托的是共享方法,则返回一个代表目标类的System.Type,委托的Methed返回代表委托方法的System.Reflection.MethodInfornrn84、delegate的共享方法combine/remove用来管理多路委托。rnrn85、用GetCustomAttributes/GetCustomAttribute/IsDefined等特性共享方法来检索特性。 论坛

没有更多推荐了,返回首页