js面试小结

1、css3中transfrom和transition、animation的区别
transfrom描述元素静态样式,而transition和animation能够实现动画效果,所以一般transfrom配合后两者使用。
结论:
1. 如果要灵活定制多个帧以及循环,用animation.
2. 如果要简单的from to 效果,用 transition.
3. 如果要使用js灵活设定动画属性,用transition.

2、ajax工作原理
在用户和服务器之间建立中间层(ajax引擎),让用户操作和服务器响应异步化。

3、js闭包
使用闭包主要是为了设计私有的方法和变量。闭包的优点是可以避免全局变量的污染,缺点是闭包会常驻内存,会增大内存使用量,使用不当很容易造成内存泄露。在js中,函数即闭包,只有函数才会产生作用域的概念
闭包有三个特性:
    1.函数嵌套函数
    2.函数内部可以引用外部的参数和变量
    3.参数和变量不会被垃圾回收机制回收

4、怎么循环数组
for循环;我回答for 循环的时候,面试官说这个太早了,不知道他想听的是什么
for each;
jquery中的$.each

5、attr()和prop()的区别
都是获取/设置属性;
attr()获取/设置DOM元素的属性;
prop()获取j/设置js对象的属性;
举例: 
<input id="chk" type="checkbox" checked="checked" />
$("#chk").prop("checked") == true
$("#chk").attr("checked") == checked

6、什么是事件冒泡[b][/b]在一个对象上触发某个事件,如果此对象定义了此事件的处理程序,则此事件调用这个处理程序,如果没有定义处理程序或者事件返回为false,那么事件会向对象的父级对象传播,从里到外,直到被处理,或者它达到了对象层次的最顶层,即document对象(有的浏览器为window)。

7、事件冒泡作用
允许多个操作被集中处理
让不同对象同时捕捉同一事件

8、什么是阻止冒泡
阻止目标元素事件向父级元素冒泡
阻止冒泡------e.stopPropagation();e.cancelBubble = true(IE)
阻止默认行为--------e.preventDefault;e.returnValue = false(IE)
jquery中return false既阻止冒泡又阻止默认行为

时间: 2024-11-06 18:17:25

js面试小结的相关文章

Node.js 面试问题及答案(2017 版)

阅读原文 两年前,我们发布了我们的第一篇关于 Node.js 面试的文章 Node.js 面试常见问题和答案,近两年,JavaScript 和 Node.js 生态系统有了很多更新和发展,因此,是该更新这些面试问题和答案的时候了. 免责声明(重要) 仅仅通过面试问题去评价一个面试者,从来都不是一个好的选择.但是这些问题可以让你大体了解面试者在 Node.js 开发上的经验. 当然,这些问题并不能全面反映一个人的思维方式和开发习惯. 我相信,开发中遇到的问题,更能反映面试者的知识水平 - 所以,我

js加强小结

一)回顾JavaScript基础 (1)函数的定义方式 *>>正常方式 function add(num1,num2){...} >>构造器方式 var add = new Function("num1","num2","return num1+num2"); *>>匿名/无名方式 var add = function(num1,num2){函数体} (2)window对象是什么 在JS中,window表示整个

面试小结(java基础)

一个.java源文件中可以有多个类吗?(内部类除外)有什么条件?带着这个疑惑,动手建几个测试类, 揭开心中的疑惑.以下是解开疑惑过程: package test;/** * 一个.java源文件中可以有多个类吗?(内部类除外)有什么条件?  * 可以的    *但是只能有一个public类, 而且如果有public类的话,这个文件的名字要和这个类的名字一样. *如果都没有public类,名字可以不和这个类一样. */public class MultiClass { int i = 0;} cl

js面试中长见的算法题(转载)

js面试中长见的算法题 1.阐述下 JavaScript 中的变量提升 所谓提升,顾名思义即是 JavaScript 会将所有的声明提升到当前作用域的顶部.这也就意味着我们可以在某个变量声明前就使用该变量,不过虽然 JavaScript 会将声明提升到顶部,但是并不会执行真的初始化过程.2.阐述下 use strict; 的作用 use strict; 顾名思义也就是 JavaScript 会在所谓严格模式下执行,其一个主要的优势在于能够强制开发者避免使用未声明的变量.对于老版本的浏览器或者执行

js isArray小结

原文:[转载]js isArray小结 在日常开发中,我们经常需要判断某个对象是否是数组类型的,在js中检测对象类型的常见的方法有几种: 1.typeof操作符.对于Function.String.Number.Undefined这几种类型的对象来说,不会有什么问题,但是针对Array的对象就没什么用途了: Js代码  isArray小结" alt="收藏代码" src="http://www.iteye.com/images/icon_star.png"

js 事件小结

1,事件对象   e || window.event //ie   2, 取鼠标点击坐标 带有滚动条的   var top = document.documentElement.scrollTop || document.body.scrollTop;//chorme var x = top + e.clientX; //可视区坐标   3, 获取屏幕坐标 e.screenX e.screenY   4, shiftKey altKey ctrlkey   5,onkeydown/onkeyup

JS——函数小结(1)

函数的声明和冒充 要了解call和apply就要从JS的函数开始说明,函数的声明包括三种方式 <span style="font-size:18px;">一般的声明方法 function box(num1,num2){ return num1+num2; } alert(box(1,3));//4 //使用变量初始化函数 var box=function(num1,num2){ return num1+num2; }; alert(box(1,3));//4 //使用Fun

js 面试的坑:变量提升

全局中的解析和执行过程 预处理:创建一个词法环境(LexicalEnvironment,在后面简写为LE),扫描JS中的用声明的方式声明的函数,用var定义的变量并将它们加到预处理阶段的词法环境中去. 一.全局环境中如何理解预处理 比如说下面的这段代码: var a = 1;//用var定义的变量,以赋值 var b;//用var定义的变量,未赋值 c = 3;//未定义,直接赋值 function d(){//用声明的方式声明的函数 console.log('hello'); } var e

JS系列——Linq to js使用小结

前言:前面几篇介绍了下C#基础技术中的几个:反射.特性.泛型.序列化.扩展方法.Linq to Xml等,本来还有两三个知识点没有写完,比如委托.多线程.异步等,后面会陆续将它们补起来,以便作为一套完整的系列.之所以有这篇是因为目前BS项目中前端经常需要对Json的数组对象进行筛选.查找.判断是否存在等操作.这时就想到了好用的Linq.博主几年前用过Linq to js,那个时候还觉得那样写很别扭,于是没有重视.现在随着前段业务的越来越复杂,对前端的数据处理要求也越来越高,使用一种快捷的集合操作