JS基础到高阶知识点总结(每天更新中)

JS基础点总结

运算符

 // %取两数之间的余数,就是除不尽后得到的一个最终数
    let a = 7;
    let b = 4;
    console.log(a % b);//3
    // 加 
    let c = 2
    let d = 3
    let d1 = c + d
    console.log("求和" + d1);//5
    // 减
    let e = 6
    let f = 3
    let f1 = e + f
    console.log("求减" + f1);//3
    // 乘
    let g = 5
    let g2 = 5
    let g3 = g * g2
    console.log("求乘" + g3);
    // 除法/
    let s = 8
    let s1 = 4
    let s2 = s / s1
    console.log('除' + s2);//2

三元运算

①. 三元运算;成立执行第一个,不成立执行第二个

    let a = 2021
    let b = 2022
    let c = 2023
    a > b ? lert("a大") : alert("b大")
    // 比较三个数值
    let max = a > b ? a : b
    let ss = max > c ? max : c
    console.log(ss);
    // && 和 || 的优先级   &&高
    let result = 1 || 2 && 3     //如果&&高,返回1,如果||高返回3
    console.log(result);  //1
    // 可以使用()来提升优先级
    let result2 = (1 || 2) && 3   //这里先执行||,1||2 结果是1, 1&&3结果是3
    console.log(result2);//3

代码块

①. JS中代码块,值具有分组作用,没有其他作用
代码块的内容,外部是完全可见的
②. 注意,这里代码块用var外面可以访问到,用let不行,var变量提升,let是有块级作用域的
③. let 则是有块级作用域的麻,let 如果没有自己定义局部的 let 那么就用全局定义的 let,局部的 let 能够覆盖掉全局的 let

    let a = 111
    {
   
      console.log(a); //111
      console.log("你好");
      let b = 222
    }
    console.log('b=' + b);//b is not defined    let块级作用域的问题,外部访问不到
 

自增

    let n = 1
    let n2 = 2
    let n3 = n2 + ++n  //这里计算线把n自增,就是先执行++n
    console.log(n3);//4

比较

①. 如果是比较,计算机会把数据类型自动转换
②. 如果是
=比较,则不仅比较数值,还要比较数据类型

    let a = 1
    let o = 6
    let c = "6" //
    console.log(o == c);//true
    console.log(o === c);//false ===比较不会自动转换数据类型

或与非

①. && 逻辑与 || 逻辑或

②. && 表示两边都必须成立才继续执行,第一个成立直接返回第二个

    let a = 1
    let b = 3
    if (a == 1 && b == 1) {
     //
      console.log("都为1");
    } else (a == 1 || b == 1)
    console.log("满足一个");
    function star(num) {
   
      return "*".repeat(num || 1) //第一个满足直接返回,后面的不再执行
    }
    console.log(star(6));

数据基本类型和引用类型

1. 基本数据类型

①. String number null undefined boolean

②. 引用数据类型 Object,Array,function,symbol
对象是保存到堆内存中,每创建一个新的对象,就会在堆内存中开辟一个新的空间
而变量(栈中)保存的是对象的地址,地址指向堆的内存中数据
③. JS中的变量是保存在内存中的
基本数据类型的值直接在栈内存中存储
值与值之间是独立存在的,修改一个变量不会影响其他的变量

// 案例一,基本数据类型
  var a = 123;
  // 这里是把a数据拷贝了一份给b,后期改变不影响
  var b = a;
  a++
  console.log(a);//124
  console.log(b);//123

  // 案例二;对象引用类型
  var obj = new Object();
  obj.name = "javascript"
  // 这一步是把obj的地址交给了obj2,obj2修改数据obj也会修改
  let obj2 = obj
  obj2.name = 'java'
  console.log('obj=' + obj.name); //  java
  console.log('ob2=' + obj2.name);//  java
  obj2 = null//这里是把obj2的引用地址设置为null,和obj不再有联系
  console.log(obj.name);//java
  console.log(obj2);//null
总结:基本数据类型保存的是数值,引用类型保存的是地址

函数

函数实参可以是任意数据类型,可以是对象,也可以是参数
  // 案例一:函数
  function fun() {
   
    console.log("函数");
  }
  fun()//函数

  //案例二:带参函数
  function sum(a, b) {
   
    console.log(a + b);
  }
  sum(6, 6)//12

  // 案例三:奇数偶数
  function Ou(a) {
   
    return a % 2 == 0
  }
  let b = Ou(6)
  console.log(b);//偶数

  // 案例四:计算圆的面积
  function Mj(r) {
   
    return 3.14 * r * r
  }
  let result = Mj(10)
  console.log(result);//结果是3.14*10*10   314

  // 案例五:参数保存在对象里调用
  function XYJ(s1) {
   
    console.log('我是' + obj.name + '---' + obj.age + '周年了');
  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值