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) 編輯 收藏 所屬分類:
面試