隨筆-8  評論-8  文章-10  trackbacks-0
          javascript題
          1.使用javascript創建一個矩形類
          類中的屬性:
          名稱 name
          顏色 color
          寬度 width
          高度 height
          提供完整的構造方法
          提供一個計算面積的方法 getArea()
          答案:
          function Rectangle(name,color,width,height){
                  
          this.name = name;
                  
          this.color = color;
                  
          this.width = width;
                  
          this.height = height;
               
          this.getArea = function(){
                      
          return this.width*this.height;
                  }

              }

          //測試代碼
          var t = new Rectangle('test','red',5,5);
          alert(t.getArea());

          注:矩形  rectangle
              三角形 triangle

          2.解釋with關鍵字的用法

          with 語句 為一個或一組語句指定默認對象。

          用法:with (<對象>) <語句>;

          with 語句通常用來縮短特定情形下必須寫的代碼量。在下面的例子中,請注意 Math 的重復使用:

              x = Math.cos(3 * Math.PI) + Math.sin(Math.LN10);
              y = Math.tan(14 * Math.E);

          當使用 with 語句時,代碼變得更短且更易讀:

              with (Math) {
                x = cos(3 * PI) + sin(LN10);
                y = tan(14 * E);
              }
          注:with語句是運行緩慢的代碼段,尤其是在已設置了屬性值時。大多數情況下如果可能,最好避免使用它。


          3.使用javascript DOM模型 創建table  2行2列
          a.寫出新增和刪除行方法
          b.寫出修改列內容的方法
          c.對表格進行排序

          答案:

          var mytab = null;
           
          function createTab(){
                  mytab 
          = document.createElement("table");
                  mytab.border 
          = "1px";
                  document.body.appendChild(mytab);
                  
          var mytr = mytab.insertRow();
                  
          var mytd = mytr.insertCell();
                  mytd.innerText
          ="c";
                  mytd 
          = mytr.insertCell();
                  mytd.innerText
          ="b";

                  mytr 
          = mytab.insertRow();
                  mytd 
          = mytr.insertCell();
                  mytd.innerText
          ="a";
                  mytd 
          = mytr.insertCell();
                  mytd.innerText
          ="d";
                  
                  
          //insertTR(1);
                  //deleteTR(1);
                  //updateCell(1,1,"xx");
                  //排序0列
                  //sortTable(0);
              }

              
          //新增行方法
           function insertTR(rowIdx){
                  window.mytab.insertRow(rowIdx);
              }

              
          //刪除行方法
           
          function deleteTR(rowIdx){
                  window.mytab.deleteRow(rowIdx);
              }

              
          //更新列內容
           function updateCell(rowIdx,colIdx,content){
                  window.mytab.rows[rowIdx].cells[colIdx].innerText 
          = content;
              }

              
          //表格排序
           function sortTable(colIdx){
                  
          var colDataRows = mytab.rows;
                  
          var allTrs = new Array;

                  
          for(var i=0; i<colDataRows.length; i++){
                      allTrs.push(colDataRows[i]);
                  }


                  allTrs.sort(genrateCompare(colIdx));
                  
                  
          var o = document.createDocumentFragment();
                  
          for ( var i=0; i<allTrs.length; i++){
                      o.appendChild(allTrs[i]);
                  }

                  mytab.tBodies[
          0].appendChild(o);
              }


              
          function genrateCompare(colIdx){
                  
          return function compareTRs(tr1,tr2){
                      
          var value1 = tr1.cells[colIdx].innerText;
                      
          var value2 = tr2.cells[colIdx].innerText;
                      
          return value1.localeCompare(value2);
                  }
          ;
              }








          數據庫題:
          1.在Person表有以下字段
          id
          name    人員姓名
          deptno    部門號
          pdate    入職時間

          每新來一個員工就新增一條數據
          當員工換部門的時候也新增一條數據
          要求:
          a。查出'2008-08-01'這天入職的人
          b.查出'abc'部門現有的員工資料
          sql腳本:
          mysql

          create table Person(
              id 
          int primary key,
              name 
          varchar(32),
              deptNo 
          varchar(32),
              pdate date
          );

          insert into person (id,name,deptNo,pdate) values(1,'illu','abc','2008-08-01');
          insert into person (id,name,deptNo,pdate) values(2,'satan','ab','2008-08-01');
          insert into person (id,name,deptNo,pdate) values(3,'bob','abc','2008-08-01');
          insert into person (id,name,deptNo,pdate) values(4,'illu','ab','2008-08-03');
          insert into person (id,name,deptNo,pdate) values(5,'satan','abc','2008-08-03');

          oracle
          create table Person(
              id 
          int primary key,
              name 
          varchar(32),
              deptNo 
          varchar(32),
              pdate date
          );

          insert into person (id,name,deptNo,pdate) values(1,'illu','abc',to_date('2008-08-01','yyyy-mm-dd'));
          insert into person (id,name,deptNo,pdate) values(2,'satan','ab',to_date('2008-08-01','yyyy-mm-dd'));
          insert into person (id,name,deptNo,pdate) values(3,'bob','abc',to_date('2008-08-01','yyyy-mm-dd'));
          insert into person (id,name,deptNo,pdate) values(4,'illu','ab',to_date('2008-08-03','yyyy-mm-dd'));
          insert into person (id,name,deptNo,pdate) values(5,'satan','abc',to_date('2008-08-03','yyyy-mm-dd'));
          答案
          mysql
          a:
          select * from person where pdate=date('2008-08-01');

          b:
          select p.name,p.deptno from
          (
          select max(id)bid,name from person group by name) b
          left join person p
          on p.id=b.bid where p.deptno='abc';

          oracle
          a:
          select * from person where pdate=to_date('2008-08-01','yyyy-mm-dd');

          b:
          select p.name,p.deptno from
          (
          select max(id)bid,name from person group by name) b
          left join person p
          on p.id=b.bid where p.deptno='abc';

           2.存儲過程和函數的區別
          答案
          1.    一般來說,存儲過程實現的功能要復雜一點,而函數的實現的功能針對性比較強。
          2.    對于存儲過程來說可以返回參數,而函數只能返回值或者表對象。
          3.    存儲過程一般是作為一個獨立的部分來執行,而函數可以作為查詢語句的一個部分來調用,由于函數可以返回一個表對象,因此它可以在查詢語句中位于FROM關鍵字的后面。
           4.    當存儲過程和函數被執行的時候,SQL Manager會到procedure cache中去取相應的查詢語句,如果在procedure cache里沒有相應的查詢語句,SQL Manager就會對存儲過程和函數進行編譯。




          每天進步一點點

          posted on 2008-08-07 15:03 應越 閱讀(399) 評論(1)  編輯  收藏 所屬分類: 面試

          評論:
          # re: 宇易通西安研發部面試題 2011-12-21 15:15 | www
          你感覺這家公司如何呢?  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 大港区| 磐安县| 镇江市| 长沙县| 三原县| 饶河县| 公安县| 佛教| 耒阳市| 白银市| 顺昌县| 旺苍县| 兰州市| 类乌齐县| 乳源| 二手房| 吴忠市| 安仁县| 安阳市| 上思县| 万盛区| 平江县| 中牟县| 紫金县| 仙居县| 甘肃省| 东平县| 淳安县| 新竹市| 永福县| 时尚| 翼城县| 连江县| 渭源县| 固始县| 屏边| 福建省| 安丘市| 临澧县| 凤凰县| 铜梁县|