javascript題
1.使用javascript創(chuàng)建一個(gè)矩形類
類中的屬性:
名稱 name
顏色 color
寬度 width
高度 height
提供完整的構(gòu)造方法
提供一個(gè)計(jì)算面積的方法 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;
}
}
//測(cè)試代碼
var t = new Rectangle('test','red',5,5);
alert(t.getArea());
注:矩形 rectangle
三角形
triangle
2.解釋with關(guān)鍵字的用法
with 語(yǔ)句 為一個(gè)或一組語(yǔ)句指定默認(rèn)對(duì)象。
用法:with (<對(duì)象>) <語(yǔ)句>;
with 語(yǔ)句通常用來(lái)縮短特定情形下必須寫的代碼量。在下面的例子中,請(qǐng)注意 Math 的重復(fù)使用:
x = Math.cos(3 * Math.PI) + Math.sin(Math.LN10);
y = Math.tan(14 * Math.E);
當(dāng)使用 with 語(yǔ)句時(shí),代碼變得更短且更易讀:
with (Math) {
x = cos(3 * PI) + sin(LN10);
y = tan(14 * E);
}
注:with語(yǔ)句是運(yùn)行緩慢的代碼段,尤其是在已設(shè)置了屬性值時(shí)。大多數(shù)情況下如果可能,最好避免使用它。
3.使用javascript DOM模型 創(chuàng)建table 2行2列
a.寫出新增和刪除行方法
b.寫出修改列內(nèi)容的方法
c.對(duì)表格進(jìn)行排序
答案:
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);
}
//更新列內(nèi)容

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);
};
}
數(shù)據(jù)庫(kù)題:
1.在Person表有以下字段
id
name 人員姓名
deptno 部門號(hào)
pdate 入職時(shí)間
每新來(lái)一個(gè)員工就新增一條數(shù)據(jù)
當(dāng)員工換部門的時(shí)候也新增一條數(shù)據(jù)
要求:
a。查出'2008-08-01'這天入職的人
b.查出'abc'部門現(xiàn)有的員工資料
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.存儲(chǔ)過(guò)程和函數(shù)的區(qū)別
答案
1. 一般來(lái)說(shuō),存儲(chǔ)過(guò)程實(shí)現(xiàn)的功能要復(fù)雜一點(diǎn),而函數(shù)的實(shí)現(xiàn)的功能針對(duì)性比較強(qiáng)。
2. 對(duì)于存儲(chǔ)過(guò)程來(lái)說(shuō)可以返回參數(shù),而函數(shù)只能返回值或者表對(duì)象。
3. 存儲(chǔ)過(guò)程一般是作為一個(gè)獨(dú)立的部分來(lái)執(zhí)行,而函數(shù)可以作為查詢語(yǔ)句的一個(gè)部分來(lái)調(diào)用,由于函數(shù)可以返回一個(gè)表對(duì)象,因此它可以在查詢語(yǔ)句中位于FROM關(guān)鍵字的后面。
4. 當(dāng)存儲(chǔ)過(guò)程和函數(shù)被執(zhí)行的時(shí)候,SQL Manager會(huì)到procedure cache中去取相應(yīng)的查詢語(yǔ)句,如果在procedure cache里沒(méi)有相應(yīng)的查詢語(yǔ)句,SQL Manager就會(huì)對(duì)存儲(chǔ)過(guò)程和函數(shù)進(jìn)行編譯。
每天進(jìn)步一點(diǎn)點(diǎn)
posted on 2008-08-07 15:03
應(yīng)越 閱讀(399)
評(píng)論(1) 編輯 收藏 所屬分類:
面試