1.Typeof.顯示數據類型。java
例: alert(typeof 5); //numbernode
String字符串 number 數值 Boolean 布爾值express
Undefined未定義的值 function 函數編程
Object 對象json
2.undefined 數組
聲明瞭變量後,進行初始化纔會讓變量結果爲undefined,若是沒有聲明,只有在使用typeof的狀況下,能夠看到變量的類型爲undefined。瀏覽器
3.null值是一個空對象指針,因此對null使用typeof會返回一個‘object’,表示是一個對象。若是定義變量在將來準備保存什麼值,最好將變量初始化爲nullapp
4.布爾值轉化。 例如傳入數值, var Boolean1=Boolean(1); 返回true,若是是0,返回false。一樣用於對象的時候,對象爲null返回false;函數
例子: var message=「hellow world」;post
If(message){
Alert(‘value is true’)
}
最多見的布爾值轉換,若是有這個變量,或者其餘用法,有這樣一個用法,則會執行相印的操做。
5.由於浮點數的精確性爲題,0.1+0.2的值的結果回事0.300000000000004,精確到17位,明顯數值不正確,因此永遠不要測試某個特定的浮點數值。
6.數值轉換。主要涉及三個方法。Number()。常規的將括號內的轉化爲數值,若是是沒有意義的內容則會轉化爲NAN,,空的字符串轉化爲0;
Parseint() 忽略字符串前面的空格,若是第一個字符串不是負號或者數字字符,那麼就會返回NaN。會一直解析到非數字字符。由於小數點不是數字字符,因此不會返回小數。能夠增長一個說明解析目標的類型的數字。
parseFloat和parseInt相似,會解析到一個無效的浮點數字爲止。例如22.4.2會被解析爲22.四、由於第二個小數點是無效的了。
7.在看到加減操做符的用法時想到,若是要作一些判斷的函數,多個條件的狀況下,若是不用特殊判斷符號,使用轉化爲number()一類的方法檢驗字符,數據是否存在,再進行加減操做,例如NaN加任何操做數的結果都是NaN,能夠說明,兩個數據相加,其中有一個不是數值。
8.字符串和數值出如今加法中的時候,效果是將字符串和數值拼接起來,例如「sum of a and b」+a+b 的結果是 「sum of a and b ab」 ;只有加上括號纔會將字符串和數值的運算分開。
注意:null會轉化爲0,true會轉化爲1.
9.大小符號。 字符串比較會首字母的字符編碼大小,
10.條件操做符,有boolean用法,boolean_expression?ture_value:false_value;
If(a>b)?a:b;
11.逗號操做符通常被用於同時給多個變量賦值。
12.do-while的用法主要是函數內容至少會被執行一次,先do後while。
13.js可使用方括號來表示訪問對象的屬性,在使用方括號的時候應該注意,要將屬性以字符串的形式放在方括號中。例如: alert(object[「id」]);
14.要訪問函數的指針而不執行函數的話,必須去掉函數名後面的那對圓括號。
15.Arguments主要作用時保存函數參數,他有一個屬性,callee,該屬性是一個指針,指向擁有這個arguments對象的函數。
1.相對於在<head></head>中添加<script>標籤來存放javaScript和引用.js文件在文檔的頭部放<script>標籤引用javaScript這兩種方法而言,更好的方法是:
在上述兩種方法加在HTML文檔最後,</body>標籤以前。 這樣能使瀏覽器快速的加載頁面.
2.charset標籤屬性規定在外部腳本文件中使用的字符編碼。或者文檔中使用的字符編碼。 -------charset="UTF-8";
3.「<!-」的效果和//的單行註釋效果同樣。不須要結尾。
4.再記憶一次,變量名只用用 _ 或者美圓符號$或者英語字母來開頭,第一個字母不容許使用數字。內容能夠包含字母,數字,美圓符號和下劃線。下劃線可讓比較長的變量名更容易閱讀(長的變量名裏每一個新單詞的首字母用大寫也能夠達到一樣的效果如:var firstClass='hapyy' //happy是字面量)。
* 一個好的習慣:命名變量時,咱們才用在不一樣單詞之間加下劃線的方式,命名函數時,咱們才用第二個單詞首字母大寫的形式進行區分。
5.嚴格比較「===」,除了比較值之外還會比較變量的類型。
6.var 能夠保證在函數內作局部變量時不受全局同名變量的影響。
7.謹記:getElementByID()中爲元素的id屬性值,必須放在單引號或者雙引號之間。!!返回的是一個對象,若是用alert彈出的話會顯示一個object;每一個節點都是一個對象。
8.getElementsByTagName返回的是數組!哪怕只有一個指定屬性的元素,返回的也是數組!
*- getElementById和getElementsByTagName能夠組合使用:
var pp=document.getElementById("qq");
var ww=pp.getElementsByTagName("*"); //參數是標籤的名字
9.getElementsByClassName()能夠同時查找帶有多個類名的元素,只要在()中用空格分開就能夠啦。 (class1 class2);
9.1. 獲取和設置屬性。 getAttribute
object.getAttribute(attribute) // 參數是打算查詢的屬性名字。
var title-text=span.getAttribute("title")。
變量 目標元素 屬性名
設置屬性:setAttribute :
var shopping=document.getElementById("purchases");
shopping.setAttribute("title","a list of goods");
10.if(something)和if(something!=null)徹底等價,
判斷寫法更加簡單:if(somethig)alert(XXX)
11.儘可能少的訪問DOM和儘可能減小標記!
if(document.getElementById("").length>0){
var links=document.getElementById("");
for(){}}
兩次使用DOM訪問了其中的元素,瀏覽器會搜索整個DOM樹,從而查找可能匹配的元素,浪費了一次搜索。 更好的方式是:
var links=document.getElementById("");
if(link.length>0)....
*當要獲取多個種類的元素節點時,爲了解決訪問次數過多的問題,應當考慮到設置參數,進行傳參的形式。
12.注意合併放置腳本,多個腳本放在一個js文件中一塊兒作引用。
13。壓縮腳本,刪除沒必要要的字節和註釋,工做者能夠準備兩個版本,一個工做副本和一個精簡版本。區分開來,方便修改註釋和實際工做。
14.DOM方法添加標籤。 建立元素節點。
CreateElement: var para=document.createElement(nodeName).
var testdiv= doucument.getElementById(" ")
testdiv.appendChild(para); // 爲變量插入標籤
等同於: document.getElementById("").appendChild(document.createElement("nodeName").
15.createTextNode方法,創造文本節點。
var txt=document.createTextNode(text);
16.在已有元素前插入一個新的兄弟元素:insertBefore(方法)。
parentElement.insertBefore(newElement,targetElement)。
父元素 方法 新元素 目標元素
無需知道父元素究竟是誰,由於用了目標元素的parent屬性。
17。在已有元素以後插入一個新的兄弟元素。 DOM沒有提供insertAfter()方法,可是咱們能夠本身建立一個這樣的方法。
fuction insertAfter(newElment,targetElement){
var parent=targetElement.parentNode;
if(parent.lastChild==targetElement){
parent.appendChild(newElement;
}else{
parent.insertBefore(newElement,targetElement.nextSibling);
}
}
18.建立動態標記的設計思路初體驗:
<script>
document.write("<p>this is inserted.</P>");
</script>
1.若是想讓雙引號或者單引號在代碼裏表達正常的使用方法,能夠用反斜槓,\
放在引號前來包裹要操做的單引號和雙引號。
2."This string has \"double quotes\" in it"
當咱們須要在字符串中使用與開頭結尾相同的引號時,咱們須要對引號進行 轉
義 。若是你有不少雙引號的字符串,使用轉義字符可能致使難以閱讀。這時候
可使用單引號。
'This string has "double quotes" in it. And "probably" lots of them.'
4. case "a": answer="apple"; break;
注意case值爲字符串的時候要加雙引號。
多個case能夠一塊兒執行相同的函數。
case 1:
case 2:
case 3: result="xx";
break;
5.用[]引用的時候要注意,屬性若是是字符串,應該加上引號。通常用於引用的
屬性帶有空格的時候
中括號操做符的另外一個使用方式是用變量來訪問一個屬性。當你須要遍
歷對象的屬性列表或查表時,這種方式極爲有用。
這有一個使用變量來訪問屬性的例子:
var someProp = "propName";
var myObj = {
propName: "Some Value"
}
myObj[someProp]; // "Some Value"
當咱們經過變量名訪問屬性的時候,不須要給變量名包裹引號。由於實際上咱們
使用的是變量的值,而不是變量的名稱。
中括號運算符老是能代替點運算符。但點運算符卻不必定能所有代替中括號運算
符。
中括號運算符能夠用字符串變量的內容做爲屬性名。點運算符不能。
中括號運算符能夠用純數字爲屬性名。點運算符不能。
中括號運算符能夠用js的關鍵字和保留字做爲屬性名。點運算符不能
6.json 在訪問json對象的值的時候,遇到帶空格的狀況採用[]。逐級用 . 來
訪問目標值。
1.CSS3 border-radius
給div元素添加圓角邊框:
div
{
border:2px solid;
border-radius:25px;
}
2.利用父元素高度不設置,子元素的padding-top屬性,將內容撐開。這時雖然元素高度不變,可是視覺效果是高度自適應了。
padding-top=width。或者成比例
3.當margin設置成百分數的時候,其top right bottom left的值是參照父元素盒子的寬度進行計算,在w3c的規範中也是這樣描述的: margin 的百分比值參照其包含塊的寬度進行計算,一樣的padding若是設置成百分數的話,其盒子模型和margin是同樣的。
4.background-position百分比計算公式:
background-postion:x y;
x:{容器(container)的寬度—背景圖片的寬度}*x百分比,超出的部分隱藏。
y:{容器(container)的高度—背景圖片的高度}*y百分比,超出的部分隱藏。
若是您僅規定了一個關鍵詞,那麼第二個值將是"center"。
默認值:0% 0%。
5.background-repeat:no-repeat; 背景圖片不要重複鋪蓋。