值類型(基本類型):字元串(String)、數字(Number)、布爾(Boolean)、對空(Null)、未定義(Undefined)、Symbol。
注:Symbol 是 ES6 引入了一種新的原始資料類型,表示獨一無二的值。
引用資料類型:對象(Object)、數組(Array)、函數(Function)。
js中 var name="Volvo XC60"; var name='Volvo XC60'; ' ' 與 " " 作用是相同的
下面的代碼建立名為 cs 的數組:
var cs=new Array();
cs[0]="Saab";
cs[1]="Volvo";
cs[2]="BMW";
或者 (condensed array):
var cs=new Array("Saab","Volvo","BMW");
或者 (literal array): 例;var cs=["Saab","Volvo","BMW"];
對象由 { } 分隔。在括号内部,對象的屬性以名稱和值對的形式 (name : value) 來定義。
屬性由逗号分隔: var test={name:"John", three:"Doe", id:666};
對象有兩種尋址方式
1.name=test.name; 2.name=test["name"];
兩種方式通路對象屬性:
1.test.name; 2.test["name"];
"JavaScript 對象是變量的容器"。但是,我們通常認為 "JavaScript 對象是鍵值對的容器"。
鍵值對通常寫法為 name : value (鍵與值以冒号分割)。鍵值對在 JavaScript 對象通常稱為 對象屬性。
通常 fullName() 是作為 person 對象的一個方法, fullName 是作為一個屬性。
如果使用 fullName 屬性,不添加 (), 它會傳回函數的定義(函數表達式);添加括号輸出函數執行結果
document.getElementById("demo1").innerHTML = "不加括号輸出函數表達式:" + person.fullName; 不加括号輸出函數表達式:function() { return this.firstName + " " + this.lastName; }
document.getElementById("demo2").innerHTML = "加括号輸出函數執行結果:" + person.fullName(); 加括号輸出函數執行結果:test java
在 JavaScript 函數内部聲明的變量(使用 var)是局部變量,是以隻能在函數内部通路它。(該變量的作用域是局部的)。
在函數外聲明的變量是全局變量,網頁上的所有腳本和函數都能通路它。
JavaScript 變量的生命期從它們被聲明的時間開始。
局部變量會在函數運作以後被删除。
全局變量會在頁面關閉後被删除。
非嚴格模式下給未聲明變量指派建立的全局變量,是全局對象的可配置屬性,可以删除。
在 JavaScript 中, 作用域為可通路變量,對象,函數的集合
局部變量:隻能在函數内部通路。 函數參數隻在函數内起作用,是局部變量。
全局變量有 全局作用域: 網頁中所有腳本和函數均可使用。
在 HTML 中, 全局變量是 window 對象: 所有資料變量都屬于 window 對象。
如果變量在函數内沒有聲明(沒有使用 var 關鍵字),該變量為全局變量。
JavaScript 變量生命周期在它聲明時初始化。
局部變量在函數執行完畢後銷毀。
全局變量在頁面關閉後銷毀。
你的全局變量,或者函數,可以覆寫 window 對象的變量或者函數。
局部變量,包括 window 對象可以覆寫全局變量和函數。
注:Window 對象表示浏覽器中打開的視窗
常見的HTML事件的清單:

JavaScript 字元串用于存儲和處理文本。
在JavaScript 中,字元串寫在單引号或雙引号中;
下表中列舉了在字元串中可以使用轉義字元轉義的特殊字元:
字元串屬性和方法
屬性: 描述:
constructor 傳回建立字元串屬性的函數
length 傳回字元串的長度
prototype 允許您向對象添加屬性和方法
字元串方法:
方法
描述
charAt()
傳回指定索引位置的字元
charCodeAt()
傳回指定索引位置字元的 Unicode 值
concat()
連接配接兩個或多個字元串,傳回連接配接後的字元串
fromCharCode()
将 Unicode 轉換為字元串
indexOf()
傳回字元串中檢索指定字元第一次出現的位置
lastIndexOf()
傳回字元串中檢索指定字元最後一次出現的位置
localeCompare()
用本地特定的順序來比較兩個字元串
match()
找到一個或多個正規表達式的比對
replace()
替換與正規表達式比對的子串
search()
檢索與正規表達式相比對的值
slice()
提取字元串的片斷,并在新的字元串中傳回被提取的部分
split()
把字元串分割為子字元串數組
substr()
從起始索引号提取字元串中指定數目的字元
substring()
提取字元串中兩個指定的索引号之間的字元
toLocaleLowerCase()
根據主機的語言環境把字元串轉換為小寫,隻有幾種語言(如土耳其語)具有地方特有的大小寫映射
toLocaleUpperCase()
根據主機的語言環境把字元串轉換為大寫,隻有幾種語言(如土耳其語)具有地方特有的大小寫映射
toLowerCase()
把字元串轉換為小寫
toString()
傳回字元串對象值
toUpperCase()
把字元串轉換為大寫
trim()
移除字元串首尾空白
valueOf()
傳回某個字元串對象的原始值
JavaScript運算符
運算符 = 用于給 JavaScript 變量指派。
算術運算符 + 用于把值加起來。
y=5:
運算符
例子
x 運算結果
y 運算結果
+
加法
x=y+2
7
5
-
減法
x=y-2
3
*
乘法
x=y*2
10
/
除法
x=y/2
2.5
%
取模(餘數)
x=y%2
1
++
自增
x=++y
6
x=y++
--
自減
x=--y
4
x=y--
JavaScript 指派運算符。
指派運算符用于給 JavaScript 變量指派。
給定 x=10 和 y=5,下面的表格解釋了指派運算符:
等同于
運算結果
=
x=y
x=5
+=
x+=y
x=x+y
x=15
-=
x-=y
x=x-y
*=
x*=y
x=x*y
x=50
/=
x/=y
x=x/y
x=2
%=
x%=y
x=x%y
x=0
+ 運算符用于把文本值或字元串變量加起來(連接配接起來)。
如需把兩個或多個字元串變量連接配接起來,請用 + 運算符。
兩個數字相加,傳回數字相加的和,如果數字與字元串相加,傳回字元串,
x=5+5;
y="5"+5;
z="Hello"+5;
x,y, 和 z 輸出結果為:
55
Hello5
比較和邏輯運算符用于測試 true 或者 false。
比較運算符在邏輯語句中使用,以測定變量或值是否相等。
<p給定x=5,下面的表格解釋了比較運算符:
可以在條件語句中使用比較運算符對值進行比較,然後根據結果來采取行動:
if (age<18) x="Too young";
邏輯運算符用于測定變量或值之間的邏輯。
給定 x=6 以及 y=3,下表解釋了邏輯運算符:
JavaScript 還包含了基于某些條件對變量進行指派的條件運算符。
1、當 p>1 時傳回 p
1.1、當 pb
1.2、當 p>=b 時傳回 p=6
2、當 p<=1 是傳回 p=3 是以先執行 1
3、執行個體中當 p=9 的時候,傳回 p
JavaScript 中有三種邏輯運算符:
首先把資料轉化為布爾值,然後取反,結果為 true 或 false。
JavaScript 中邏輯與和其他語言不太一樣,如果第一個操作數是 true(或者能夠轉為 true),計算結果就是第二個操作數,
如果第一個操作數是 false,結果就是 false(短路計算),對于一些特殊數值不遵循以上規則。
(個人了解為:如果運算的第一個操作數為true,則傳回第二個操作數,反之則傳回第一個操作數)
傳回的不是單純的 true 還是 false,而是具體的值;
若是第一個值轉換布爾值為 true,就傳回第二個值;反之,傳回第一個值。
白話說就是:哪個值是錯的就傳回哪個值,如果都是對的,傳回最後一個值。
如果第一個操作數不是 false,結果就是第一個操作數,否則結果是第二個操作數。如果第一個操作數能夠轉為 true,
結果就是第一個操作數(個人了解為:如果運算的第一個操作數為 true,則傳回第一個操作數,反之則傳回第二個操作數)
同 && 類似,傳回的不是單純的 true 和 false,而是具體的值。
這個是從頭開始,遇到能轉換成 true 的值,就傳回那個值,如果沒有 true 的就傳回最後一個值。