js基础语法

it2025-02-16  7

||与&&

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表达式
最新回复(0)