当前位置 博文首页 > m0_45291815的博客:JavaScript手册

    m0_45291815的博客:JavaScript手册

    作者:[db:作者] 时间:2021-09-02 19:07

    JavaScript

    一、注释输出

    1、注释

    /* 注释,打印 */
    /*
        多行注释
        多行注释
    */
    
    /**
     * 函数注释
     * @param { 入参类型 } 入参变量名 //入参描述
     * @returns { 返回类型 } // 返回描述
    */
    
    // 单行注释1
    // 单行注释2
    

    2、打印输出

    console.log('console.log打印')
    console.error('console.error打印')
    document.write('document.write写入到页面')
    alert('弹窗输出')
    confirm('判断框输出')
    const str = prompt('输入框输出', '默认文本') // 返回文本复制给变量
    

    二、变量

    1、变量定义

    var a = 1
    let b = 'string'
    const c = true
    // 简单变量使用(typeof 变量)获取变量类型,在进行比较判断
    console.log(typeof a); // 打印未Number
    

    2、复杂变量

    var obj = {}
    let arr = []
    const date = new Date()
    function fn() {}
    const fn = () => {}; es6函数写法
    // const fn = item => item; 相当于 function fn(item) { return item }
    const reg = new RegExp('reg')
    // 复杂类型使用(变量 instanceof 类型构造函数)判断
    console.log(obj instanceof Object)
    // 如果使用typeof判断,这全部为object
    

    3、特别类型

    • NaN:其他类型转数字类型无法转换时,就变成数字类型特别值NaN
    • null:表示定义了,但是没有赋值
    • undefined:表示没有定义过

    4、变量检查

    • 使用typeof检查简单数据类型
    • 使用instanceof检查全部数据类型

    三、基础语法

    1、处理数字

    • parseInt:取整

      const a = parseInt(num)对num进行取整, 并返回a数字类型。

      特别:const a = parseInt('123ab4c') => a=123数字类型

    • parseFloat:取浮点

      基本等同于上面parseInt,区别:可以处理小数

    • toFixed:四舍六入

      const a = num.toFixed(2) 四舍六入,保留两位小数,返回字符串

    • isNaN:数字类型判断

      const a = isNaN(num);判断是否为数字,false为数字,true不为数字

    2、运算逻辑

    1. 赋值:var a = 1; a赋值为1

    2. 二元四则运算:+-*/,绝对值:~, 取余:%

    3. 一元运算:++ -- += -= %=

    4. 逻辑运算:> < >= <= == === != !== 与:& 或:| 非:! && ||

    5. 短路运算:a === b && console.log(a);

    6. 三元运算:const str = a ? b : c; a为true时,str=b。反之str=c

    7. 可选链操作符:obj?.key

      let a = { b: 1 }
      console.log(a.b.c) // 打印undefined
      console.log(a.d.c) // 会报错,c 不能从undefined中读取
      console.log(a.d?.c) // 不会报错
      // 使用场景:res.data?.data 返回结果可能不含某个值,道咋取值报错
      

    3、数据类型转换

    1. 转数字类型:const new = Number(变量)
    2. 转布尔类型:const new = Boolean(变量)
    3. 转字符串类型:const new = String(变量)
    4. 转字符串类型:const new = 变量.toString()
    5. 字母转ASCII码(数字):const num = str.charCodeAt()
    6. ASCII码(数字)转字母:const str = String.formCharCode(num)

    其他情况:

    • 数字转字符串:数字.toFiexd()
    • 字符串拼接:const new = 变量 + 字符串;new转为字符串类型
    • 字符串类型的数字 除以 数字:const new = '1' / 2; new转为数字类型
    • 十进制转二进制:const new = 10.toSting(2);其他进制同理
    • 二进制转十进制:parseInt(2进制, 2);其他进制同理

    4、语句

    • if语句

      if (判断) { console.log('执行') }
      
    • if else语句

      if (判断) {
          console.log('执行a')
      } else if (判断) {
          console.log('执行b')
      } else { console.log('执行c') }
      // 缩写
      if (判断) console.log('执行a')
      else if (判断) console.log('执行b')
      else console.log('执行c')
      
    • switch case语句

      switch(变量){
          case1: // 当变量 === 值1是执行下面语句
              console.log('执行1');
              break; // 没有break,会继续向下执行判断
          case2:
              console.log('执行2');
              break;
          default: // 都不匹配时执行
              console.log('执行3');
      }
      
    • do while:

      let a = 0;
      do {
          console.log(a);
      	a++;
      } while (a < 5);
      
    • while

      let a = 0;
      while (a < 5) {
          console.log(a);
          a++;
      }
      
    • for:循环语句

      for ( let a = 1; a <= 10; a++ ) {
          if (a === 5) continue;
          console.log(a);
      }
      
    • for-in

      const obj = { a: 1, b: 2 }
      const arr = ['a', 'b', 'c']
      for ( let key in obj ) {
          console.log(key, obj[key])
      }
      fot (let index in arr) {
          console.log(index, arr[index])
      }
      
    • for-of

      const obj = { a: 1, b: 2 }
      const arr = ['a', 'b', 'c']
      for ( let value of obj ) {
          console.log(value)
      }
      fot (let value of arr) {
          console.log(value)
      }
      
    • try - catch

      const { a } = new Object()
      try() { console.log(a) } // 尝试执行
      catch() { console.log('发生错误') } // 执行失败打印
      // 不会阻塞后面代码的执行
      
    • break:循环停止,或者语句停止

    • continue:跳过一次循环

      for (let i = 0; i < 10; i++) {
          // 跳过4
          if (i === 4) { continue; }
          console.log(i);
      }
      
    • 循环嵌套

      for (let i = 0; i <= 10; i++) {
      	for(let j = 0; j <= 10; j++) {
              console.log("i=" + i + "; j=" + j);
          }
      }
      
    • 匿名函数调用:

      (function () { console.log('执行') })()
      ~function() { console.log('执行') }()
      

    四、js方法

    1、Math数学

    1. 随机数:Math.random() 返回0<x<1的随机数,可以通过加减乘除转换为其他区间的随机数
    2. 绝对值:Math.abs(x) 返回x的绝对值
    3. 四舍五入:Math.round(x) 返回x的四舍五入
    4. 圆周率:Math.PI, 等于180度
    5. 平方/开发: Math.pow(x, y) x的y次方
    6. log函数:Math.log(x) e的x的对数,变形为 x的y的对数 Math.log(y) / Math.log(x)
    7. 正弦:Math.sin(x)
    8. 余弦:Math.cos(x)
    9. 正切:Math.tan(x)
    10. 对上取整:Math.ceil(x)
    11. 对下取整:Math.floor(x)
    12. 取最大:Math.max(1, 2, ...)变形:Math.max.apply(Math, arr)
    13. 取最小:Math.min(1, 2, ...)
    14. 第三方插件BigJs,num = new Big(num) // 输入一模一样,但是不会出现精度丢失
    15. 随机色:const color = "#" + parseInt(Math.random() * 0xfffff).toString(16)

    2、RegExp 正则?

    正则没事连两下,不然会忘记

    • 创建一个正则:const reg = new RegExp('test')
    • 或者:const reg = /test/
    1. 匹配:reg.test(src); 判断src是否含有匹配reg的字段,反boolean

    2. 搜索:src.search(reg); 搜索src是否还有匹配reg的字段,有反下标,没有反-1

    3. 提取:src.match(reg); 提取src所有匹配reg的字段,反回数组

    4. 提取:reg.exec(src); 提取src匹配reg的第一个字段,反结果

    5. 替换:src.replace(reg, otherSrc); 将src匹配reg的字段换成otherSrc,返回新的字符串

    6. 替换:

      src.replace(reg, searchSrc => {
          return  `<span style='color:red'>${searchSrc}</span>` 
      })
      
    • 全局模式标签:g; /test/gnew RegExp('text', 'g')

    • 不分大小写标签:i; /test/i

    • 多行模式标签:m; /test/m

    • 混合:/test/gi

    • / 正则元字符 /

    1. 以谁开头:^; 如:/^H/i
    2. 以谁结尾:$; 如:/H$/
    3. ?复合写法:以h开头,以d结尾。中间数字(中间应该必须有东西) /^h[\d]+w$/ig
    4. 匹配数字:\d
    5. 匹配非数字:\D
    6. 匹配字母数字下划线:\w
    7. 匹配非字母数字下划线:\W
    8. 匹配空白:\s
    9. 匹配非空白:\S
    10. 匹配全部:.
    • / 正则限定符 /
    1. 重复无限次[0, +∞):*; 如:/[0-9]*/

    2. 最低1次[1, +∞): +; 如:/[0-9]+/

    3. [0, 1]次: ?; 如:/[0-9]?/

    4. 重复n-1次: {n}; 如:/[0-9]{9}/

    5. [n, +∞):{n, }; 如:/[0-9]{9,}/

    6. [n, m-1]: {n, m}; 如:/[0-9]{5, 9}/

    下一篇:没有了