JavaScript 知识点总结-3

来源:互联网 发布:字体管家mac版 编辑:程序博客网 时间:2024/05/01 07:09
while vs. do while vs. for
  while:不确定循环次数,或者循环变量的变化规律不固定
  do while:第一次条件即使不满足,也要执行一次
  for:循环次数确定,循环变量变化规律固定



程序=数据结构+算法。良好的数据结构,可以极大提高程序的执行效率!
对象:凡是存储在堆中的,都是对象!
  使用引用类型的对象:
  使用变量,等效于使用对象的地址;使用对象地址,等效于使用对象本身
API:已经实现的方法!可以直接调用!
null vs undefined:
  null专用于主动释放对象!
  undefined:专用于自动初始化任何未赋值的变量
垃圾回收:js引擎自动销毁不再被引用的对象!
  垃圾回收程序:随js程序运行而后台同时运行
  只要对象还有变量引用,就不回收。

数组(array):
  存储:连续存储多个数据的存储空间
  使用:相当于多个变量的集合
  如何使用:创建,初始化,访问
    创建:数组都是用[]创建出来的。
      2个不限制:1. 不限制元素个数!2. 不限制元素数据类型
      *数组是引用类型的对象*
      var arr=new Array(num);
        new:要在堆中开辟空间!
        Array:ECMAScript标准中的内置类型
        new Array:在堆中创建一个数组类型的存储区域
        (num):初始创建num个元素
      数组中,undefined输出时,变为一个空字符
      null:一个变量没有指向任何对象
      何时使用null:主动释放对象!主动释放的对象不能被找回
  Array API:
    arr.length属性:数组中的元素个数
      访问任意数组的最后一个元素:arr[arr.length-1]
      js中数组可根据程序需要,“自动扩容”,保证程序正常执行
      如果length属性值>旧值,会扩容;反之,缩容(截断)
      栈中的变量 生命周期:和堆完全不同!
      结论:局部变量的生命周期和所在方法的作用域环境栈有关
        作用域创建,局部变量一同创建
        作用域结束,局部变量一同消失
    x.toString()方法:
      任何对象都有toString方法。
      默认用,分隔每个元素  将任何对象转为字符串
    x.valueOf()方法:同toString()
    var str=arr.join("分隔符"):将数组转为字符串。可自定义分隔符!
      用法:将字符拼接为单词或句子  chars.join("")
    var newArr=arr.concat(元素值,[数组],...):将参数拆散成单个元素,追加到数组中。
      *不会修改原数组,只能返回新数组对象*
    var subArr=arr.slice(start,end+1):
      截取数组下标从start开始,到end位置的元素,生成新的子数组对象。
      *含头不含尾*
    arr.splice:删除!插入!替换!
      删除元素:arr.splice(start,count);
      替换元素:arr.splice(start,count,值1,值2,...)
      插入元素:arr.splice(start,0,值1,值2,...)
      返回每次删除元素组成的新数组
      splice:*直接修改原数组*!返回被删除的元素
    arr.reverse():颠倒所有数组元素
    arr.sort():默认升序排列。默认都转为字符串排序!

    数组遍历:对数组中每个元素执行相同的操作
      for(var i=0;i<arr.length;i++){
           arr[i]-->当前元素
      }
    二维数组:数组的元素又是另一个数组对象!
    关联数组:数组下标可以自定义名称!Key/value对儿
      for in:专门遍历关联数组用的!
      for (var key in arr){
           //从第一个元素开始,将元素的key赋值给临时变量key
           arr[key]-->当前正在遍历的元素的值(value)
      }
      关联数组直接量定义方式:
      强调:大括号 {"key1":"value1","key2":"value2",...}

判断字符的种类:unicode范围:
  48-57:0-9 数字字符
  65-90:A-Z 大写字母
  97-122:a-z 小写字母
  19968-40869:汉字

什么是模式匹配:可以设置查找或替换的规则!
何时使用模式匹配:要查找的关键字可能发生有规律的变化。



   
















   










0 0