目錄
一、字符串
字符串一旦定義好,其內容不可以被更改,只能通過創建新的字符串來獲取改變的結果
- 顯示:
(1)多行顯示:`...這裏寫換行內容...`
例:`第一行
第二行 `
(2)字符串+變量:` .....${變量名}.....`
(3)模板字符串:'字符串1' + '字符串2'
- 函數
(1)字符串全變成大寫:例 a=' this is a string '; a.UpperCase();
(2)字符串全變成小寫:例 a=' this is a string '; a.LowerCase();
(3)字符串定位:例 a='this is a string'; a.indexOf('is') 返回5
(4)字符串剪切:例 a='this is a string'; a.substring(0,6)(不包含6)返回'this i' a.substring(6)返回's a string '
二、iterable
ES6標準引入新的iterable類型,具有iterable類型的集合可以通過新的for-of循環來遍歷。
1.Array
- 增
- 刪
- 改
- 查
2.Map
3.Set
三、變量
js中的變量類型不固定,聲明定義類型後還可以賦值爲其他類型的值。
1.聲明+定義
聲明:關鍵字 變量名;例:var num;(js中函數定義有變量提升的特點,即先把所有聲明的變量提到函數頂部再往下執行)
定義:變量名 = 變量值;例:num = 2;
聲明+定義:關鍵字 變量名 = 變量值;例:var num=2;
多個變量聲明或定義加逗號:關鍵字 變量名1 = 變量值1,變量名2 = 變量值2,變量名3 = 變量值3;
2.變量作用域
- 全局作用域:不在任何函數中定義的變量具有全局作用域
js默認只有一個全局變量window, 所有全局變量和函數綁定在window上,不同的js文件若使用了相同的全局變量或頂層函數 名,則會發生命名衝突,這時候就需要名字空間(即將所有變量和函數全部綁定在一個除window之外的全局變量)
var MY_PAGE= {};
MY_PAGE.name = 'myName';//定義變量
MY_PAGE.foo = function(){ //定義函數
return 'hello' ;
}
- 函數體作用域:在函數內部定義的變量具有函數體作用域
- 局部作用域:如for循環等塊級作用域
3.關鍵字
變量:var(只能聲明全局和函數體作用域)/ let (可以聲明全局、函數體和局部作用域)
常量:const(可以聲明全局、函數體和局部作用域,變量名最好大寫)
4.解構賦值
四、語法
1.操作符
與或非
- 按位與:& 按位或:| 按位非:~ 按位異或:^
- 邏輯與:&& 邏輯或:|| 邏輯非:!
加性乘性操作符:
- + 、-、*、/、%(取餘)、
- ++a / --a / a++ / a--
關係操作符:> 、>= 、< 、<=
相等操作符:
- 先轉換類型再對比:==、!=
- 不轉換類型對比(類型不同返回false):===、!==
2.條件判斷
if(判斷條件){ 執行語句1;} else{ 執行語句2;}
if(判斷條件1){ 執行語句1;} else if(判斷條件2){ 執行語句2;} else{ 執行語句2;}
條件操作符:var variable = boolean_expression ? true_value : false_valse;
3.循環
do-while:do{ statement; } while(expression);
while:while(expression){ statement ; }
for:for(initialization; expression; post-loop-expression){ statement ; }
for-in:for( property in expression ){ statement ; }
for-of:for( property of expression ){ statement ; }
循環配套語句:break、continue、label
4.switch(在對比時不會類型轉換,相當於===)
switch(expression){
case value1:statement1;break; // if(expression === value1){statement1;}
case value2:statement2;break;// else if(expression === value1){statement1;}
...... // ......
default:statement; // else{statement;}
}
5.函數
(1)函數定義
方式1:
function 函數名(參數){
函數體
}
方式2:
var 函數名 = function(參數){
函數體
};
(2)函數參數
- 函數可傳入參數可大於或小於定義參數,大於則忽略,小於返回NaN
- arguments:包含函數傳入的所有參數,即使沒有定義參數
- rest:包含除了正常定義的剩下所有參數,傳入小於正常定義返回空數組
(3)函數返回值
- 函數返回值注意要在當前一行加分號;防止編譯器自動添加造成錯誤
- 若設置了返回值則正常返回,否則返回undefined