js基础语法
||與&&
a && b : 將a, b轉換為Boolean類型, 再執行邏輯與, true返回b, false返回a
a || b : 將a, b轉換為Boolean類型, 再執行邏輯或, true返回a, false返回b
轉換規則:
對象為true
非零數字為true
非空字符串為true
其他為false
* 幾乎所有語言中||和&&都遵循“短路”原理,
* 如&&中第一個表達式為假就不會去處理第二個表達式,而||正好相反。
* js也遵循上述原則。
* 當||時,找到為true的分項就停止處理,并返回該分項的值,否則執行完,并返回最后分項的值。
* 當&&時,找到為false的分項就停止處理,并返回該分項的值。
// var a = "" || null || 3 || 4;//3
// alert(a);
// var b = 4 && 5 && null && "0";//null
// alert(b);
?
RegExp
[\b]? ? ? 退格符(backspace)
\0? ? ? ? Null字符
\cX? ? ? X是A-Z的一個字母。匹配一個控制字符,\cM匹配字符串中的 control-M
[^xyz]? 取反,匹配除xyz以外的所有字符
?
^a? ? ? ? ? ? ? ? ? ?匹配以a開頭的字符
s$? ? ? ? ? ? ? ? ? ?匹配以s結尾的字符
\b? ? ? ? ? ? ? ? ? ?匹配一個邊界單詞,如\bno 匹配"at noon"中的"no",ly\b匹配”possibly yesterday"中的"ly"
\B? ? ? ? ? ? ? ? ? ?匹配一個非邊界單詞,\Bon匹配“at noon"中的on,? ye\B匹配”possibly ysterday"中的“ye"
\n? ? ? ? ? ? ? ? ? ?表示分組中左邊第n個括號中的表達式,apple(,)\sorange\1?匹配 "apple, orange, cherry, peach." 中的 "apple,orange,"。
(?:x)? ? ? ? ? ? ? ?匹配x,但不會捕獲x,就是這個x不會出現在分組中
x*?或x+?? ? ? ? ?表示非貪婪匹配
x?? ? ? ? ? ? ? ? ? ??表示匹配一次或0次
x(?=y)? ? ? ? ? ? ?匹配x, 只有當x后面緊跟著y時才匹配x
x(?!y)? ? ? ? ? ? ? 匹配x,只有當x后面不是y時才匹配x?
js中的正則表達式用/.../[.../]表示一個參數,第二個參數可以為
g? ? ? ? ? ? ? ? ? ? ?全局匹配;
i? ? ? ? ? ? ? ? ? ? ? 忽略大小寫;
m? ? ? ? ? ? ? ? ? ? 讓^和$可以分別匹配\r,\n;
u? ? ? ? ? ? ? ? ? ? ?將第一個參數里的表達式視為unicode
var myRe=/ab*/g;? ? ? ? ? ? ?表示匹配模式為ab*, g為第二個參數,表示全局匹配
var str='abbcdefabh';
使用正則表達式的三種形式
var resul=myRe.exec(str)? #resul為匹配的結果 ,resul[0]為全部匹配的結果,resul[1]為第一個分組的結果。。
myRe.test(str)? ? ? ? ? ? ? ? ? ? ? # 返回bool值,檢查str是否含符合正則表達式的字符
str.match(myRe)? ? ? ? ? ? ? ? ? ?#返回結果同exec()
?
字符串方法
str='this is my sting word';
str.replace(‘需要被替換的字串’ 或 ‘字串的正則表達式小括號內的串’ , ‘給定來替換原串的串’)
str.indexOf("?")? 返回給定字符第一次出現的位置,未出現則返回-1
str.split('&') 根據給定分割符分割字符串,返回分割后的數組
?
數組方法
創建 :var my_arry=new Arry()? ?或 var my_arry=[]
遍歷: for(var i=0;i<my_arry.length;++i) my_arry[i];
拼接:a=my_arry.join(',');
排序:b=my_arry.sort();
反轉:c=my_arry.reverse();
根據索引刪除插入元素:d=my_arry.splice(start,deleteCount,val1,val2,..)從start位置起刪除deleteCount個元素,并從該位置起插入val1,val2,.. ,返回值為被刪除的元素組成的新數組。
數組間連接: d=my_arry.concat(3,4,5) ,返回值為my_arry的值加上【3,4,5】組成的新數組
向數組尾部添加元素:my_arry.push(4) ,返回值為數組的長度
刪除數組尾部元素: my_arry.pop() ,返回值為尾部被刪除的元素
刪除數組頭部元素:my_arry.shift() ,返回被刪除的元素
添加元素到數組頭部:my_arry.ushift(4,5)
?
?
運算符優先級
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Operator_Precedence
?
?
| 20 | 圓括號 | n/a | ( … ) |
| 19 | 成員訪問 | 從左到右 | … . … |
| 需計算的成員訪問 | 從左到右 | … [ … ] | |
| new?(帶參數列表) | n/a | new … ( … ) | |
| 函數調用 | 從左到右 | … (?…?) | |
| 18 | new?(無參數列表) | 從右到左 | new … |
| 17 | 后置遞增(運算符在后) | n/a ? | … ++ |
| 后置遞減(運算符在后) | … -- | ||
| 16 | 邏輯非 | 從右到左 | ! … |
| 按位非 | ~ … | ||
| 一元加法 | + … | ||
| 一元減法 | - … | ||
| 前置遞增 | ++ … | ||
| 前置遞減 | -- … | ||
| typeof | typeof … | ||
| void | void … | ||
| delete | delete … | ||
| await | await … | ||
| 15 | 冪 | 從右到左 | …?**?… |
| 14 | 乘法 | 從左到右 ? | … *?… |
| 除法 | … /?… | ||
| 取模 | … %?… | ||
| 13 | 加法 | 從左到右 ? | … +?… |
| 減法 | … -?… | ||
| 12 | 按位左移 | 從左到右 | … <<?… |
| 按位右移 | … >>?… | ||
| 無符號右移 | … >>>?… | ||
| 11 | 小于 | 從左到右 | … <?… |
| 小于等于 | … <=?… | ||
| 大于 | … >?… | ||
| 大于等于 | … >=?… | ||
| in | … in?… | ||
| instanceof | … instanceof?… | ||
| 10 | 等號 | 從左到右 ? | … ==?… |
| 非等號 | … !=?… | ||
| 全等號 | … ===?… | ||
| 非全等號 | … !==?… | ||
| 9 | 按位與 | 從左到右 | … &?… |
| 8 | 按位異或 | 從左到右 | … ^?… |
| 7 | 按位或 | 從左到右 | … |?… |
| 6 | 邏輯與 | 從左到右 | … &&?… |
| 5 | 邏輯或 | 從左到右 | … ||?… |
| 4 | 條件運算符 | 從右到左 | … ? … : … |
| 3 | 賦值 | 從右到左 | … =?… |
| … +=?… | |||
| … -=?… | |||
| … *=?… | |||
| … /=?… | |||
| … %=?… | |||
| … <<=?… | |||
| … >>=?… | |||
| … >>>=?… | |||
| … &=?… | |||
| … ^=?… | |||
| … |=?… | |||
| 2 | yield | 從右到左 | yield?… |
| yield* | yield*?… | ||
| 1 | 展開運算符 | n/a | ...?… |
| 0 | 逗號 | 從左到右 | … ,?… |
轉載于:https://www.cnblogs.com/Ting-light/p/9591135.html
總結
- 上一篇: 成都欢乐谷进去后还要钱吗
- 下一篇: 多亏了这篇文章,我的开发效率远远领先于我