170401牛客网web前端答题

*wrong

1.jquery ajax中都支持哪些返回类型?(A,B,C,D)

A.xml  B.html  C.jsonp  D.json

解析:

  $ajax()函数依赖服务器提供的信息来处理返回的数据。如果服务器报告说返回的数据是XML,那么返回的结果就可以用普通的XML方法或者jQuery的选择器来遍历。如果见得到其他类型,比如HTML,则数据就以文本形式来对待。

  通过dataType选项还可以指定其他不同数据处理方式。除了单纯的XML,还可以指定html、json、jsonp、script或者text。

*true

2.下面哪些语句可以在JS里判断一个对象oStringObject是否为String。(A)

A.oStringObject instanceof String

B.typeof oStringObject == 'string'

C.oStringObject is String

D.以上答案都不正确

解析:

//判断是否为String
function isString(str){
    return ((str instanceof String)||(typeof str)=='string');
}

  js 中的基本类型只有number/string/boolean/object/null/undefined,而String、Number、Array等只能算子类型,String 类型与string类型是不一样的。

  题目问的是是否为String这种子类型,所以只能通过instanceof或者Object.prototype.toString.call(obj)==='[Object String]'来判断。

*wrong

3.常见的浏览器端的存储技术有哪些?(A B D)

A.cookie  B.localStorage  C.session  D.userData

解析:

  cookie是靠谱的浏览器都支持;

  localStorage比cookie存的更多,获取更方便,而且存储内容不会随便发送给服务器;

  session虽然需要cookie支持(通常存放加密过的sessionId),但是不在浏览器端存放主要信息,排除;

  IE支持userData存储数据,但是基本很少使用到,除非有很强的浏览器兼容需求。

*wrong

4.如何规避javascript多人开发函数重名问题。

A.根据不同的开发人员实现的功能,在函数名加前缀

B.每个开发人员都把自己的函数封装到类中,然后调用的时候即使函数名相同,但是因为是要类.函数名来调用,所以也减少了重复的可能性

C.以上都不正确 

解析:

  js的类概念就是封装的函数。

*wrong

5.下面属于javascript基本数据类型的有?(A B C D)

A.字符串  B.数字  C.null  D.undefined

解析:

js五种基本类型:Undefined,Null,Boolean,Number和String

typeof六种返回格式:

  (1)undefined——未申明,或者变量的值即为undefined或者未初始化;

  (2)boolean——如果这变量的值是布尔类型;

  (3)string——值是字符串类型;

  (4)number——值是数字类型;

  (5)object——对象或值为null;

  (6)function——函数。

*true

6.下面有关html结构描述正确的有?(A B D)

A.<ul> <li> </li> </ul>

B.<ol> <li> </li> </ol>

C.<dl><dt><dd></dd></dt></dl>

D.<table> <tr> <td></td> </tr> </table>

解析:

  dt和dd是同级元素,不能用dt包含dd。

  <li> 标签定义列表项目。

  <li> 标签可用在有序列表 (<ol>) 和无序列表 (<ul>) 中。
  <dl>标记定义了一个定义列表,定义列表中的条目是通过使用<dt>标记(“definition   title”,定义标题)和<dd>标记(“definition description”,定义描述)创建的。<dt>给出了术语名,<dd>标记给出了术语的定义。
  <table>代表表格</table> 
  <tr>代表表格中的一行</tr> 
  <td>代表表格中的一列</td>

*wrong

7.在bootstrap中,关于导航条,下列说法正确的是?(A B C D)

A.应该将被包裹的元素放到navbar-collapse类中

B.表单应该放置于navbar-form内

C.可以使用navbar-left和nav-right来对齐导航条

D.可以使用navbar-fixed-top和navbar-fixed-bottom来将导航条固定到顶部或底部

解析:

  为了给导航栏添加响应式特性,您要折叠的内容必须包裹在带有 class .collapse、.navbar-collapse 的 <div> 中。

  折叠起来的导航栏实际上是一个带有 class .navbar-toggle 及两个 data- 元素的按钮。第一个是 data-toggle,用于告诉 JavaScript 需要对按钮做什么,第二个是 data-target,指示要切换到哪一个元素。

  三个带有 class .icon-bar 的 <span> 创建所谓的汉堡按钮。这些会切换为 .nav-collapse <div> 中的元素。为了实现以上这些功能,您必须包含 Bootstrap 折叠(Collapse)插件。

  导航栏中的表单不是使用 Bootstrap 表单 章节中所讲到的默认的 class,它是使用 .navbar-form class。这确保了表单适当的垂直对齐和在较窄的视口中折叠的行为。使用对齐方式选项(这将在组件对齐方式部分进行详细讲解)来决定导航栏中的内容放置在哪里。

  您可以使用实用工具 class .navbar-left 或 .navbar-right 向左或向右对齐导航栏中的 导航链接、表单、按钮或文本 这些组件。这两个 class 都会在指定的方向上添加 CSS 浮动。 Bootstrap 导航栏可以动态定位。默认情况下,它是块级元素,它是基于在 HTML 中放置的位置定位的。通过一些帮助器类,您可以把它放置在页面的顶部或者底部,或者您可以让它成为随着页面一起滚动的静态导航栏。

  如果您想要让导航栏固定在页面的顶部,请向 .navbar class 添加 class .navbar-fixed-top。 如果您想要让导航栏固定在页面的底部,请向 .navbar class 添加 class .navbar-fixed-bottom。

