web前端面试题

来源:互联网 发布:最全金融网络理财产品 编辑:程序博客网 时间:2024/06/15 03:10

 

 ***类数组对象 vs []:

      相同: 1. 都可用[i]访问每个元素

            2. 都有length属性记录元素个数

            3. 都可用for循环遍历,尽量不要用for in遍历

 

      不同点: 1. 类型不同:

                [] Array类型

                类数组对象 Object类型

           2. 类数组对象无法使用数组API

*****闭包:保护一个可重用的局部变量的词法结构

      为什么: 全局变量:可重用,但易被污染

              局部变量: 不可重用,

      何时使用: 即可重用,又不会被污染

      如何创建闭包:

     1. 外层函数封装受保护的变量以及专门操作变量的内层函数

     2. 外层函数将操作变量的内层函数返回到外部

     3. 调用外层函数,获得内层函数的对象。

 

    鄙视时:

    1. 找受保护的变量

    2. 同一次外层函数调用返回的内层函数,始终使用同一个受保护的局部变量

    3. 每调用一次外层函数,就会多创建一个受保护的变量的副本。

    

数据属性的特性: 4大特性:

       value: 实际存储属性值的特性

       writable: 是否可写

       enumerable: 可遍历的,控制能否用for in遍历到

       configurable: 能否修改其他特性,或能否被delete

 

   如何访问属性的特性:

       var descriptor=

Object.getOwnPropertyDescriptor(obj,"属性");

   如何修改指定属性的特性:

    1. 一次只能修改一个属性的四大特性。

       Object.defineProperty(obj,"属性名",{

 特性名:,

         ...:...

       })

       强调: 如果obj中不包含指定的"属性名",会自动添加同名属性定义。

       四大特性的默认值:

      1. 使用传统方式添加的属性,四大特性默认值为true

      2. 如果用defineProperty添加的属性,其四大特性默认是false

       强调: configurable特性一旦改为false,则属性禁止被删除,属性的其他特性禁止被修改——浏览支持可能不一致

 

    访问器属性: 4大特性:

      get:function(){ return xxxx; }

      set:function(value){ xxx=value;}

      enumerable:

      configurable:

    强调: 没有value,不直接保存数据!

    何时使用: 需要对私有属性提供复杂逻辑的验证和保护时

 ***如何使用:一般用在构造函数中,配合私有属性使用

     公有属性: 对象外部可用.访问到的属性——public

      普通的属性都是公有的。

     私有属性: 对象外部无法通过.访问到的属性——private

              构造函数中的局部变量。

         何时定义: 一个属性不希望随便使用.访问时,都要定义为私有属性(局部变量),但必须被闭包保护才能留下在。

鄙视题: 定义一个Emp类型,包含私有属性id和公有属性name:

      function Emp(id,ename,age){

var _id=id;//私有属性_id

this.ename=ename;//公有属性ename

//定义专门保护私有属性的访问器属性

Object.defineProperty(this,"id",{

    get:function(){return _id;},

    //如果只读可省略set

    set:function(value){_id=value;},

    enumerable:true,

    configurable:true

});

      }

 

 

 

 

 

 

DOM

鄙视题: HTML XHTML DHTML XML

     HTML: Hyper Text Markup language

           专门编写网页内容的语言

     XHTML: 严格的HTML语言标准

     DHTML: 所有动态网页技术统称

     XML: eXtensible Markup language

        专门存储结构化数据时

        用途: 1. 存储   2. 在互联网中传输

      vs HTML 都是标记语言:语法完全相同!

         不同: XML完全自定义标签和属性名

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

鄙视题:

    1. 统计字符串中每个字符出现的次数

      : 找出字符串中出现次数最多的字符,共出现?

    2. 去掉数组中重复的元素

      (^|,)([^,]+)(,,\2+)(,|$)

 

//2. 去掉数组中重复的元素,仅保留有多个相同元素的元素

 

如何错误处理:

      try{

         可能出错的代码

      }catch(err){

         处理错误的代码

      }finally{

         无论是否出错,都要执行的代码

      }

 

原创粉丝点击