JAVA Web day02--- Android小白的第二天学习笔记
CSS(美工部分知識,了解)
1、 CSS概述
1.1、CSS是什么?
* CSS 指層疊樣式表
樣式表:存儲樣式的地方
層疊:一層一層疊加
高大富有帥氣人
1.2、CSS有什么作用?
*CSS就是用來更加方便修飾HTML標簽(元素)
1.3、CSS代碼規范
選擇器名稱 { 屬性名:屬性值;屬性名:屬性值;…….}
屬性與屬性之間用 分號 隔開
屬性與屬性值直接按用 冒號 連接
如果一個屬性有多個值的話,那么多個值用 空格 隔開。例如: border:5px solid red;
注釋:/* 注釋內容*/
加注釋:ctrl+shift+/
取消注釋:ctrl+shift+\s
2、HTML與CSS的結合方式
*CSS必須結合HTML來用。
*4種使用方式:
2.1、style屬性方式(內聯樣式)
*適合局部某一個標簽的修改
*<font style="font-size:150px;color: red;">今天天氣好晴朗</font>
2.2、style標簽方式:(內嵌樣式)
*<style></style> 存在于head標簽之中的
*例如:<style type="text/css">
font {
font-size:150px;color: red;
}
</style>
*頁面的多個標簽設置統一的樣式。
2.3、導入方式(外部樣式中使用較少)
*格式:@import url("CSS文件路徑");
*存在于<style>標簽中
2.4、鏈接方式(外部樣式最常用的方式)
*格式:<link rel="stylesheet" type="text/css" href="CSS文件路徑"/>
*存在于<head>標簽中
外部樣式好處:
大大提升了代碼的復用性,更加易于維護,從而極大提高工作效率
樣式優先級:
內聯樣式》》內嵌樣式==鏈接樣式(就近原則)
鏈接方式和導入方式區別:
1、鏈接方式引用的CSS會被同時加載。而導入方式引入的CSS在頁面全部加載完以后才會加載,在網速較慢時會出現網頁沒有樣式的情況。(導入方式硬傷)
2、鏈接方式支持JavaScript修改樣式,而導入方式不支持(導入方式硬傷)
3、鏈接方式導入的CSS任何瀏覽器都OK,而導入方式要求瀏覽器版本必須在IE5以上
建議使用鏈接方式
3、CSS選擇器
*CSS選擇器:指定了CSS樣式作用于哪個HTML標簽上
3.1、元素選擇器
*就是把HTML標簽名作為選擇器名稱
*格式: 標簽名 {}
3.2、類選擇器
*樣式格式:? .class名{}
*標簽格式: <p class=”class名”></p>
*能設置不同標簽的相同樣式
3.3、Id選擇器(優先級最高)
*樣式格式:? #id名{}
*標簽格式:<p id=”id名”></p>
*有針對性地設置樣式
3.4、屬性選擇器(瀏覽器兼容性最差)
*根據標簽名和標簽的屬性名以及屬性值來選擇
*樣式格式:標簽名[屬性名稱=’屬性值’]
3.5、偽元素選擇器(特殊)
*HTML預定義的選擇器
*格式:標簽名:選擇器{}
*選擇器名稱為 HTML標簽的狀態。例如:a:link{}表示鏈接標簽在未訪問過 時的樣式。
!important? 可以將優先級提到最高
例如:color:red !important;
?
JavaScript基礎+進階
1、 JavaScript概述
1.1、 JavaScript是什么,有什么作用?
*JavaScript是因特網上最流行的腳本語言。
*腳本語言不能單獨使用,必須嵌入到其他語言中組合使用
JavaScript不能單獨使用,必須和其他語言(HTML)結合使用
*JavaScript由瀏覽器直接解釋執行,不用編譯(解釋一條,執行一條。故寫代碼時能用一條語句就不要用兩條語句)
鏈式編程的可讀性非常差。
要在可讀性和執行效率之間做取舍
*作用是:可以控制前端頁面的邏輯操作
例如:JS可以控制CSS的樣式;
JS可以對表單項進行校驗(JAVAEE重點)
JS可以對HTML元素進行動態控制
*特點:
????????????? 交互性(JavaScript控制HTML元素)
? 安全性(沒有訪問系統文件權限,無法用來做厲害的木馬病毒)
? 跨平臺性(瀏覽器有JS的解析器,只要有瀏覽器就能運行JS代碼,和平臺無關)
1.2、 JavaScript的組成
*ECMAScript (核心):描述了JS的語法和基本對象。
*DOM 文檔對象模型:處理網頁內容的方法和接口
*BOM 瀏覽器對象模型:與瀏覽器交互的方法和接口
1.3、 JavaScript和Java的關系
*JavaScript和Java一點關系都沒有(雷鋒和雷峰塔)
*JavaScript和Java的區別:
>JavaScript代碼可以直接在瀏覽器執行,而Java必須先經過編譯才能執行
>JavaScript是弱類型語言,Java是強類型語言
強類型語言:要求變量的使用嚴格符合定義。(例如:變量聲明為INT類型,裝載其他類型例如String類型就會報錯)。編程時痛苦,調BUG時舒服
弱類型語言:不要求變量的使用嚴格符合定義。(例如:變量聲明后儲存數字可以,儲存字符串也可以)。編程時舒服,調BUG時痛苦
JavaScript示例代碼
<html>
? <head>
<script>
? var sum = 0;
? for(var i = 1; i <= 100; i++) {
????? sum += i;
}
alert(sum);
</script>
? </head>
? <body>
? </body>
</html>
2、JavaScript和HTML的結合方式
l 兩種使用方式
>內部使用
*<script type=”text/javascript”>JavaScript的代碼</script>
>外部引用
*<script type=”text/javascript” src=”javascript文件路徑”></script>
*外部引用時script標簽內不能有script代碼,即使寫了也不會執行,會被覆蓋
注意:<script>標簽寫在任意地方都可以,但是要注意HTML和JAVASCRIPT的加載順序
擴展:
如果JavaScript代碼沒有用到任何的HTML元素,那么放在哪里都可以
如果JavaScript代碼用到了某個HTML元素,那么必須保證該HTML元素先加載。
3、JavaScript語法及使用(重點)
3.1、注釋
*單行注釋
//
Myeclipse快捷鍵 ctrl+shift+c
*多行注釋
/* */
Myeclipse快捷鍵 ctrl+shift+/
取消: ctrl+shift+\
3.2、變量
3.2.1、變量簡述
*標示內存中的一塊空間,用于存儲數據,數據是可變的
*格式:
var 變量名 = 變量值;
JavaScript中的變量聲明可以用var關鍵字(不用var聲明的都是全局變量)
????? 變量的數據類型分為:原始數據類型
引用數據類型
3.2.2、原始數據類型
類似于JAVA中的基本數據類型。(所有的值存在于內存棧區,大小固定,用于速查)
string
字符串類型
“”和’’都表示字符串
boolean
布爾類型
true,false
number
數字類型
整數、小數和NaN(Not a Number)
NaN!=NaN?
Null
空,對象的占位符
表示引用類型的對象不存在
一般用于進行廢除對象。(即每當一個對象不用時,手動設置其為空,在函數結束或者其他情況,無用存儲單元收集程序會將其回收)
undefined
值未定義。即聲明變量未賦值,系統會自動賦值undefined
變量聲明未賦值時使用/對象的屬性未賦值時使用 都會出現undefined
Undefined是一個默認的值
但如果變量 未聲明 就使用,JavaScript會報 變量未定義并截停代碼。
例如:alert(str);//JavaScript代碼在此行停止解析運行,并拋出 變量str未定義 的錯誤
undefined容易和 變量未聲明就使用? 混淆
變量聲明未定義:
var str;
alert(str);//undefined
變量未聲明就使用:
alert(aaaccc);//報錯,并且截斷JAVASCRIPT代碼
undefined==undefined
注:變量就像一個盤子,什么都能盛裝。
變量值的類型可以用typeof()來判斷。例如:var str=”aa”;alert(typeof(str));//string
變量的大小寫是敏感的,yy和YY不是一個變量。
為什么 typeof 運算符對于 null 值會返回 "Object"。這實際上是 JavaScript 最初實現中的一個錯誤,然后被 ECMAScript 沿用了。現在,null 被認為是對象的占位符,從而解釋了這一矛盾,但從技術上來說,它仍然是原始值。
undefined是從null派生出來的,因此你在判斷時 null==undefined得到的結果是true
3.2.3、引用數據類型
引用類型通常叫做類(.class),遇到引用值,所處理的就是對象。但從傳統意義上來講,JavaScript并無真正的類。
例如:var obj = new Object();//由java轉來的工程師寫的
? var obj = new Object;//由JS工程師寫的
? 上下兩個效果等價
對象定義:由new關鍵字加上要實例化的對象名進行創建。
例如:var flag = new Boolean(“false”);
? Alert(flag);//true
常用對象:
String,Number,Boolean,Array,Date,Math,RegExp
注:instanceof可以用來判斷對象是否屬于某類型。返回true和false .例如:
var str = new String();
Alert(str instanceof String);//true
Alert(str instanceof Object);//true
Alert(str instanceof Array);//false
3.2.4、類型轉換(轉出來的都是原始數據類型的值)
1、 轉換成字符串
boolean,string,number 它的原始值其實是一個偽對象,在JS中有Boolean,String,Number這樣的對象,可以直接通過原始值調用其toString()方法來轉換成字符串。
例如:
var flag = true;
alert(flag.toString());
var num = 10;
alert(num.toString());
開發中一般不使用,一般使用 + 運算符 加上一個字符串的形式來轉換字符串。
例如:var num =10;
? alert(num+””);
2、 字符串轉換成數字
parseInt(string); 把string按照字面值 解析為number類型的值并返回,整數型(小數部分截掉不要)
如果string某一個字符無法按字面值解析為數字,那么從該字符開始往后截掉不要
如果string第一個字符無法被解析為number,那么返回NaN
parseFloat(string); 把string按照字面值 解析為number類型的值并返回,浮點型
如果string某一個字符無法按字面值解析為數字,那么從該字符開始往后截掉不要
如果string第一個字符無法被解析為number,那么返回NaN
3、 強制類型轉換(了解)
Boolean(value) - 把給定的值轉換成 boolean 型;?
? 若value值存在或有意義,則為true;
? 若value值不存在或者無意義,則為false。
Number(value) - 把給定的值轉換成數字(可以是整數或浮點數)。
? string:字面值若能解析為數字,則正常轉換。如果字面值有不能解析為數字的字符,則返回NaN
? boolean:true轉為1,false轉為0
? null:轉為0
? undefined:轉為NaN
String(value) - 把給定的值按照 字面值 轉換成字符串;?
以上三種強制類型轉換方法,返回的值均為原始數據類型的值
3.3、運算符
3.3.1、算術運算符
+符號
l 算術運算加(無字符串出現,把其他值強轉為number類型進行加法運算)
l 字符串連接符(其中有一項必須是字符串)
l Number強轉(其他類型強轉number):
例如:var str = +"11";
? Var str = Number(“11”);
? 上下兩個代碼是完全等價的
-符號
l 算術運算減(會把其他值強轉為number類型進行減法運算)
l Number強轉(其他類型強轉number,區別于+,都是負數):
例如:var str = -"11";
? Var str = -Number(“11”);
? 上下兩個代碼是完全等價的
,
3.3.2、比較運算符(重點)
==? 邏輯等。比較值
=== 全等。? 比較值和類型。如果值和類型都相同,則為true;值和類型有一個不同,則為false
!= 不等。比較值.值不相同,true。值相同false
!== 不全等。比較值或比較類型,如果值和類型都相同,則為false;值和類型有一個不同,則為true
練習:
var x=8;
alert(x==8);
alert(x===8);
alert(x=="8");
alert(x==="8");
alert(x!=8);
alert(x!=1);
alert(x!==8);
alert(x!==1);
alert(x!="8");
alert(x!="1");
alert(x!=="8");
alert(x!=="1");
3.3.3、邏輯運算符
&& 邏輯與
|| 邏輯或
! 非
開發中以上邏輯運算符經常和if語句連用。
在IF或其他表達式中 使用以上邏輯運算符,最終都會用boolean類型運算,若不是boolean類型,則進行強轉。
注:除!外不支持alert
邏輯運算符中不包含& ,? js中的&是位運算符
3.4、流程控制語句
對程序運行流程控制的表達式
3.4.1、判斷語句(重點)
IF語句
if(條件){
}else{
}
練習:以下代碼輸出結果為:
var a=15;
if(a=15){
alert(15);
}else{
alert(“else”);
}
A. 15
B. Else
1、If里面? a=15
2、A就賦值成15
3、If(15)-----àif(true)
注:若寫= 則為賦值。
IF條件中賦值會先為變量賦值,后將賦值后變量的值強轉為boolean進行運算。
BUG調試一般用firebug即可
Switch語句
switch(n)
?? {
?? case 1:
???? 執行代碼塊 1
???? break
?? case 2:
???? 執行代碼塊 2
???? break
?? default:
???? 如果n即不是1也不是2,則執行此代碼
?? }
Switch會對值和值的類型進行比較(全等比較)
3.4.2、循環語句
普通for循環:(常用)
for(var i=0;i<=8;i++){
// 循環體
}
和JAVA中僅有的區別:
JavaScript中定義變量用var關鍵字
for..in循環: (不常用)
類似于Java的增強for循環(但有本質區別)
For...In 聲明用于對數組或者對象的屬性進行循環操作。
for ... in 循環中的代碼每執行一次,就會對數組的元素進行一次操作。
for(var 變量 in 對象或數組){
// 循環體
}
區別于Java:
遍歷數組時,其中遍歷變量代表的是數組的下標(和屬性)。
例如:
數組遍歷:
var p=[1,2,3];
for(var i in p){
alert("數組下標:"+i);
alert("數組元素:"+p[i]);
}
3.5、對象
3.5.1、Number對象(了解)
*var num = 10;//偽對象,值是原始數據類型
*var num = new Number(10);//值是引用數據類型,如果省略構造參數,默認為0
*var num = Number(10);//強轉,偽對象,值是原始數據類型
Number屬性:
valueOf()
返回一個 Number 對象的基本數字值。
3.5.2、Boolean對象(了解)
*var flag = false;//偽對象
*var flag = new Boolean(false);
*var flag = Boolean(false);
注:如果構造函數省略參數,或者設置為 0、-0、null、""、false、undefined 或 NaN,則該對象設置為 false。否則設置為 true(即使 value 參數是字符串 "false")。
3.5.3、String對象
* var str = "abc";//偽對象
* var str = new String("abc");//如果省略,默認為空字符串
*var str = String("abc");
String屬性:
length
字符串的長度
String方法:
charAt(index)
返回指定位置的字符
concat(str1,str2,str3….)
連接字符串,并返回連接后結果
indexOf(searchvalue,fromindex)
檢索字符串
replace(regexp,replacement)
替換字符串
只能替換第一次出現的字符串。
若想替換多次出現的字符串,請使用正則。
例如:
str.replace(/a/g, "f");//替換所有的a為f
【java中有replace和replaceAll兩個方法,replace是用于替換單個字符的練習方法,replaceAll是開發中結合正則表達式用于替換指定規則字符的方法。
】
split( separator)
根據分隔符分割字符串為數組
substr(start,length)
截取字符串
從哪開始,截取長度
substring(start,stop)
截取字符串
從哪開始,到哪結合(包含開始不包含結束)
toLowerCase()
把字符串轉換為小寫
toUpperCase()
把字符串轉換為大寫
注:以上方法均不會對原有字符串進行更改
3.5.4、Array對象(重點)
* js的數組對象
* var arr = [1,2,3];//數組長度為3,元素分別為1,2,3
* var arr = new Array();數組長度默認為0
* var arr = new Array(4); 數組長度是4,相當于開辟了長度為4的空間,每個元素是undefined。(僅在顯示數組時進行處理,undefined為了方便顯示變成了空字符串形式,其值本質仍然是undefined)
* var arr = new Array(1,2); 數組長度為2,數組元素是1,2
Array屬性:
length
數組的長度
*JavaScript和Java中數組的區別:
1、數組的長度是可變的
2、數組元素可以是任意類型
練習:以下代碼打印結果為:
var arr1 = new Array(4);
????? arr1[10]=5;
????? alert(arr1.length);
A.4
B.10
C.11
D.undefined
var arr1 = new Array(4);
arr1[10]=5;//arr1[4]=undefined;arr[5]=undefined...arr[9]=undefined;
alert(arr1.length);
思考:以下代碼打印結果依次為:
var arr1 = new Array();
????? arr1[1]=10;//arr[0]=undefined;? 長度為2了
????? arr1["name"]="jerry";
for(var i=0;i<arr1.length;i++){
alert(arr1[i]);
}
A.undefined,10
B.10
C.10,name
D.undefined,10,name
注:arr1[“key”]=value;這種形式將不再作為數組的元素新增,而是作為數組對象的屬性。所以length只能統計元素個數,不能統計屬性??梢酝ㄟ^for..in循環可以取出
Array方法
concat(arr1,arr2,arr3…..)
連接兩個或更多的數組,并返回連接后的結果。
對調用的數組沒有任何影響。
join(分隔符)
轉化成字符串返回
對調用的數組沒有任何影響。
pop()
刪除并返回數組的最后一個元素
如果數組已經為空,則 pop() 不改變數組,并返回 undefined 值
shift()
刪除并返回數組的第一個元素
如果數組是空的,那么 shift() 方法將不進行任何操作,返回 undefined 值
push(element1,element2,…..)
向數組末尾添加一個或者多個元素,并返回數組新長度
unshift(element1,element2,…..)
向數組開頭添加一個或者多個元素,并返回數組新長度
不建議使用,因為部分瀏覽器不兼容該方法
reverse()
顛倒數組中元素的順序。物理翻轉
sort(可選排序函數)
對數組的元素進行排序
排序實現實例:
function sortNumber(a,b)
{
return a - b
}
3.5.5、Date對象
* var date = new Date(); 當前的系統時間(本地時間)
* var date = new Date(毫秒值);設置的時間
Date方法
toLocaleString()
根據本地的日期格式轉化成字符串
getDate()
返回一個月中的某一天
getDay()
返回一周中的某一天(0-6)0代表周日
getMonth()
獲取月份(0-11)0代表1月
getFullYear()
獲取年
getTime()
獲取毫秒數
setTime()
通過毫秒數設置日期
parse(datestring)
解析字符串,返回毫秒數
Date.parse(“2005/12/31 17:07:07”);
Date.parse(“2005/12/31”);
Date.parse("7/8/2013 17:07:07");
Date.parse("Jul 8,2011 17:07:03");
Date.parse(“2012-12-31T07:07:07”);IE10支持
作業:清空數組中的所有元素
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><title>homework.html</title><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="this is my page"><meta http-equiv="content-type" content="text/html; charset=UTF-8"><!--<link rel="stylesheet" type="text/css" href="./styles.css">--></head><script type="text/javascript">var arr=[1,2,3,4];while(arr.length!=0){arr.shift();}alert(arr);</script><body></body> </html>轉載于:https://www.cnblogs.com/qdxx/p/5218815.html
總結
以上是生活随笔為你收集整理的JAVA Web day02--- Android小白的第二天学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS-上架APP之启动页设置(新手必看
- 下一篇: Android-应用性能测试