*wrong

8.以下是行内元素的有(A B)

A.span  B.input

C.ul    D.p

解析:

大多数 HTML 元素被定义为块级元素或内联元素。“块级元素”译为 block level element,“内联元素”译为 inline element。

1.块级元素 在浏览器显示时,通常会以新行来开始(和结束)。块级元素按照其应用于结构还是内容分为三种:结构化块状元素,终端块状元素,多目标块状元素。 

  结构化块状元素: 这类元素用于构造文档的结构,没有语义上的含义,仅仅划分出了文档的组织方式,并没有体现文档的内容。 
  终端块状元素: 这类元素用于从结构转向内容,拥有语义上的含义,能够表明内容的性质。终端块状元素属于结构的终点,它们不能再包含其他块级元素,只能包含文本或行级元素。
  多目标块状元素: 多目标指的是可以自由的扩展或嵌套文档的结构,以可以终端的形式出现。当多目标块状元素以结构化的方式使用时就含有结构化的内涵,以终端的形式使用就含有语义的内涵。 

  块级元素:

2.内联元素 (inline element)或称为行内元素 一般都是基于语义级(semantic)的基本元素,只能容纳文本或者其它内联元素。 

行内元素:
 

3.块级元素与行内元素的区别
(1)块级元素会独占一行,其宽度自动填满其父元素宽度;
行内元素不会独占一行,相邻的行内元素会排列在同一行,直至一行排不下才会换行,其宽度随元素的内容而变化。
(2)块级元素可以包含行内元素和块级元素;行内元素不能包含块级元素。
(3)行内元素设置width、height、margin-top、margin-bottom、padding-top、padding-bottom无效。
 
4. 块级元素与行内元素的转换
  display:inline-block;
  display:inline;
  display:block;

5.可变元素

*wrong

 9.下面关于IE、FF下面脚本的区别描述错误的是?(B D)

A.innerText IE支持,FIREFOX不支持

B.document.createElement FIREFOX支持,IE不支持

C.setAttribute('class','styleClass') FIREFOX支持,IE不支持

D.用setAttribute设置事件 FIREFOX不支持,IE支持

 *wrong

10.下面有关javascript内部对象的描述,正确的有?

A.History 对象包含用户(在浏览器窗口中)访问过的 URL

B.Location 对象包含有关当前 URL 的信息

C.Window 对象表示浏览器中打开的窗口

D.Navigator 对象包含有关浏览器的信息

解析:

  Navigator:提供有关浏览器的信息

  Window:Window对象处于对象层次的最顶层,它提供了处理Navagator窗口的方法和属性

  Location:提供了与当前打开的URL一起工作的方法和属性,是一个静态的对象

  History:提供了与历史清单有关的信息

  Document:包含与文档元素一起工作的对象,它将这些元素封装起来供编程人员使用

*wrong

11.假设当前屏幕分别率为1024×768,定义一个居中的占屏幕一半大小的表格的语句是(A B C D)

A.<TABLE ALIGN="CENTER" WIDTH="50%"></TABLE>

B.<TABLE ALIGN="CENTER" WIDTH="512"></TABLE>

C.<DIV ALIGN="CENTER"><TANLE WIDTH="512"></TABLE></DIV>

D.<CENTER><TABLE WIDTH="50%"></TABLE></CENTER>

*wrong

12.嵌入在HTML文档中的图像格式可以是?(A C D)

A.*.gif

B.*.tif

C.*.bmp

D.*.jpg

