# JavaScript 編程題
按照下列要求,用JavaScript寫一個年,月,日的聯動菜單。
> 1、默認顯示當前日期;
> 2、選擇年才可以選擇月,選擇月才可以選擇日,并且 2 月的天數要正確;
~~~
<html>
<head>
<meta charset="UTF-8">
<title>年月日下拉框聯動</title>
</head>
<body>
<form name="dateInfo">
<select name="yearName" onchange="testYear(this.value)">
<option value="">請選擇年</option>
</select>
<select name="monthName" onchange="testMonth(this.value)">
<option value="">請選擇月</option>
</select>
<select name="dayName">
<option value="">請選擇日</option>
</select>
</form>
<script>
// 定義各個月份天數
var monthTemp = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
/**
* 頁面完成加載完成后執行
*/
window.onload = function() {
// 獲取當前年份
var yearValue = new Date().getFullYear();
// 獲取當前月份
var monthValue = new Date().getMonth() + 1;
// 以今年為準,前30年,后30年
for(var i = (yearValue - 30); i <= (yearValue + 30); i++) {
document.dateInfo.yearName.options.add(new Option(" " + i + " 年", i));
}
// 月份的下拉框
for(var i = 1; i <= 12; i++) {
document.dateInfo.monthName.options.add(new Option(" " + i + " 月", i));
}
// 設定年份
document.dateInfo.yearName.value = yearValue;
// 設定月份
document.dateInfo.monthName.value = monthValue;
// 獲取當前月份的天數
var dayValue = monthTemp[monthValue - 1];
// 初始化日選項框
initDay(dayValue, monthValue, yearValue);
// 設置當前日
document.dateInfo.dayName.value = new Date().getDate();
}
// 年發生變化時日期發生變化
function testYear(yearValue) {
// 獲取當前月份
var monthValue = document.dateInfo.monthName.value;
// 判斷月份是否被選中,若未選中,則重置日選項框
if(monthValue == "") {
optionsClear(document.dateInfo.dayName);
return;
}
// 根據月份獲取天數
var dayValue = monthTemp[monthValue - 1];
// 初始化日選項框
initDay(dayValue, monthValue, yearValue);
}
// 月發生變化時日期聯動
function testMonth(monthValue) {
// 獲取當前年份
var yearValue = document.dateInfo.yearName.value;
// 判斷年份是否被選中,若未選中,則重置日選項框
if(yearValue == "") {
optionsClear(document.dateInfo.dayName);
return;
}
// 根據月份獲取天數
var dayValue = monthTemp[monthValue - 1];
// 初始化日選項框
initDay(dayValue, monthValue, yearValue);
}
// 初始化日選項框
function initDay(dayValue, monthValue, yearValue) {
// 判斷是否是2月份,并且判斷是否為閏年
if(monthValue == 2 && isLeapYear(yearValue)) {
dayValue++;
}
// 獲取當前日下拉框
var e = document.dateInfo.dayName;
// 重置下拉框
optionsClear(e);
// 填充日下拉框
for(var i = 1; i <= dayValue; i++) {
e.options.add(new Option(" " + i + " 日", i));
}
}
// 判斷是否閏平年
function isLeapYear(year) {
// 閏年的定義是(可被4整除)且((不可被100整除)或(可被400整除))的年份
return(year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
}
// 重置下拉框
function optionsClear(e) {
e.options.length = 1;
}
</script>
</body>
</html>
~~~
---
# MySQL 簡答題
常見的幾種約束有哪些?分別代表什么意思?如何使用?
> 常用的約束有主鍵約束,外鍵約束,唯一約束,默認約束 。
> 1、主鍵:PRIMARY KEY(主鍵字段)保證了實體完整性,一個表只有一個主鍵,但一個主鍵可以包含多個字段,主鍵字段不能為空;
> 2、唯一:UNIQUE(約束字段)保證了實體完整性,一個表有多個唯一約束,一個唯一約束可有包含多個字段;
> 3、外鍵:FOREIGN KEY(外鍵字段),保證了引用完整性,一個表可以有多個外鍵;
> 4、默認值:DEFAULT(默認值的表達式或NULL),保證了域完整性,一個表可以有多個默認值約束,但是一個字段只有一個默認值。
---
# Java 簡答題
數組(Array)和列表(ArrayList)有什么區別?什么時候應該使用 Array 而不是 ArrayList?
> 1、存儲內容比較:
> Array 數組可以包含基本類型和對象類型,
> ArrayList 卻只能包含對象類型。
> Array 數組在存放的時候一定是同種類型的元素。ArrayList 就不一定了 。
>
> 2、空間大小比較:
> Array 數組的空間大小是固定的,所以需要事前確定合適的空間大小。
> ArrayList 的空間是動態增長的,而且,每次添加新的元素的時候都會檢查內部數組的空間是否足夠。
>
> 3.方法上的比較:
> ArrayList 方法上比 Array 更多樣化,比如添加全部 addAll()、刪除全部 removeAll()、返回迭代器 iterator() 等。
>
> 適用場景:
> 如果想要保存一些在整個程序運行期間都會存在而且不變的數據,我們可以將它們放進一個全局數組里, 但是如果我們單純只是想要以數組的形式保存數據,而不對數據進行增加等操作,只是方便我們進行查找的話,那么,我們就選擇 ArrayList。
> 如果我們需要對元素進行頻繁的移動或刪除,或者是處理的是超大量的數據,那么,使用 ArrayList 就真的不是一個好的選擇,因為它的效率很低,使用數組進行這樣的動作就很麻煩,那么,我們可以考慮選擇 LinkedList。
- 前言
- 計算機概論
- 數據庫
- 數據庫介紹
- MySQL的安裝
- SQL
- 表基本操作
- 修改數據語句
- 數據檢索操作
- 多表數據操作
- 表結構設計
- 綜合應用
- JAVA
- JAVA 介紹
- JAVA 運行原理
- JDK 配置
- 類和對象
- 數據類型
- 變量
- 直接量
- 運算符
- 流程控制
- 數組結構
- 面向對象
- 隱藏和封裝
- 深入構造器
- 類的繼承
- 多態
- 包裝類
- final 修飾符
- 抽象類
- 接口
- 集合框架
- 常用類學習
- 異常處理
- 設計模式-單例模式
- JDBC
- JSP&Servlet
- Web應用
- Tomcat
- JSP
- Scriptlet
- Page 指令
- 包含指令
- 跳轉指令
- 用戶注冊實例
- JSP練習
- 內置對象
- Servlet
- 過濾器
- Web分層思想
- EL表達式
- JSTL
- 分頁實現
- AJAX&JSON
- 開發步驟
- 路徑問題
- Log4j
- 電子書城
- 案例分析
- 核心代碼
- Java 高級
- 文件操作
- 泛型
- 類加載機制和反射
- 注解 Annotation
- Mybatis框架
- 框架介紹
- Mybatis簡單實現
- 表基本操作
- 優化配置文件
- 表字段名與實體類屬性名不同的解決方案
- 一對一關聯
- 一對多關聯
- 教學管理
- 學員名錄
- 周測統計
- 2017-10-27
- 2017-11-03
- 2017-11-10
- 2017-11-17
- 課堂作業
- 班會紀要
- 2017-10-24
- 缺勤記錄
- 班級備忘錄
- 違紀統計
- 編程素養
- Day001
- Day002
- Day003
- Day004
- Day005
- Day006
- Day007
- Day008
- Day009
- Day010
- Day011
- Day012
- Day013
- Day014
- Day015
- Day016
- Day017
- Day018
- Day019