• JavaScript面试题整理


    一、单选题

    1、以下哪条语句会产生运行错误:(A

    • A.var obj = ( ); // 语法错误
    • B.var obj = [ ];//定义一个数组
    • C.var obj = { };//定义一个对象
    • D.var obj = / /;//定义一个正则表达式

    2、以下哪个单词不属于javascript保留字:(B

    • A. with
    • B. parent
    • C. class
    • D. void

    3、请选择结果为真的表达式:(C

    • A. null instanceof Object
    • B. null === undefined
    • C. null == undefined
    • D. NaN == NaN
    说明
    ==用于一般比较,===用于严格比较,==在比较的时候可以转换数据类型,===严格比较,只要类型不匹配就返回false
    举例说明:
    "1"  ==  true
    类型不同,"=="将先做类型转换,把true转换为1,即为 "1"  ==  1;
    此时,类型仍不同,继续进行类型转换,把"1"转换为1,即为 1 == 1;
    此时,"==" 左右两边的类型都为数值型,比较成功!
    如果比较:"1"  ===  true 左侧为字符型,右侧为bool布尔型,左右两侧类型不同,结果为false;
    如果比较:"1"  ===  1      左侧为字符型,右侧为int数值型,左右两侧类型不同,结果为false;
    如果比较: 1   ===  1       左侧为int数值型,右侧为int数值型,左右两侧类型相同,数值大小也相同,结果为true;
    简而言之就是 "==" 只要求值相等; "===" 要求值和类型都相等

    二、不定项选择题

    1、foo对象有att属性,那么获取att属性的值,以下哪些做法是可以的:(ACE)
    A. foo.att
    B. foo(“att”)
    C. foo[“att”]
    D. foo{“att”}
    E. foo[“a”+”t”+”t”]

    2、以下哪些是javascript的全局函数:(ABC)
    A. escape
    B. parseFloat
    C. eval
    D. setTimeout
    E. alert

     说明:全局属性和函数可用于所有内建的 JavaScript 对象。

     顶层函数(全局函数)
     
    FF: Firefox, IE: Internet Explorer

    函数

    描述

    FF

    IE

    decodeURI()

    解码某个编码的 URI。

    1

    5.5

    decodeURIComponent()

    解码一个编码的 URI 组件。

    1

    5.5

    encodeURI()

    把字符串编码为 URI。

    1

    5.5

    encodeURIComponent()

    把字符串编码为 URI 组件。

    1

    5.5

    escape()

    对字符串进行编码。

    1

    3

    eval()

    计算 JavaScript 字符串,并把它作为脚本代码来执行。

    1

    3

    getClass()

    返回一个 JavaObject 的 JavaClass。

     

     

    isFinite()

    检查某个值是否为有穷大的数。

    1

    4

    isNaN()

    检查某个值是否是数字。

    1

    3

    Number()

    把对象的值转换为数字。

    1

     

    parseFloat()

    解析一个字符串并返回一个浮点数。

    1

    3

    parseInt()

    解析一个字符串并返回一个整数。

    1

    3

    String()

    把对象的值转换为字符串。

    1

     

    unescape()

    对由 escape() 编码的字符串进行解码。

    1

    3

     顶层属性(全局属性)FF: Firefox, IE: Internet Explorer

     方法

     

    描述

    FF

    IE

    Infinity

    代表正的无穷大的数值。

    1

    4

    java

    代表 java.* 包层级的一个 JavaPackage。

     

     

    NaN

    指示某个值是不是数字值。

    1

    4

    Packages

    根 JavaPackage 对象。

     

     

    undefined

    指示未定义的值。

    1

    5.5

    3、关于IFrame表述正确的有:(ABCD)
    A. 通过IFrame,网页可以嵌入其他网页内容,并可以动态更改
    B. 在相同域名下,内嵌的IFrame可以获取外层网页的对象
    C. 在相同域名下,外层网页脚本可以获取IFrame网页内的对象
    D. 可以通过脚本调整IFrame的大小

     三、问答题:

    1、谈谈javascript数组排序方法sort()的使用,重点介绍sort()参数的使用及其内部机制

    sort的实现的功能类似JAVA的比较器,数据排序从多维数组的第一维开始排序
    可以自己定义排序方法,很不多的函数

     2、简述DIV元素和SPAN元素的区别。

    DIV有回车,SPAN没有

    DIV是块元素,SPAN是内嵌元素。块元素相当于内嵌元素在前后各加一个<br>换行。其实,块元素和行内元素也不是一成不变的,只要给块元素定义display:inline,块元素就成了内嵌元素,同样地,给内嵌元素定义了display:block就成了块元素了。

    DIV(division)是一个块级元素,可以包含段落、标题、表格,乃至诸如章节、摘要和备注等。而SPAN 是行内元素,SPAN 的前后是不会换行的,它没有结构的意义,纯粹是应用样式,当其他行内元素都不合适时,可以使用SPAN。

    3、结合text这段结构,谈谈innerHTML outerHTML innerText之间的区别。

    innerHTML对象里面的HTML,outerHTML包括对象和里面的

    innerText对象里面的文本

    4、说几条XHTML规范的内容(至少3条)

    属性加引号,不能有不匹配的标签,加定义

    5、对Web标准化(或网站重构)知道哪些相关的知识,简述几条你知道的Web标准?

    网页主要由三部分组成:结构(Structure)、表现(Presentation)和行为(Behavior)。对应的网站标准也分三方面:结构化标准语言,主要包括XHTML和XML;表现标准语言主要包括CSS;行为标准主要包括对象模型(如W3C DOM)、ECMAScript等。

    6、var a = 10; var b = 20; var c = 10; alert(a = b); alert(a == b); alert(a == c);结果是?

    结果:20,true.false;

    7、form中的input有哪些类型?各是做什么处理使用的?

    text radio checkbox file button image submit reset hidden
    submit是button的一个特例,也是button的一种,它把提交这个动作自动集成了。
    如果表单在点击提交按钮后需要用JS进行处理(包括输入验证)后再提交的话,通常都必须把submit改成button, 即取消其自动提交的行为,否则,将会造成提交两次的效果,对于动态网页来说,也就是对数据库操作两次。

    button具有name、value属性,能触发onclick事件

    submit继承了button

    submit增加了触发表单onsubmit事件的功能、增加了执行表单的submit()方法的功能

     INPUT type=submit按回车提交表单

     button提交的是innerTEXT

     8、table标签中border,cellpadding td标签中colspan,rowspan分别起什么作用?

    border边界
    cellpadding,是补白,是指单元格内文字与边框的距离
    cellspacing,两个单元格之间的距离
    colspan跨列数
    rowspan跨行数

     9、form中的input可以设置readonly和disable,请问这两项属性有什么区别?

    readonly不可编辑,但可以选择和复制
    disable不能编辑复制选择

    10、JS中的三种弹出式消息提醒(警告窗口、确认窗口、信息输入窗口)的命令是什么?

    alert
    confirm
    prompt

    11.求y和z的值是多少?

    <script type="text/javascript">
    var x = 1;
    var y = 0;
    var z = 0;
    function add(n){n=n+1;}
    y = add(x);
    function add(n){n=n+3;}
    z = add(x);
    </script>
    都为undefined,因为没有返回值。

    12.javascript是面向对象的,怎么体现javascript的继承关系?

    使用prototype来实现。

    13.javascript怎样选中一个checkbox,怎样设置它无效?

    document.all.cb1[0].disabled = true;

    14.javaScript的2种变量范围有什么不同?

    全局变量:当前页面内有效

    局部变量:方法内有效

    15.列举javaScript的3种主要数据类型,2种复合数据类型和2种特殊数据类型。

    主要数据类型:string, boolean, number

    复合数据类型:function, object

    16.程序中捕获异常的方法?

    window.error

    try{}catch(){}finally{}

    17.写出函数DateDemo的返回结果,系统时间假定为今天

    function DateDemo(){

      var d, s="今天日期是:";

      d = new Date();

      s += d.getMonth() + "/";

      s += d.getDate() + "/";

      s += d.getYear();

      return s;

    }

    结果:今天日期是:7/17/2010

    18.写出程序运行的结果?

    for(i=0, j=0; i<10, j<6; i++, j++){

      k = i + j;

    }

    结果:10(小心陷阱)

     19.运行的结果?

    function hi(){
    var a;
    alert(a);
    }

    结果:undefined

    20.运行的结果?

    function hi(){
    var a = null;
    alert(a);
    }

    结果:null

    14.浏览器的对象模型?

    window

    顶级对象

    window.alert(msg)

    window.prompt()

    window.confirm()

    if(window.confirm()){

    ...

    }

    window.open()

    window.close()

    document

    document.write()

    history

    当用户浏览网页时,浏览器保存了一个最近所访问网页的url列表。这个列表就是用history对象表示。

    history.back():后退

    history.forward():前进

    history.go(n):正数表示向前,负数表示向后

    location

    表示当前打开的窗口或框架的URL信息。

    location.href:重定向

    等价于location.assign(url)

    location.host:类似www.163.com:80

    navigator

    表示浏览器的信息及js运行的环境

    navigator.cookieEnabled:该属性表示是否启用cookie

    screen

    用于显示网页的显示器的大小和颜色

    screen.width/screen.height:表示显示器的分辨率(总的宽度,高度)

    21XMLHTTPRequest对象是什么?
    Ajax原理

    22.超链接的属性target的可选值:_blank, _parent, _self, _top和框架名称有什么区别?

    23.javascript的常用对象有哪些?

    String, Math, Date和Array对象

     四、编程题:

    1、完成foo()函数的内容,要求能够弹出对话框提示当前选中的是第几个单选框。

     <html> <head> <script> function foo() { // 在此处添加代码 var rg = document.getElementsByName("radioGroup"); for( var i = 0; i < rg.length; i++ ) { if( rg[i].checked ) { alert("你选择了第" + (i+1) + "个单选框"); } } return false; } </script> </head> <body> <form name="form1" onsubmit="foo();"> <input type="radio" name="radioGroup" /> <input type="radio" name="radioGroup" /> <input type="radio" name="radioGroup" /> <input type="radio" name="radioGroup" /> <input type="radio" name="radioGroup" /> <input type="radio" name="radioGroup" /> <input type="submit" /> </form> </body> </html>

     2、填充注释部分的函数体,使得foo()函数调用弹出”成功”的对话框。代码应尽量简短。

    function reverse(str) {
    // 在此处加入代码,完成字符串翻转功能
    return str.split(",").reverse().join(",");
    }

        <html>   
            <head>   
                <script>   
                    function foo()   
                    {   
                        var str = reverse('a,b,c,d,e,f,g');   
                        alert(str);   
                        if (str == 'g,f,e,d,c,b,a')   
                            alert('成功');   
                        else alert('失败');   
                    }   
                    function reverse(str)   
                    {   
                        // 在此处加入代码,完成字符串翻转功能   
                        var spl = str.split(',');   
                        var newstr="";   
                        for(i=spl.length-1;i>=0;i--)   
                        {   
                            newstr+=spl[i]+',';   
                        }   
                        newstrnewstr=newstr.substring(0,newstr.length-1)   
                        return newstr;   
                    }   
                </script>   
            </head>   
            <body>   
                <input type="button" value="str" onclick="foo()" />   
            </body>   
        </html>  
  • 相关阅读:
    寒假作业第二组E题题解
    寒假作业第二组C题题解
    [LeetCode]-DataBase-Employees Earning More Than Their Managers
    Python爬取中文页面的时候出现的乱码问题(续)
    用命令行编译运行java文件的乱码问题
    Python爬取中文页面的时候出现的乱码问题
    Python模拟登陆
    Mysql中经常出现的乱码问题
    数据表的自身连接
    人总会有无奈和彷徨的时候,这个时候你就需要一盏明灯。
  • 原文地址:https://www.cnblogs.com/JoannaQ/p/2976752.html
Copyright © 2020-2023  润新知