浅拷贝、深拷贝与闭包,字符串,数组常用方法

目录

浅拷贝与深拷贝

闭包

 

字符串常用方法

数组常用方法

对象常用方法

改变this指向的三种方法

水仙花术

 

求约数

 

 


浅拷贝与深拷贝

闭包

    1. 内部函数可以访问外部函数的值,该值会长期存储在内存中,因此产生了闭包
    2. 闭包是一种保护私有变量的机制,在函数执行时形成私有的作用域,保护里面的私有变量不受外界干扰。 直观的说就是形成一个不销毁的栈环境, 闭包实现了传递值和功能的调用。
    3. 优点:避免变量污染全局,变量的叠加使用
    4. 缺点:因为常驻内存,如果有大量闭包不被释放,容易造成内存溢出

字符串常用方法

  1. 获取字符串长度:length
  2. 获取字符串指定位置的值:charAt() 方法获取到的是指定位置的字符
  3. 查询是否包含某字符:indexOf、lastIndexOf、includes、search。
  4. 字符串拼接:出了使用+号,应该使用concat
  5. 字符串分割成数组:split
  6. 截取字符串:substr()、substring()和 slice()
  7. 字符串大小写转换:toLowerCase转小写、toUpperCase转大写
  8. 字符串转数字:parseInt转整数、parseFloat转小数

数组常用方法

    1. 合并数组:concat
    2. 指定字符数组转字符串:join
    3.  添加元素操作:push()尾部 和unshift()头部 
    4. shift() & pop() 删除元素操作
    5.  sort() 数组排序,改变原数组
    6.  reverse() 反转数组,改变原数组
    7. slice() 截取数组,不改变原数组     //截取: 第2个参数是下标
    8.  splice() 更新数组,改变原数组    //替换:第2个参数是length
    9.  indexOf() & lastIndexOf() 索引方法,不改变原数组
    10.  find() & findIndex() 根据函数内的判断返回找到的数组内的第一个元素。不改变原数组。 (es6新增方法)
    11.  forEach()、map()、filter()、some()、every() 迭代方法,不改变原数组。
    12.  reduce()、reduceRight() 归并方法,不改变原数组
    13.  keys()、values()、entries() 遍历数组方法,不改变原数组。 (es6新增方法)
    14.  includes() 不改变原数组。 (es6新增方法)

对象常用方法

  • 对象合并

    Object.assgin()

  • 对象解构

  • 对象转数组

改变this指向的三种方法

1. call(this,uname,age) 立即执行

2. apply(this,[uname,age]) 立即执行

3. bind(this,uname,age) 不会立即执行

水仙花术

<script>
    // 5**3    Math.pow(5,3)

    function fun() {
      for (var i = 100; i < 1000; i++) {
        //分别取百位、十位和个位的数字
        var sum = parseInt(i / 100) ** 3 + parseInt(i / 10 % 10) ** 3 + parseInt(i % 10) ** 3
        if (sum == i) {
          console.log(i)
        }

      }
    }

    fun()


  </script>

求约数

<script>
    /*用户输入一个数字,在控制台中列出它的所有约数。*/
    // function fun(n) {
    //   for (i = 1; i <= n; i++) {
    //     if (n % i == 0) {
    //       console.log(i)
    //     }
    //   }

    // }

    // fun(12)
    // //1 2 3 4 6 12


    /**安全数**/
    function fun() {
      for (var i = 1; i <= 60; i++) {
        if (i % 7 != 0 && i % 10 != 7) {
          console.log(i)
        }
      }
    }

    fun()
 


  </script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值