相關理論概念:java
直接量的概念:直接描述某個(些)存儲空間的值的量,如變量的值、對象的值、數組的值。jquery
數據類型:在數據結構中的定義是一個值的集合以及定義在這個值集上的一組操做。編程
一、變量的聲明和使用數組
變量:是計算機語言中能儲存計算結果或能表示值抽象概念。變量能夠經過變量名訪問。數據結構
語法規則:dom
var 變量名;函數
而後進行賦值:num=10時直接賦值:編碼
var num=10;spa
良好的變量命名方式:3d
代碼示例:
//好的寫法:
var count = 10;
var myName = "Nicholas";
var found = true;
//很差的寫法:
var getCount = 10;
var isFound = true;
二、數據類型
數據類型 | 含義 |
undefined | 未定義 |
null | 空 |
string | 字符串類型 |
boolean | 布爾類型 |
number | 數值類型 |
注意:
1、基礎數據類型:
一、undefined:
undefined是一個特殊值,那些沒被變量初始化的變量都有一個初始值,即undefined,表示這個變量等待被賦值。
代碼示例:
//很差的寫法
var person;
console.log(person===undefined); //true
//foo未被聲明
var person;
console.log(typeof person); //"undefined"
console.log(typeof foo);//"undefined"
//好的寫法,建議使用null
var person =null;
console.log(person=== null);
二、null
null是一個特殊值,但咱們經常誤解它,將它和undefined搞混。在如下場景中應當使用null.
還有如下兩個場景不該當使用null.
代碼示例:
//好的用法
var person = null;
//好的用法
function getperson () {
if (condition){
return new person ("Nicholas");
} else {
return null;
}
}
//好的用法
var person = getPerson ();
if(person != null ){
dosomething();
}
//很差的寫法:用來和未初始化的變量比較
var person;
if (person !=null){
dosomething();
}
//很差的寫法:檢測是否傳入了參數
function dosomething (arg1,arg2,arg3,arg4) {
if ( arg4 != null){
dosomethingElse();
}
}
注意:最好把null理解爲佔位符(placeholder)。
檢測屬性避免非空比較:
另一種用到null(以及undefined)的場景是當檢測一個屬性是否在對象中存在時,好比:
//很差的寫法:檢測假值
if ( object[propertyName]) {
//一些代碼
}
//很差的寫法:和null相比較
if( object[propertyName] != null){
//一些代碼
}
//很差的寫法:和undefined比較
if (object[propertyName]){
//一些代碼
}
注意:建議使用in運算符進行判斷屬性。
若是實例對象的屬性存在、或者繼承自對象的原型,in運算符都會返回true.好比:
var object = {
count:0;
related: null;
};
//好的寫法
if( "count" in object){
//這裏的代碼會執行
}
//很差的寫法:檢測假值
if ( object["count"]){
//這裏的代碼不會執行
}
//好的寫法
if ( "related" in object) {
//這裏的代碼會執行
}
//很差的寫法:檢測是否爲 null
if ( object["related"] !=null ){
//這裏的代碼不會執行
}
//對於全部非dom對象來講,這是好寫法
if (object.hasOwnProperty("related")){
//執行這裏的代碼
}
//若是你不肯定是否爲dom對象,則這樣寫
if ("hasOwnProperty" in object && object.hasOwnProperty("related")){
//執行這裏的代碼
}
hasOwnProperty方法的使用:
注意:
三、string 字符串類型
在javaScript中全部字符是16位的,使用的是Unicode字符編碼集。可使用單引號或雙引號來表示,它可能包含0個或多個字符。
在javaScript中沒有字符類型的概念,若須要轉義字符則使用/(斜槓)+符號或相關的字母來表示。
javaScript中字符串的編碼風格:
相關示例:
//很差寫法
var longString ="Here's the story , of a man \ named Brady.";
//好的寫法
var longString ="Here's the story , of a man " + " named Brady.";
四、boolean 布爾類型
布爾(邏輯)只能有兩個值:true 或 false。
相關示例:
var x=true;
五、number類型
javaScript只有一個數字類型,它在內部被表示爲64位的浮點數,相似於java的double浮點類型。
在javaScript中1和1.0的值相同,在java等語言中是不等價的,是兩種數字類型。
相關示例:
//整數
var count =10;
//小數
var price = 10.0;
var price =10.00;
//不推薦的小數寫法:沒有小數部分
var price = 10.;
//不推薦的小數寫法:沒有整數部分
var price = .1;
//不推薦的寫法:八進制寫法已被棄用了
var num = 010;
//十六進制寫法
var num = 0xA2;
//科學計數法
var num = 1e23;
2、引用類型
一、數組
數組:在數據結構中編號的值是有序集合。
下面的代碼建立名爲 cars 的數組:
或者 (condensed array):
或者 (literal array):
二、對象
對象:將一組數據與這組數據有關操做組裝在一塊兒,造成一個實體,在數據結構中編號的值是無序集合,這個實體就是對象。包含行爲和相關屬性。
對象由花括號分隔。在括號內部,對象的屬性以名稱和值對的形式 (name : value) 來定義。屬性由逗號分隔:
上面例子中的對象 (person) 有三個屬性:firstname、lastname 以及 id。
空格和折行可有可無。聲明可橫跨多行:
對象屬性有兩種尋址方式:
三、函數
函數的做用是封裝相關數據或組件用的。
函數就是包裹在花括號中的代碼塊,前面使用了關鍵詞 function:
當調用該函數時,會執行函數內的代碼。
能夠在某事件發生時直接調用函數(好比當用戶點擊按鈕時),而且可由 JavaScript 在任何位置進行調用。
三、運算符
運算符用於執行程序代碼運算,會針對一個以上操做數項目來進行運算。