秋招笔试碰到的疑难题目1

30、关于return语句

function foo(a,b){
  return 
  a+b;
}
var t=foo(3,4);
console.log(t)//undefined

 

29、关于自执行匿名函数

for(var i=0;i<3;i++){
  setTimeout(((a){
    console.log(a);
  })(i),0);
}
//0,1,2

 

28、来自网易笔试的一道题目:下面表明可以重复绑定的,并且不会弹出错误:

var dd=document.getElementById("dd");

){
  dd.onclick=(){
    console.log(1);
  }
}

 

27、关于未定义的变量

var ttt="ttt";
console.log(ttt+abc)ReferenceError: abc is not defined

 

26、$("[href]").html("")这个是所有的包含有href属性的innerHTML都会被置空。来自搜狗笔试。

这样是没有效果的
var li=document.getElementsByTagName("li");
var lii=document.getElementsByClassName("foo");
lii.innerHTML=""; 无效
li.innerHTML=""; 无效

只有确定某一个才有效果。
li[0].innerHTML="3";
lii[1].innerHTML="";

 

25、form表单在你不写enctype属性时,也默认为其添加了enctype属性值,默认值是enctype="application/x-www-form-urlencoded".这个属性管理的是表单的MIME编码,共有三个值可选:

 

                  ①application/x-www-form-urlencoded  (默认值)
                  ②multipart/form-data
                  ③text/plain

①application/x-www-form-urlencoded是默认值,大家可能在AJAX里见过这个:xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 这两个要做的是同一件事情,就是设置表单传输的编码。在AJAX里不写有可能会报错,但是在HTML的form表单里是可以不写enctype="application/x-www-form-urlencoded"的,因为默认HTML表单就是这种传输编码类型。

而②multipart-form-data是用来指定传输数据的特殊类型的,主要就是我们上传的非文本的内容,比如图片或者mp3等等。

③text/plain是纯文本传输的意思,在发送邮件时要设置这种编码类型,否则会出现接收时编码混乱的问题,网络上经常拿text/plain和text/html做比较,其实这两个很好区分,前者用来传输纯文本文件,后者则是传递html代码的编码类型,在发送头文件时才用得上。

①和③都不能用于上传文件,只有multipart/form-data才能完整的传递文件数据。

 

 

24、设有2条路由21.1.193.0/24和21.1.194.0/24,如果进行路由汇聚,覆盖这两条路由的地址是____.

        A 21.1.200.0/22                 B 21.1.192.0/23

        C 21.1.192.0/21                 D 21.1.224.0/20

  194:11000010
  193:11000001
C选项无论21还是22,其实都符合题目要求!使用22个网络位的话,会在选择路由时,符合“最长前缀匹配”这一规则,这是因为网络前缀越长,其地址块就越小,因而路由就越具体,效率也越高。使用21的话,也没什么影响,就是不符合上面这一规则而已!

 

23、订单数据库的设计

之前一直不知道订单详情表要怎么搞,因为,你下一个订单可能包含好几种商品啊,后面想通了,以订单号为主键,多插入几条数据不就好了,为什么一定要放在一行呢?

 

22、二叉树的对称序列就是中序遍历。

 

21、enum, 如果中间有参数初始化了,就在该参数基础上,下一个未赋值的参数值为该赋值参数的值+1。

 

20、100M内存  1G的数据,采用的算法应该是归并排序。

 

19、sizeof 空类的大小为1

 

18、二分法查找

例子:2,5,7,10,14,15,18,23,35,41,52 中查找12

查找序列是15 7 10 14,查找不到

 

17、系统开销的计算 

处理机时间片为200ms,中间间隔10ms,系统开销是多少。

 

16、京东的一道选择题cpi的计算

CPI(Clock cycle Per Instruction)表示执行某个程序的指令平均时钟周期数则:
CPI=TC/IC (IC[instrution counter]表示某个程序的所有指令的条数;tc表示执行某个程序所花费的时钟周期)

 

15、<input> type 属性

 

 

描述
button 定义可点击的按钮(大多与 JavaScript 使用来启动脚本)
checkbox 定义复选框。
color 定义拾色器。
date 定义日期字段(带有 calendar 控件)
datetime 定义日期字段(带有 calendar 和 time 控件)
datetime-local 定义日期字段(带有 calendar 和 time 控件)
month 定义日期字段的月(带有 calendar 控件)
week 定义日期字段的周(带有 calendar 控件)
time 定义日期字段的时、分、秒(带有 time 控件)
email 定义用于 e-mail 地址的文本字段
file 定义输入字段和 "浏览..." 按钮,供文件上传
hidden 定义隐藏输入字段
image 定义图像作为提交按钮
number 定义带有 spinner 控件的数字字段
password 定义密码字段。字段中的字符会被遮蔽。
radio 定义单选按钮。
range 定义带有 slider 控件的数字字段。
reset 定义重置按钮。重置按钮会将所有表单字段重置为初始值。
search 定义用于搜索的文本字段。
submit 定义提交按钮。提交按钮向服务器发送数据。
tel 定义用于电话号码的文本字段。
text 默认。定义单行输入字段,用户可在其中输入文本。默认是 20 个字符。
url 定义用于 URL 的文本字段。

 

 