解析:

  常用的页面的图片格式有三种,GIF、JPG、PNG。 
  GIF 意为Graphics Interchange format(图形交换格式); 
  JPEG 代表Joint Photograhic Experts Group(联合图像专家组),这种格式经常写成JPG,JPG图片的扩展名为jpg;
  流式网络图形格式(Portable Network Graphic Format,PNG)名称来源于非官方的“PNG's Not GIF”,是一种位图文件(bitmap file)存储格式,读成“ping”。PNG用来存储灰度图像时,灰度图像的深度可多到16位,存储彩色图像时,彩色图像的深度可多到48位,并且还可存储多到16位的α通道数据。
  标签图像文件格式 ( Tagged Image File Format ,简写为 TIFF )是一种灵活的 位图 格式,主要用来存储包括照片和艺术图在内的图像。 TIFF文件格式适用于在应用程序之间和计算机平台之间的交换文件,它的出现使得图像数据交换变得简单。 TIFF文件以 .tif 为扩展名。其数据格式是一种3级体系结构,从高到低依次为:文件头、一个或多个称为IFD的包含标记指针的目录和数据。 

*wrong

13.关于h标签

<h1>h1. Bootstrap heading <small>Secondary text</small></h1>

以下说法正确的是(A D)

A.<h1>最大

B.<h6>最大

C.<small>用法错误

D.<small>表示副标题

*wrong

14.下面属于CSS3新增属性的有?(A B C D)

A.box-shadow

B.text-shadow

C.border-radius

D.rgba

解析:

  A:box-shadow: [<颜色><水平偏移><纵向偏移><模糊半径>] || [<水平偏移><纵向偏移><模糊半径><颜色>];
说明:
(1) <颜色>和<模糊半径>是可选的, 当<颜色>未指定时, 将使用文本颜色; 当<模糊半径>未指定时, 半径值为0;
(2) shadow可以是逗号分隔的列表, 如:
     box-shadow: 2px 2px 2px #ccc, 3px 3px 3px #ddd;
(3) 阴影效果会按照shadow list中指定的顺序应用到元素上;
(4) 这些阴影效果有可能相互重叠, 但不会叠加文本本身;
(5) 阴影可能会跑到容器的边界之外, 但不会影响容器的大小.
 
  B:阴影的参数格式和box-shadow相同;
 
  C:border-radius: r; Box的四个角可以由边框半径来设置弯曲度,其定义方式和border属性类似;
  D:rgba(0-255,0-255,0-255,0-1) 

前三个数值是 RGB 颜色的值, 最后一个数值指代的是元素的透明度 (0 表示透明, 1 表示不透明).

*wrong

15.问一份标准的HTML文档有哪几个必须的HTML标签?(A B C D)

A.<html>  B.<head>

C.<title>  D.<body>

解析:

  一份标准的HTML文档。

*wrong

16.请给Array本地对象增加一个原型方法,它用于删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重复条目的新数组。

解析:这个有点难以理解的说。。

<script>
        Array.prototype.distinct=function(){
            var ret=[];
            for(var i=0;i<this.length;i++){
                //indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
                if(this.indexOf(this[i]!=i)){
                    //push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
                    ret.push(this[i]);
                }
            }
            return ret;
        }
        alert(['a','b','c','d','b','"a"','e','1','2','3','2','"3"'].distinct());
    </script>

 

*wrong

17.请填充代码,使mySort()能使传入的参数按照从小到大的顺序显示出来。

function mySort() {
    var tags = new Array();//使用数组作为参数存储容器
    请补充你的代码
    return tags;//返回已经排序的数组
}
 
var result = mySort(50,11,16,32,24,99,57,100);/传入参数个数不确定
console.info(result);//显示结果

解析:

<script>
        function mysort(){
            var tags=new Array();
            //在JavaScript中,arguments是对象的一个特殊属性。arguments对象就像数组,但是它却不是数组。
            //属性length, 获取arguments对象的长度。
            for(var h=0;h<arguments.length;h++){
                tags.push(arguments[h])
            }
//冒泡排序
for(var i=0;i<tags.length;i++){ for(var j=i+1;j<tags.length;j++){ if(tags[i]>tags[j]){ var temp=tags[i]; tags[i]=tags[j]; tags[j]=temp; } } } //alert(tags); return tags; } var result = mysort(50,11,16,32,24,99,57,100); console.info(result);//显示结果 </script>

虽然这个不符合题意,但排了序:

<script>
        Array.prototype.distinct=function(){
            for(var i=0;i<this.length;i++){
                for(var j=i+1;j<this.length;j++){
                    if(this[i]>this[j]){
                        var temp=this[i];
                        this[i]=this[j];
                        this[j]=temp;
                    }
                }
            }
            return this;
        }
        alert([50,11,16,32,24,99,57,100].distinct());
    </script>

*wrong

18. 用javascript实现用户登录验证的代码。

 解析:不标准之答案

function check(){
            if(document.getElementById("username".value=="")){
                alert("没有输入用户名!");
                return false;
            }else if(document.getElementById("password").value==""){
                alert("没有输入密码!");
                return false;
            }else{
                return true;
            }
        }
原文地址:https://www.cnblogs.com/liao13160678112/p/6656848.html