||与&&
a && b : 将a, b转换为Boolean类型, 再执行逻辑与, true返回b, false返回aa || 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/anew … ( … )函数调用从左到右… ( … )18new (无参数列表)从右到左new …17后置递增(运算符在后)n/a … ++后置递减(运算符在后)… --16逻辑非从右到左! …按位非~ …一元加法+ …一元减法- …前置递增++ …前置递减-- …typeoftypeof …voidvoid …deletedelete …awaitawait …15幂从右到左… ** …14乘法从左到右 … * …除法… / …取模… % …13加法从左到右 … + …减法… - …12按位左移从左到右… << …按位右移… >> …无符号右移… >>> …11小于从左到右… < …小于等于… <= …大于… > …大于等于… >= …in… in …instanceof… instanceof …10等号从左到右 … == …非等号… != …全等号… === …非全等号… !== …9按位与从左到右… & …8按位异或从左到右… ^ …7按位或从左到右… | …6逻辑与从左到右… && …5逻辑或从左到右… || …4条件运算符从右到左… ? … : …3赋值从右到左… = …… += …… -= …… *= …… /= …… %= …… <<= …… >>= …… >>>= …… &= …… ^= …… |= …2yield从右到左yield …yield*yield* …1展开运算符n/a... …0逗号从左到右… , …
转载于:https://www.cnblogs.com/Ting-light/p/9591135.html
相关资源:JavaScript基础语法之js表达式