不看不知道,一看,吓一跳,尽然有这么多属性。

 

14、union 和union all的区别

union和union all的区别是,union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管是不是重复。

Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;

Union All:对两个结果集进行并集操作,包括重复行,不进行排序;

Intersect:对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;

Minus:对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序。

可以在最后一个结果集中指定Order by子句改变排序方式。

union 和 union all都可以将多个结果集合并,而不仅仅是两个,你可以将多个结果集串起来。

使用union和union all必须保证各个select 集合的结果有相同个数的列,并且每个列的类型是一样的。但列名则不一定需要相同,oracle会将第一个结果的列名作为结果集的列名。

 

13、数组是引用类型数据,之前一直以为它是基本类型,具体参见以下代码:

    var arr=[1,2,3];
    var arr2=arr;
    arr2.push(4);
    var arr3=arr.slice(0);

    console.log(arr3==arr);flase
    console.log(arr2===arr);true

上面我先push了一下,再来复制,一个用了==,一个用了===,可以明显的判断数组确实是引用类型数据,

 

12、以下哪些是JavaScript中标准的全局属性(多选)

  A. Infinity  B. NaN  C. undefined  D. null

  答案:ABC

  解析:全局属性:NaN,Java,undefined,Infinity,Packages

  顶层函数(全局函数)

函数 描述
decodeURI() 解码某个编码的 URI。
decodeURIComponent() 解码一个编码的 URI 组件。
encodeURI() 把字符串编码为 URI。
encodeURIComponent() 把字符串编码为 URI 组件。
escape() 对字符串进行编码。
eval() 计算 JavaScript 字符串,并把它作为脚本代码来执行。
getClass() 返回一个 JavaObject 的 JavaClass。
isFinite() 检查某个值是否为有穷大的数。
isNaN() 检查某个值是否是数字。
Number() 把对象的值转换为数字。
parseFloat() 解析一个字符串并返回一个浮点数。
parseInt() 解析一个字符串并返回一个整数。
String() 把对象的值转换为字符串。
unescape() 对由 escape() 编码的字符串进行解码。

  顶层属性(全局属性)

方法 Infinity 代表正的无穷大的数值。
java 代表 java.* 包层级的一个 JavaPackage。
NaN 指示某个值是不是数字值。
Packages 根 JavaPackage 对象。
undefined 指示未定义的值。

 

11、以下代码运行结果是

 

  var mystring=" I am a student";

 

  var a=mystring.substring(9,13);

 

  document.write(a);

 

  A. stud   B. tuden  C. udent  D. uden 

 

  答案:D

  解析:substring() 方法用于提取字符串中介于两个指定下标之间的字符。返回是一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 stop-1 处的所有字符,其长度为 stop 减start。当第二个为负数的时候,会变成0,并比较两个参数的大小,将小的放在前面。

substr(s1,s2)接受两个参数,第一个是起始位置,第二个是参数数表示截取的长度。当第二个为负数的时候,会变成0,也就是截取0个数字,返回空。

 

 

10、考察对new的理解,还有就是this指向哪里

     var name="u";
p(name){ this.name=name; }
p1
=p("t"); p2=new p("r");
console.log(p1);
undefined console.log(p2);p的一个实例对象 console.log(name);t console.log(p2.name);r console.log(p1.name); cannot read property

 

9、考察对css位置的理解,x是否都在y的左边,还有两个选项忘了

  <p style="float:left">x<p>
    <p style="float:right">y</p>
    <br>
    <br>
    <p style="float:left">x</p>
    <p style="width:100%;background:red;">y</p>

 

8、对一些不常用css的考察

  • :nth-last-of-type() 
  • :last-of-type 

  • :nth-of-type

这几个都是存在的。。。。。貌似我选错了

 

7、用和不用use strict

解析:严格模式下,对象不能有重名的属性。正常模式下,如果对象有多个重名属性,最后赋值的那个属性会覆盖前面的值。严格模式下,这属于语法错误。

      严格模式详解参考:http://www.cnblogs.com/jiqing9006/p/5091491.html

    我尝试结果是:

    IE

    使用严格模式:(报错)

 

      

 

    不使用严格模式:(不报错)

 

      

 

    Chrome:

    用不用严格模式都不报错:

 

      

 

      

 

    Firefox

    用不用严格模式都不报错:

 

      

      

 

 

 

 

