||与&&

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 逗号 从左到右 … , …
 posted on 2018-09-05 11:29  庭明  阅读(101)  评论(0编辑  收藏  举报