1.javascript的typeof返回哪些数据类型
  Object number function boolean underfind

2.例举3种强制类型转换和2种隐式类型转换?
  强制(parseInt,parseFloat,number)
  隐式(== – ===)

3.split() join() 的区别
  前者是切割成数组的形式,后者是将数组转换成字符串

4.数组方法pop() push() unshift() shift()
  Push()尾部添加 pop()尾部删除
  Unshift()头部添加 shift()头部删除

5.事件绑定和普通事件有什么区别

  事件绑定就是针对dom元素的事件,绑定在dom元素上,普通事件即为非针对dom元素的事件、普通添加事件的方法不支持添加多个事件,最下面的事件会覆盖上面的,而事件绑定(addEventListener)方式添加事件可以添加多个。

  提示:addEventListener不兼容低版本IE,使用addEventListener添加事件之前,请先处理兼容问题。

普通添加事件的方法:

 var btn = document.getElementById("hello");
btn.onclick = function(){
alert(1);
}
btn.onclick = function(){
alert(2);
}

执行上面的代码只会alert 2

事件绑定方式添加事件:

 var btn = document.getElementById("hello");
btn.addEventListener("click",function(){
alert(1);
},false);
btn.addEventListener("click",function(){
alert(2);
},false);

执行上面的代码会先alert 1 再 alert 2

6.IE和DOM事件流的区别
  1.执行顺序不一样、
  2.参数不一样
  3.事件加不加on
  4.this指向问题

7.IE和标准下有哪些兼容性的写法
  Var ev = ev || window.event
  document.documentElement.clientWidth || document.body.clientWidth
  Var target = ev.srcElement||ev.target

8.ajax请求的时候get 和post方式的区别
  一个在url后面 一个放在虚拟载体里面
  有大小限制
  安全问题
  应用不同 一个是论坛等只需要请求的,一个是类似修改密码的

9.call和apply的区别
  Object.call(this,obj1,obj2,obj3)
  Object.apply(this,arguments)

10.ajax请求时,如何解释json数据
  使用eval parse 鉴于安全性考虑 使用parse更靠谱
  11.b继承a的方法

12.写一个获取非行间样式的函数

方法1:

function getStyle(obj, attr, value) {
if (!value) {
if (obj.currentStyle) {
return obj.currentStyle(attr)
}
else {
obj.getComputedStyle(attr, false)
}
}
else {
obj.style[attr] = value
}
}

方法2

function getStyle(obj, attr) {
return obj.currentStyle ? obj.currentStyle : getComputedStyle(obj)[attr];
}

13.事件委托是什么
  让利用事件冒泡的原理,让自己的所触发的事件,让他的父元素代替执行!
  
14.闭包是什么,有什么特性,对页面有什么影响
  闭包就是能够读取其他函数内部变量的函数。一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。闭包的特点:

  1. 作为一个函数变量的一个引用,当函数返回时,其处于激活状态。
  2. 一个闭包就是当一个函数返回时,一个没有释放资源的栈区。
  简单的说,Javascript允许使用内部函数---即函数定义和函数表达式位于另一个函数的函数体内。而且,这些内部函数可以访问它们所在的外部函数中声明的所有局部变量、参数和声明的其他内部函数。当其中一个这样的内部函数在包含它们的外部函数之外被调用时,就会形成闭包。
 (function(x, y){
alert(x + y);
})(2, 3);

15.如何阻止事件冒泡和默认事件
  canceBubble return false

16.添加 删除 替换 插入到某个接点的方法
  obj.appendChidl()
  obj.innersetBefore
  obj.replaceChild
  obj.removeChild

17.解释jsonp的原理,以及为什么不是真正的ajax
  动态创建script标签,回调函数
  Ajax是页面无刷新请求数据操作

18.javascript的本地对象,内置对象和宿主对象
  本地对象为array obj regexp等可以new实例化
  内置对象为gload Math 等不可以实例化的
  宿主为浏览器自带的document,window 等

