• 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

    []      退格符(backspace)

            Null字符

    cX      X是A-Z的一个字母。匹配一个控制字符,cM匹配字符串中的 control-M

    [^xyz]  取反,匹配除xyz以外的所有字符

    ^a                   匹配以a开头的字符

    s$                   匹配以s结尾的字符

                       匹配一个边界单词,如no 匹配"at noon"中的"no",ly匹配”possibly yesterday"中的"ly"

    B                   匹配一个非边界单词,Bon匹配“at noon"中的on,  yeB匹配”possibly ysterday"中的“ye"

                       表示分组中左边第n个括号中的表达式,apple(,)sorange1 匹配 "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                    让^和$可以分别匹配 , ;

    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 逗号 从左到右 … , …
  • 相关阅读:
    Explainable ML
    Fizz Buzz in tensorflow
    Tips for traing DNN (Adam,正则化,Dropout)
    深度学习 高数知识
    perror strerror使用方法
    posix信号量与互斥锁
    线程基本操作(一)
    system v共享内存与信号量综合
    shell统计当前文件夹下的文件个数、目录个数
    栈 c实现
  • 原文地址:https://www.cnblogs.com/Ting-light/p/9591135.html
Copyright © 2020-2023  润新知