前端开发面试js基础题

前端开发用模板引擎
前端开发文档模板
前端开发模板
  1. 介绍js的基本数据类型? 介绍js有哪些内置对象?
  2. 说几条写js的基本规范?
  3. js原型、原型链?有什么特点?
  4. js如何实现继承?
  5. js继承的几种实现方式?
  6. js创建对象的几种方式?
  7. new操作符具体做了什么?
  8. 谈谈对this对象的理解 ?

9 .document.load和$(document).ready() 的区别?

  1. 什么是闭包,为什么要用它?谈到闭包,就会涉及到作用域及作用域链?
    详见张洋——http://www.cnblogs.com/leoo2sk/archive/2010/12/19/ecmascript-scope.html
  2. Ajax是什么?如何创建一个Ajax?
  3. Ajax过程?ajax和jsonp的区别?
  4. json的作用、用途及设计结构?
  5. get和post的区别?何时使用post?
  6. js函数调用的方式?
  7. call()和apply() 的区别和作用?
  8. null和undefined的区别?

18.数组方法pop() push() unshift() shift()?

19.split() join()的区别?

20.编写数组去重的方法?

答案:1.js基本数据类型:Number、String、Boolean、null、Undefind。
Object是js中所有对象的父对象,数据封装类对象:Object、Array、Boolean、Number和String , 其他对象:function、Argument、Math、Date、Error、RegExp。
2.基本规范:1、不要在同一行声明多个变量 2、不要使用!==和===来比较ture/false或数值3、不要使用全局函数 4、函数不应该有时候有返回值,有时候没有
5、if语句、for循环必须使用大括号 6、for-in循环的变量,应该使用var关键字明确限定作用域,避免作用域污染
3.每一个js对象都有一个原型对象,这个对象在不同的解释器下的实现不同,比如在firefox下,每个对象都有一个隐藏的_proto_属性,这个属性就是“原型对象”的引用。
原型链:当我们访问一个对象的属性时,如果这个对象内部不存在这个属性,那么他就会去prototype里找,这个prototype有会有自己的prototype,于是一直找下去,这就是原型链。
特点:js对象是通过引用来传递的,我们创建的每个新对象实体中并没有一份属于自己的原型副本,当我们修改原型时,与之相关的对象也会继承这一变化。

  1. 构造继承、原型继承、实例继承、拷贝继承。原型prototype机制或apply和call方法去实现较简单,构造函数与原型结合。
    5.构造函数的继承,非构造函数的继承。
    6.Js创建对象简单的来说,无非就是使用内置对象或各种自定义对象,还有json。
    1.对象字面量的方式 2.用function来模拟无参的构造函数 3.用function来模拟有参构造函数来实现(用this关键字定义构造的上下文属性)
    4.用工厂方式来创建(内置对象)5.用原型方式来创建 6.用混合方式来创建
  2. 1)创建一个空对象,并且this变量引用该对象,同时还继承该函数的原型。
    2)属性和方法被加入到this引用的对象中。
    3)新创建的对象由this所引用,并且最后隐式的返回this。
    8.1).this总是指向函数的直接调用者(而非间接调用者)。 2).如果有new关键字,this指向new出来的那个对象。
    3).在事件中,this指向触发这个事件的对象,特殊的是,IE的attachEvent的this是指向全局对象window。
    9.1)document.onload在结构和样式加载完才执行js 。 $(document).ready()在Dom结构绘制完毕后执行,不必等加载完毕。
    2)document.onload不能同时编写多个,如果有 document.onload方法,只会执行一个。$(document).ready()可以同时编写多个,并且都可以得到执行
    10.详见张洋——http://www.cnblogs.com/leoo2sk/archive/2010/12/19/ecmascript-scope.html
    11.ajax即异步传输+js+html。所谓异步,在这里简单地说,向服务器发送请求的时候,我们不必等待结果,而是可以同时做其它的事情,等有结果自己会根据设定进行后续操作,
    与此同时,页面是不会发生整页刷新,提高用户体验。

    1. 1)创建XMLHttpRequest对象,也就是创建一个异步调用对象。
      2)创建一个新的HTTP请求的方法、url及验证信息。
      3)设置响应HTTP请求状态变化的函数
      4)发送HTTP请求
      5)获取异步地调用返回的数据
      6)使用js和Dom实现局部刷新
      aiax和jsonp区别:相同点:都是请求同一个url。不同点:ajax的核心是通过XMLHttpRequest获取内容,jsonp则动态添加<script>调用服务器js脚本。
    2. json是一种轻量级的数据交换格式,它是基于js的一个子集,且数据格式简单,易于读写,占用带宽小。格式:采用键/值对,例如:{“age”:”12,”name”:”wq”}
      14.Get:一般用于信息获取,使用url传递参数,对所发送信息的数量也有限制,2000个字符。
      Post:一般用于修改服务器上的资源,对所发送的信息没有限制。
      Get方式需要使用Request.QueryString来取得变量的值,Post方式通过Request.Form来获取变量的值,也就是说Get通过地址栏来传值,而Post方式通过提交表单来传值。
      而在一下情况下,请使用Post请求:
      1)无法使用缓存文件(更新服务器上的文件或数据库)
      2)向服务器发送大量数据(Post没有数据量限制)
      3)发送包含未知字符的用户输入时,Post比Get更稳定也更可靠。

      1. 一:方法调用模式 二:函数调用方式 三:构造器调用模式
        16.apply()函数有两个参数:第一个参数是上下文,第二个参数是参数组成的数组。如果上下文是null,则使用全局对象代替
        call()的第一个参数是上下文,后续是实例传入的参数序列。
        17.null是一个表示“无”的对象,转为数值时为0;undefined表示“无”的原始值,转为数值为NaN。
        18.push()尾部添加 pop()尾部删除 unshift()头部添加 shift()头部删除
        19.前者是切割数组的形式,后者是将数组转换为字符串。
      2. 思路:1.创建一个新的数组存放结果 2.创建一个空对象
        3.for循环时,每次取出一个元素与对象进行对比,如果这个元素不重复,则把它放到结果数组里,
        同时把这个元素的内容作为对象的属性,并赋值为1,存入到第二步建立的对象中
        说明:至于如何对比,就是每次从原数组中取出一个元素,然后到对象中访问这个属性,如果能访问到,则说明重复
        Array.prototype.unique= function () {
        var result ={};
        var newArr=[];
        for( i = 0 ;i <this.length ;i++){
        if(!result[arr]){
        newArr.push(arr);
        result[arr] = 1;
        }
        }
        return result
        };
        var arr=[112,112,34,’你好’,112,112,34,’你好’,’str’,’str1′];
        alert(arr.unique());
前端开发2个月总结汇报ppt模板
前端开发css文件模板
前端开发模板‘’
» 本文来自:前端开发者 » 《前端开发面试js基础题》
» 本文链接地址:https://www.rokub.com/6136.html
» 您也可以订阅本站:https://www.rokub.com
赞(0)
64K

评论 抢沙发

评论前必须登录!