19.document load 和document ready的区别
  Document.onload 是在结构和样式加载完才执行js
  Document.ready原生种没有这个方法,jquery中有 $().ready(function)

20.”==”和“===”的不同

  ”==”与”===”是不同的,一个是判断值是否相等,一个是判断值及类型是否完全相等。前者会自动转换类型,后者不会。

  先说 ===,这个比较简单。下面的规则用来判断两个值是否===相等: 
    1、如果类型不同,就[不相等] 
    2、如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一个是NaN,那么[不相等]。(判断一个值是否是NaN,只能用isNaN()来判断) 
    3、如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。 
    4、如果两个值都是true,或者都是false,那么[相等]。 
    5、如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。 
    6、如果两个值都是null,或者都是undefined,那么[相等]。 
  再说 ==,根据以下规则: 
    1、如果两个值类型相同,进行 === 比较。 
    2、如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较: 
    a、如果一个是null、一个是undefined,那么[相等]。 
    b、如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。 
    c、如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。 
    d、如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,利用它的toString或者valueOf方法。js核心内置类,会尝试valueOf先于toString;例外的是Date,Date利用的是toString转换。
    e、任何其他组合,都[不相等]。

  举例: 
    "1" == true 
    类型不等,true会先转换成数值 1,现在变成 "1" == 1,再把"1"转换成 1,比较 1 == 1, 相等。

  = 赋值运算符 
  == 等于 
  === 严格等于 
  例: 
    var a = 3; 
    var b = "3"; 
    a==b 返回 true 
    a===b 返回 false 
    因为a,b的类型不一样 
    ===用来进行严格的比较判断

简而言之就是“==”只要求值相等。“===”要求值和类型都相等。


21.javascript的同源策略
  一段脚本只能读取来自于同一来源的窗口和文档的属性,这里的同一来源指的是主机名、协议和端口号的组合

22.编写一个数组去重的方法

        window.onload = function () {
var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
for (var i = 0; i < arr.length; i++) {
for (var j = i+1; j < arr.length; j++) {
if (arr[i] == arr[j]) {
arr.splice(j, 1);
j--;
}
}
}
alert(arr);
}

23.编写一个数组从大到小的排序方法

 //数组排序,从大到小,方法1:
var arrSimple=new Array(1,8,7,6);
arrSimple.sort();
document.write(arrSimple.join()); //数组排序,从大到小,方法2:
var arrSimple2=new Array(1,8,7,6);
arrSimple2.sort(function(a,b){
return b-a;
});
document.write(arrSimple2.join()); //解释:a,b表示数组中的任意两个元素,若return > 0 b前a后;reutrn < 0 a前b后;a=b时存在浏览器兼容简化一下:a-b输出从小到大排序,b-a输出从大到小排序。

24.如何交换两个数的位置

var a=10;
var b=20;
a= a+b;//
b= a-b;//
a= a-b;//
alert('a:'+a + 'b:'+b);

