javascript测试题
一 :
创新互联建站是一家专业提供辽源企业网站建设,专注与成都做网站、网站制作、成都外贸网站建设、H5网站设计、小程序制作等业务。10年已为辽源众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
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.把出这个题的人毙了!
JavaScript 练习题求解答
1.
for(var i=1000;i=9999;i++){
if(i%13==0){
var n2 = Math.floor(i/10)%10;
var n3 = Math.floor(i/100)%10;
var n4 = Math.floor(i/1000);
if(n2+n3==n4)
console.log("满足条件的数为:"+i);
}
}
2.
var sum = 0, start = 1, end=0, n=1;
while(start 500) {
for(n = start; sum 1000; n++) {
sum += n;
if(sum == 1000) {
end=n;
console.log("连续相加为1000的连续正整数为:"+start+"到"+end);
}
}
start++;
sum = 0;
}
js基础面试题131-160道题目
131.用原生 JavaScript 的实现过什么功能吗?
参考答案:轮播图、手风琴、放大镜、3D动画效果等,切记,所答的一定要知道实现原理!,不知道还不如不说!
参与互动
132.javascript 代码中的"use strict"; 是什么意思 ? 使用它区别是什么?
参考答案:意思是使用严格模式,使用严格模式,一些不规范的语法将不再支持
参与互动
133.简述创建函数的几种方式
参考答案:
参与互动
134.window.location.search() 返回的是什么?
参考答案:查询(参数)部分。除了给动态语言赋值以外,我们同样可以给静态页面, 并使用 javascript 来获得相信应的参数值 返回值:?ver=1.0id=timlq 也就是问号后面的!
参与互动
135.window.location.hash 返回的是什么?
参考答案:锚点 , 返回值:#love ;
参与互动
136.window.location.reload() 作用?
参考答案:刷新当前页面
参与互动
137.为什么不能定义 1px 左右的 p 容器?
参考答案: IE6 下这个问题是因为默认的行高造成的,解决的方法也有很多,例如: overflow:hidden | zoom:0.08 | line-height:1px
参与互动
138.BOM 对象有哪些,列举 window 对象?
参考答案:
参与互动
139.简述 readonly 与 disabled 的区别
参考答案:
参与互动
140.为什么扩展 javascript 内置对象不是好的做法?
参考答案:
参与互动
141.什么是三元表达式?“三元”表示什么意思?
参考答案:三元如名字表示的三元运算符需要三个操作数。
语法是 条件 ? 结果1 : 结果2; .这里你把条件写在问号(?)的前面后面跟着用冒号(:)分隔的结果1和结果2。满足条件时结果1否则结果2。
参与互动
142.我们给一个 dom 同时绑定两个点击事件,一个用捕获,一个用冒泡,你来说下会执行几次事件,然后会先执行冒泡还是捕获
参考答案:所有事件的顺序是:其他元素捕获阶段事件 - 本元素代码顺序事件 - 其他元素冒泡阶段事件 。
参考
参与互动
144.简述一下 Handlebars 的基本用法?
参考答案:没有用过的话说出它是干什么的即可
参与互动
143.简述一下 Handlerbars 的对模板的基本处理流程, 如何编译的?如何缓存的?
参考答案:
参与互动
145.前端 templating(Mustache, underscore, handlebars)是干嘛的, 怎么用?
参考答案:
参与互动
146.知道什么是 webkit 么? 知道怎么用浏览器的各种工具来调试和 debug 代码么?
参考答案:Webkit 是浏览器引擎,包括 html 渲染和 js 解析功能,手机浏览器的主流内核,与之相对应的引擎有 Gecko(Mozilla Firefox 等使用)和 Trident(也称 MSHTML,IE 使用)。 对于浏览器的调试工具要熟练使用,主要是页面结构分析,后台请求信息查看,js 调试工具使用,熟练使用这些工具可以快速提高解决问题的效率
参与互动
147.如何测试前端代码? 知道 BDD, TDD, Unit Test 么? 知道怎么测试你的前端工程么(mocha, sinon, jasmin, qUnit..)?
参考答案:了解 BDD 行为驱动开发与 TDD 测试驱动开发已经单元测试相关概念
参与互动
148.JavaScript 的循环语句有哪些?
参考答案:while for do while forEach
参与互动
149.作用域-编译期执行期以及全局局部作用域问题
参考答案:js 执行主要的两个阶段:预解析和执行期
参与互动
150.如何添加 html 元素的事件,有几种方法?请列举
参考答案:直接在标签里添加;在元素上添加、使用事件注册函数添加
参与互动
151.列举浏览器对象模型 BOM 里常用的至少 4 个对象,并列举 window 对象的常用方法至少 5 个
参考答案:
对象:Window document location screen history navigator
方法:Alert() confirm() prompt() open() close()
参与互动
152.事件绑定的方式
参考答案:
参与互动
153.事件循环
参考答案:事件循环是一个单线程循环,用于监视调用堆栈并检查是否有工作即将在任务队列中完成。如果调用堆栈为空并且任务队列中有回调函数,则将回调函数出队并推送到调用堆栈中执行。
参与互动
154.事件模型
参考答案:
解析:参考
参与互动
155.如何自定义事件
参考答案:
1.原生提供了 3 个方法实现自定义事件 2.createEvent,设置事件类型,是 html 事件还是 鼠标事件 3.initEvent 初始化事件,事件名称,是否允许冒泡,是否阻止自定义事件 4.dispatchEvent 触发事件
MDN
参与互动
156.target 和 currentTarget 区别
参考答案:
参与互动
157.prototype 和__proto__的关系是什么
参考答案:
所有的对象都拥有__proto__属性,它指向对象构造函数的 prototype 属性
所有的函数都同时拥有__proto__和 protytpe 属性 函数的__proto__指向自己的函数实现 函数的 protytpe 是一个对象 所以函数的 prototype 也有__proto__属性 指向 Object.prototype
Object.prototype.__proto__指向 null
参与互动
158.什么是原型属性?
参考答案:从构造函数的prototype属性出发找到原型,这时候就把原型称之为构造函数的原型属性
参与互动
159.什么是原型对象?
参考答案:从实例的__proto__出发,找到原型,这时候就把原型称之为实例的原型对象。
参与互动
160.使用 let、var 和 const 创建变量有什么区别
参考答案:
let 和 const 的区别在于:let 允许多次赋值,而 const 只允许一次。
js基础面试题71-80道题目
71.IE 和标准下有哪些兼容性的写法
参考答案:
参与互动
72.变量提升
参考答案:
A、js 代码执行的过程
B、变量提升发生的环境:发生在代码所处的当前作用域。
解析:
对应面试题
参与互动
73.如何阻止冒泡与默认行为
参考答案:
解析:
当需要阻止冒泡行为时,可以使用
当需要阻止默认行为时,可以使用
参与互动
74.js 中 this 闭包 作用域
参考答案:
this:指向调用上下文
闭包:定义一个函数就开辟了一个局部作用域,整个 js 执行环境有一个全局作用域
作用域:一个函数可以访问其他函数中的变量(闭包是一个受保护的变量空间)
参与互动
75.javascript 的本地对象,内置对象和宿主对象
参考答案:
1.本地对象
ECMA-262 把本地对象(native object)定义为“独立于宿主环境的 ECMAScript 实现提供的对象"。简单来说,本地对象就是 ECMA-262 定义的类(引用类型)。它们包括:Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError
2.内置对象
JS中内置了17个对象,常用的是Array对象、Date对象、正则表达式对象、string对象、Global对象
3.宿主对象
由ECMAScript实现的宿主环境提供的对象,可以理解为:浏览器提供的对象。所有的BOM和DOM都是宿主对象。
参与互动
76.javascript 的同源策略
参考答案:一段脚本只能读取来自于同一来源的窗口和文档的属性
解析:
同源策略:限制从一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的关键的安全机制。(来自 MDN 官方的解释)
简单来说就是:一段脚本只能读取来自于同一来源的窗口和文档的属性,这里的同一来源指的是主机名、协议和端口号的组合 具体解释:
(1)源包括三个部分:协议、域名、端口(http 协议的默认端口是 80)。如果有任何一个部分不同,则源不同,那就是跨域了。
(2)限制:这个源的文档没有权利去操作另一个源的文档。这个限制体现在:(要记住)
Cookie、LocalStorage 和 IndexDB 无法获取。
无法获取和操作 DOM。
不能发送 Ajax 请求。我们要注意,Ajax 只适合同源的通信。
同源策略带来的麻烦:ajax 在不同域名下的请求无法实现,需要进行跨域操作
参与互动
77.事件冒泡与事件捕获
参考答案:
事件冒泡:由最具体的元素(目标元素)向外传播到最不具体的元素
事件捕获:由最不确定的元素到目标元素
参与互动
78.foo = foo||bar ,这行代码是什么意思?为什么要这样写?
参考答案:
这种写法称为短路表达式
解析:
相当于
常用于函数参数的空判断
参与互动
79.复杂数据类型如何转变为字符串
参考答案:
参与互动
80.javascript 中 this 的指向问题
参考答案:
解析:
全局环境下,this 始终指向全局对象(window),无论是否严格模式;
2.1 普通函数
普通函数内部的 this 分两种情况,严格模式和非严格模式。
(1)非严格模式下,没有被上一级的对象所调用, this 默认指向全局对象 window。
(2)严格模式下,this 指向 undefined。
2.2 函数作为对象的方法
(1)函数有被上一级的对象所调用,那么 this 指向的就是上一级的对象。
(2)多层嵌套的对象,内部方法的 this 指向离被调用函数最近的对象(window 也是对象,其内部对象调用方法的 this 指向内部对象, 而非 window)。
特殊例子
2.3 原型链中的 this
(1)如果该方法存在于一个对象的原型链上,那么 this 指向的是调用这个方法的对象,就像该方法在对象上一样。
上述例子中,对象 p 没有属于它自己的 f 属性,它的 f 属性继承自它的原型。当执行 p.f()时,会查找 p 的原型链,找到 f 函数并执行。因为 f 是作为 p 的方法调用的,所以函数中的 this 指向 p。
(2)相同的概念也适用于当函数在一个 getter 或者 setter 中被调用。用作 getter 或 setter 的函数都会把 this 绑定到设置或获取属性的对象。
(3)call()和 apply()方法:当函数通过 Function 对象的原型中继承的方法 call() 和 apply() 方法调用时, 其函数内部的 this 值可绑定到 call() apply() 方法指定的第一个对象上, 如果第一个参数不是对象,JavaScript 内部会尝试将其转换成对象然后指向它。
(4)bind()方法:由 ES5 引入, 在 Function 的原型链上, Function.prototype.bind。通过 bind 方法绑定后, 函数将被永远绑定在其第一个参数对象上, 而无论其在什么情况下被调用。
2.4 构造函数中的 this
当一个函数用作构造函数时(使用 new 关键字),它的 this 被绑定到正在构造的新对象。
构造器返回的默认值是 this 所指的那个对象,也可以手动返回其他的对象。
特殊例子
当 this 碰到 return 时
2.5 setTimeout setInterval
(1)对于延时函数内部的回调函数的 this 指向全局对象 window;
(2)可以通过 bind()方法改变内部函数 this 指向。
3.1 作为一个 DOM 事件处理函数
当函数被用作事件处理函数时,它的 this 指向触发事件的元素(针对 addEventListener 事件)。
3.2 作为一个内联事件处理函数
(1)当代码被内联处理函数调用时,它的 this 指向监听器所在的 DOM 元素;
(2)当代码被包括在函数内部执行时,其 this 指向等同于 普通函数直接调用的情况,即在非严格模式指向全局对象 window,在严格模式指向 undefined:
4.1 全局环境中
在全局代码中,箭头函数被设置为全局对象:
4.2 this 捕获上下文
箭头函数没有自己的 this,而是使用箭头函数所在的作用域的 this,即指向箭头函数定义时(而不是运行时)所在的作用域。
4.2 this 捕获上下文
箭头函数没有自己的 this,而是使用箭头函数所在的作用域的 this,即指向箭头函数定义时(而不是运行时)所在的作用域。
在 setTimeout 中的 this 指向了构造函数新生成的对象,而普通函数指向了全局 window 对象。
4.3 箭头函数作为对象的方法使用
箭头函数作为对象的方法使用,指向全局 window 对象;而普通函数作为对象的方法使用,则指向调用的对象。
4.4 箭头函数中,call()、apply()、bind()方法无效
4.5 this 指向固定化
箭头函数可以让 this 指向固定化,这种特性很有利于封装回调函数
上面代码的 init 方法中,使用了箭头函数,这导致这个箭头函数里面的 this,总是指向 handler 对象。如果不使用箭头函数则指向全局 document 对象。
4.6 箭头函是不适用场景
(1)箭头函数不适合定义对象的方法(方法内有 this),因为此时指向 window;
(2)需要动态 this 的时候,也不应使用箭头函数。
参与互动
分享文章:javascript题,javascript判断题及答案
网站网址:http://lswzjz.com/article/dsccdds.html