6、考察math round,ceil,floor的区别

  round()方法第二题解析过,是取与 x 最接近的整数,不一定大于等于参数

  floor() 方法可对一个数进行下舍入。该方法执行的是向下取整计算,它返回的是小于或等于函数参数,并且与之最接近的整数。

  ceil() 方法可对一个数进行上舍入。该方法执行的是向上取整计算,它返回的是大于或等于函数参数,并且与之最接近的整数。

 

5、页面有一个按钮button id为 button1,通过原生的js如何禁用?

<input type="button" id="button1" value="1">
    <input type="button" id="button2" value="2">
    <input type="button" id="button3" value="3">
    <input type="button" id="button4" value="4">
    <input type="button" id="button5" value="5">
    <input type="button" id="button6" value="6">
    <script>
    var t1=document.getElementById("button1"var t2=document.getElementById("button2"var t3=document.getElementById("button3"var t4=document.getElementById("button4"var t5=document.getElementById("button5"var t6=document.getElementById("button6");
    t1.setAttribute("disabled"," true");yes
    t2.setAttribute("readonly",true);no
    t3.disabled=true;yes
    t4.readonly=no
    t5.setAttribute("disabled",1)">yes
    t6.setAttribute("readonly","true");//no

实验发现设置readonly属性都是不可以的,disabled无论true加不加双引号都可以,“.”法和setAttribute两个都可以使用

 

4、页面有一个按钮button id为 button1,通过原生的js 设置背景色为红色?

正确答案 : A
A document.getElementById("button1").style.backgroundColor="red";
B document.getElementById("button1").style.backgroundcolor="red";
C document.getElementById("button1").style.backGroundColor="red";
D document.getElementById("button1").style.bgcolor="red";

 

3、请选出所有的置换元素(    )

正确答案 : ABCD
A img
B input
C textarea
D select

 

2、typeof 的一些用法
var str=new String(4)
        var num=new Number(5)
        console.log(typeof "123"); string
        console.log(typeof 123); number
        console.log(typeof str); object
        console.log(typeof num); object
        
         t (s1,s2,s3) {
            console.log(arguments.length)
        }
        t(23,32,23);3

 

1、自调用匿名函数语句

function sayhi(m){console.log(m)}("hi");      不会执行
!function sayhi(m){console.log(m)}("hi");    立即执行,输出hi
+立即执行,输出hi
~立即执行,输出hi
var s=function sayhi(m){console.log(m)}("hi");立即执行,输出hi

第一个函数是个匿名函数,并不会立即执行,因为js将其当成是函数定义;其后三个前面分别加了一些符号,js就会将其解析成表达式,就会立即执行。第四个是真正意义上的函数表达式,所以,会立即执行,输出结果。相比采用括号包住的自调用匿名函数,他还少了个一个字符

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


1==&gt;简述一下src与href的区别 src用于替换当前元素; href用于在当前文档和引用资源之间确立联系 2==&gt;、谈谈以前端角度出发做好SEO需要考虑什么? a.&#160;了解搜
什么是window对象?什么是document对象? window对象代表浏览器中打开的一个窗口。 document对象代表整个html文档。实际上, document对象是window对象的一个属性
1 》vue-router有哪几种导航钩子? 第一种:是全局导航钩子:router.beforeEach(to,from,next) 第二种:&#160;组件内的钩子 beforeRouteEnter
1=&gt;为什么data是一个函数 【理解】 组件的data写成一个函数, 这样每复用一次组件,就会返回一分新的data。 也就说:给每个组件实例创建一个私有的数据空间。 各个组件维护各自的数据。
01 vue3的新特征 1.组合式API. setUp作为组合函数的入口函数 2.Teleport 传送门 3.片段 template下可以有多个标签 4.用于创建自定义渲染器。我的理解是 creat
// var&#160;arr=[1,2,23,23,4,5,5]; // var&#160;newarr=new&#160;Set(arr);&#160;//去重 // console.log([.
摆好姿势 摆好姿势 如何使下面的等式成立 if(a==1&amp;&amp;a==3&amp;a==5){ console.log(666) } var a=[1,3,5] a.join=a.shif
1=&gt;为什么data是一个函数 【理解】 ok 每复用一次组件,就会返回一分新的data。 也就说:【每个组件实例创建】一个【私有】的数据空间。各个组件维护各自的数据。 如果单纯的写成对象形式,
以下是收集一些面试中经常会遇到的经典面试题以及自己面试过程中无法解决的问题,通过对知识的整理以及经验的总结,重新巩固自身的前端基础知识,如有错误或更好的答案,欢迎指正。:) 在网页中,一个元素占有空间
1 Action是不是线程安全的?如果不是 有什么方式可以保证Action的线程安全?如果是,说明原因不是声明局部变量,或者扩展RequestProcessor,让每次都创建一个Action,或者在s
解决js兼容性问题使用 event对象 function eventHandler(event) { event = event || window.event} 获取滚动条属性 var scrollTop = document.documentElment.scrollTop || document.body.scrollTop
浏览器的内核 IE: trident内核,Firefox:gecko内核,Safari:webkit内核,Opera:以前是presto内核,Opera现已改用Google Chrome的Blink内核,Chrome:Blink(基于webkit,Google与Opera Software共同开发) HTML中的Doctype有什么作用 此标签可告知浏览器文档使用哪种HTML或XHTML规范。(重点:告诉浏览器按照何种规范解析页面) div+css的布局较table布局有什么...
如何创建函数第一种(函数声明): function sum1(num1,num2){ return num1+num2; } 第二种(函数表达式): var sum2 = function(num1,num2){ return num1+num2; } 第三种(函数对象方式): var sum3 = new Function("num1","num2","return num1+num2");三种弹窗的单词以及三种弹窗的功能1.alert //弹出对话框并输出一段提示信...
js的垃圾回收机制是什么原理垃圾回收机制有两种方法第一种是标记清除法:当变量进入执行环境时,就标记这个变量为”进入环境”,当变量离开环境的时候,则将其标记为”离开环境”,垃圾收集器在运行的时候会给储存在内存中的所有变量都加上标记,然后它会去掉环境中的标量以及被环境中的变量引用的标记,而在此之后再被加上标记的变量将被视为准备删除的变量,原因是环境中的变量已经无法访问到这些变量了,最后,垃圾收集器完成内存清除工作,销毁那些带标记的值,并回收他们所占用的内存空间 第二种是引用计数法:当声明了一个变量并将
Ajax 是什么? 如何创建一个Ajax?AJAX全称是Asychronous JavaScript And Xml(异步的 JavaScript 和 XML)它的作用是用来实现客户端与服务器端的异步通信效果,实现页面的局部刷新,早期的浏览器并不能原生支持ajax,可以使用隐藏帧(iframe)方式变相实现异步效果,后来的浏览器提供了对ajax的原生支持其主要通过XMLHttpRequest(标准浏览器)、ActiveXObject(IE浏览器)对象实现异步通信效果实现方式(gitee上的案例):
谈一谈let与var和const的区别let为ES6新添加申明变量的命令,它类似于var,但是有以下不同: let命令不存在变量提升,如果在let前使用,会导致报错let暂时性死区的本质,其实还是块级作用域必须“先声明后使用”的性质,let 暂时性死区的原因:var 会变量提升,let 不会。let,const和class声明的全局变量不是全局对象的属性const可以在多个模块间共享const声明的变量与let声明的变量类似,它们的不同之处在于,const声明的变量只可以在声明时赋值,不可
解释一下为何[ ] == ![ ] // ---&gt; true首先看一张图![ ] 是 false原式:[ ] == false根据第八条,false通过tonumber()转换为0原式:[ ] == 0根据第十条,[ ]通过ToPrimitive()转换为' '原式:' ' == 0根据第六条原式:0 == 0尝试实现new function ObjectClass() {//对象 console.log(arguments[...
谈谈对Node的理解Node.js 在浏览器外运行V8 JavaScript引擎,单线程 非阻塞I/O 事件驱动,适应于数据高并发,适合多请求,但不适合高运算,有权限读取操作系统级别的API,npm 仓库,常用框架:Express,koa,Socket.io,AdonisJs,NestJS什么是gulp?作用?机制是什么?gulp是基于node的自动化构建工具作用:1 自动压缩JS文件2 自动压缩CSS文件3 自动合并文件4 自动编译sass5 自动压缩图片6 自动刷
vue和react的区别React严格上只针对MVC的view层,Vue则是MVVM模式virtual(虚拟) DOM不一样,vue会跟踪每一个组件的依赖关系,不需要重新渲染整个组件树。而对于React而言,每当应用的状态被改变时,全部组件都会重新渲染,所以react中会需要shouldComponentUpdate这个生命周期函数方法来进行控制组件写法不一样,React推荐的做法是 JSX + inline style,也就是把HTML和CSS全都写进JavaScript了,即'all in
谈谈对react的理解react是基于v(视图层)层的一款框架,虚拟dom和diff算法react特点:声明式设计高效,其中高效以现在虚拟dom,最大限度减少与dom的交互和diff算法灵活,体现在可以与已知的框架或库很好的配合JSX,是js语法的扩展组件化,构建组件,是代码的更容易得到复用,比较建议在大型项目的开发单项数据,实现单项数流,从而减少代码复用react有哪几个生命周期自己的总结分为三个阶段,初始,运行中,销毁初始化: 执行getDefaultProps钩子