標籤:遍曆 開頭 遞迴 操作 segment ase 傳回值 語句 代碼塊
JS對大小寫敏感,JS會忽略多餘空格
JS變數以字母為開頭,也能用$和_開頭,同樣對大小寫敏感
var用來聲明變數,ES6的寫法則使用let(對於es6的支援程度不同瀏覽器做的不一樣,想要保證運行需轉譯成es5,但是es6是趨勢)
var aaa = "aaa";var AAA="AAA";console.log(aaa,AAA);//aaa AAA
一條語句可以聲明多個變數,使用[,]進行分隔即可
var aaa = "aaa",AAA = "AAA";
聲明的變數如果為賦值,則預設為undefined
var bbb;console.log(bbb);//undefined
JS中有變數提升,var或者function關鍵字進行聲明的變數和函數,會在編譯時間事先進行編譯,而後才對其進行賦值
console.log(ccc);var ccc = "ccc";//上下兩部分是等價的var ccc;console.log(ccc);ccc = "ccc";
JS中的變數具有動態變數類型,會根據你賦予的值來決定該變數是字串、數字、布爾、數組、對象、Null、Undefined(JS中只有這幾種變數類型)
var x // x 為 undefinedvar x = 6; // x 為數字var x = "Bill"; // x 為字串
可以通過將變數的值設定為 null 來清空變數。
JS會對代碼進行拆行(不推薦)
document.write("Hello World!");document.write ("Hello World!"); //這種寫法錯誤
JS對象
在JS中萬物皆對象,甚至於字串、數字、數組也都是對象。不同的對象擁有不同的【屬性】和【方法】
一般可以使用【objectName.propertyName】來查詢一個對象的某一個屬性。下面的例子裡面message作為一個字串對象,預設擁有length屬性
var message="Hello World!";console.log( message.length );//12
一般可以使用【objectName.methodName()】來調用一個對象的某一個方法。下面的例子裡面message作為一個字串對象,調用了toUpperCase方法將其轉化為大寫
var message="Hello World!";console.log( message.toUpperCase() );//HELLO WORLD!
JS函數
js函數有如下四種聲明方式,其中第一種第二種等價,第三種可以同時使用func3和func4調用,第四種則是使用建構函式的方式直接聲明變數類型為function
function func1(num1,num2){ // do something arguments } var func2 = function(num1,num2){ //do something } var func3 = function func4(num1,num2){ //do something } var func5 = new Functon();
js可以聲明匿名函數(通常只能調用一次),聲明時可以不聲明形參,可以使用arguments數組來擷取傳遞的參數(雖然arguments數組有length屬性,但是卻沒有正常數組所擁有的其他方法)
js函數可以使用return規定傳回值,預設為undefined。同時也經常使用return來打斷並推出函數執行。
在js函數中通過var、const或者let等聲明的變數均為局部變數,在函數調用結束後銷毀(特例情況是【閉包】),但是如果對未聲明的變數直接進行賦值,則預設該變數為全域變數。
JS運算子
+、-、*、/、%(取餘)、++(累加)、--(累減)
=(賦值)、+=(x+=y等價於x=x+y)、-=、*=、/=、%=
※對字串使用【+】則是執行字串拼接操作,同時如果數字與字串使用【+】則預設字串拼接
比較以及邏輯運算子:==(判斷值是否相等),===(同時判斷值與資料類型是否相等)【具體參考連結】、!=(不等於)、>、<、>=、<=、&&(與)、||(或)、!(非)
JS迴圈
if、if...else、if...else if...else if... 最基礎最常用的條件判斷
switch...case ... case...default... 每個case選擇中的末尾使用break打斷,防止過度判斷;使用default來設定沒有任何case匹配情況下的事件。但是這種方式目前使用較少
for迴圈,js中目前最常用的迴圈方式
for(語句1; 語句2;語句3){迴圈代碼}
語句1:迴圈開始的初始值;語句2:滿足該條件則執行迴圈,每次執行迴圈代碼之前都會進行一次語句2的判定;語句3:迴圈代碼執行之後執行語句3,一般用來遞迴迴圈值用於語句2的判斷
語句123其實都不是必須的,同時語句1也可以設定多個值。語句2在特殊情況下也可以捨棄,不過就需要在迴圈代碼中加入break來打斷迴圈,否則迴圈有可能無限進行導致程式崩潰。
for...in用來迴圈遍曆對象中的屬性
var obj = { name:123, age:456 } for (var abc in obj) { console.log( abc + ":" + obj[abc]);//name:123//age:456 }
while迴圈,目前使用較少
do...while,先執行一次do,再進行while的條件判斷
在JS的任何迴圈語句中,都可以使用【break】來終止迴圈,使用【continue】來跳過迴圈中的某一個迭代。(break通過標籤引用,實際上可以跳出JS的任意代碼塊,只不過不常用)
js基礎整理