JavaScript经典面试题系列的更多相关文章

  1. JavaScript经典面试题(二)

    前言: 近年来T行业就业者越来越多,有关于编程行业的高薪工作也变得越来越难找,竞争力越来越大,想要在众多的应聘者当中脱颖而出,面试题和笔试题一定要多加研究和琢磨,以下记录的是自己的面试过程之中遇到的一 ...

  2. 20道JavaScript经典面试题

    该篇文章整理了一些前端经典面试题,附带详解,涉及到JavaScript多方面知识点,满满都是干货-建议收藏阅读 前言 如果这篇文章有帮助到你,️关注+点赞️鼓励一下作者,文章公众号首发,关注 前端南玖 ...

  3. javascript经典面试题之for循环click

    经典重现 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf- ...

  4. 前端必会的Javascript经典面试题

    这是前端最基础的问题,也是在面试中难倒无数同学的经典问题 01. Javascript 数据类型 Javascript 数据类型 = 基本类型 + 引用类型 ES6 之前 5 + 1 = 6 种 ES ...

  5. 前端javaScript经典面试题

    1.alert(1&&2),alert(1||0) alert(1&&2)的结果是2 只要“&&”前面是false,无论“&&”后面是t ...

  6. JavaScript经典作用域问题(转载)

    题目 var a = 10; function test(){ a = 100; console.log(a); console.log(this.a); var a; console.log(a); ...

  7. JavaScript之经典面试题

    1.作用域经典面试题 var num = 123; // f1函数写好了,作用域就定下来了,也就是作用域链定下来了 // f1函数作用域链: f1函数作用域 ==> 全局作用域 function ...

  8. net必问的面试题系列之基本概念和语法

    上个月离职了,这几天整理了一些常见的面试题,整理成一个系列给大家分享一下,机会是给有准备的人,面试造火箭,工作拧螺丝,不慌,共勉. 1.net必问的面试题系列之基本概念和语法 2.net必问的面试题系 ...

  9. .NET面试题系列[8] - 泛型

    “可变性是以一种类型安全的方式,将一个对象作为另一个对象来使用.“ - Jon Skeet .NET面试题系列目录 .NET面试题系列[1] - .NET框架基础知识(1) .NET面试题系列[2] ...

随机推荐

  1. php排序之冒泡排序

    冒泡排序比较简单.作为很多公司面试笔试题常常出现,要求手写该排序算法.双层循环,不断的与后面的比较,如果大于后面的,调换两者顺序即可. 演示效果如图: 代码如下: <?php function ...

  2. android 数据库的升级与降级解决方案

    在我们写的程序中不避免的需要升级.或者说需要改变业务逻辑,那这个时候就需要修改数据库的字段,来适应不同的表结构 我们一般写数据库都是操作一个继承至 SQLiteOpenHelper 的类 然后我们需要 ...

  3. VS中调用SQL SERVER存储过程

     存储过程是经过编译的,永久保存在数据中的一组SQL语句,通过创建和使用存储过程能够提高程序的重用性和扩展性,为程序提供模块化的功能,还有利于对程序的维护和管理.以下就详谈一下,VB.NET怎样调 ...

  4. linux 系统磁盘分区之fdisk

    对于学习磁盘分区,通常学习的都是fdisk命令 当然,对于小于2TB的磁盘,我们基本上是使用fdisk命令进行分区 下面就简单介绍一下fdisk操作磁盘的基本命令和场景模拟 常用命令介绍   fdis ...

  5. Memcached启动、关闭参数(摘录)

    启动参数注释如下: -p <num>  指定服务TCP端口,默认为11211 -U <num>   指定服务UDP端口  默认11211表示打开,设置0表示关闭 -s < ...

  6. setValue 和 setObject 的区别

    在使用NSMutableDictionary 的时候经常会使用setValue forKey 与 setObject forKey,他们经常是可以交互使用的. 1.setValue forKey的定义 ...

  7. Java并发——线程安全、线程同步、线程通信

    线程安全 进程间"共享"对象 多个“写”线程同时访问对象. 例:Timer实例的num成员,即add()方法是用的次数.即Timer实例是资源对象. class TestSync ...

  8. ffmpeg之移植到ARM

    移植方法分为两种:第一种手工移植,第二种buildroot移植. 第一种手工移植: 优点:灵活性高 缺点:重复工作多 一.配置 ./configure --enable-memalign-hack - ...

  9. 不同浏览器应用scrollTop属性

    window.onscroll = _onScroll;function _onScroll(){ var aside = document.getElementsByClassName('aside ...

  10. [转]jQuery选择器总结

    该文章转载自:http://www.cnblogs.com/onlys/articles/jQuery.html jQuery的选择器那绝对最强大的,各种你想不到,原先想总结一下,没想到搜索到这个比我 ...