微信小程序开发经验总结(六)

微信小程序开发经验总结

微信小程序开发经验总结(一)
微信小程序开发经验总结(二)
微信小程序开发经验总结(三)
微信小程序开发经验总结(四)
微信小程序开发经验总结(五)
微信小程序开发经验总结(六)
微信小程序开发经验总结(七)

15. 能用上的js知识

string

  • 大小写

    //大写
    string.toUpperCase();
    //小写
    string.toLowerCase();
  • 判空

    var string;
    if (!string) {//空}
  • 长度 string.length

  • 正则

    //大小写字母
    function checkLetter(value){ 
    var str = /^[A-Za-z]*$/;
    if (str.test(value))
     {
       return true;
     }
     return false;
    }
    
    //电话号码
    function checkPhone(phone){ 
      if(!(/^1[34578]\d{9}$/.test(phone))){ 
          return false; 
      } 
       return true;
    }
  • 子字符串

    //含start 不含stop
    stringObject.substring(start,stop) 
  • 格式

    var  str='abc' 
    var  str="abc"

数组

  • push pop

    //push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
    arrayObject.push('other line')
    //pop() 方法用于删除并返回数组的最后一个元素。
    arrayObject.pop()
  • join

    //join() 方法用于把数组中的所有元素放入一个字符串。
    //元素是通过指定的分隔符进行分隔的。
    arrayObject.join(separator)
    arrayObject.join('\n')
  • 排序

    //localeCompare()提供的比较字符串的方法,考虑了默认的本地排序规则  
    var list = [{
          city:'厦门',
          pinyin:'xiamen'
          },
          {
            city: '北京',
            pinyin: 'beijing'
          },
          {
            city: '长春',
            pinyin: 'changchun'
          },
          {
            city: '上海',
            pinyin: 'shanghai'
          }
         ];
        list.sort(function (a, b) {
          return a.pinyin.localeCompare(b.pinyin);
        });
        console.log(list);
    
    //reverse() 方法用于颠倒数组中元素的顺序。
    arr.reverse()
  • 删除

    - //删除起始下标为1,长度为1的一个值(len设置1,如果为0,则数组不变)
    var arr = ['a','b','c','d'];
    arr.splice(1,1);
    console.log(arr);  
    //['a','c','d']; 
    
    //删除起始下标为1,长度为2的一个值(len设置2)
    
    var arr2 = ['a','b','c','d']
    
    arr2.splice(1,2);
    
    console.log(arr2); 
    
    //['a','d']
  • 字符串转数组

    var letters = "*abcdefghjklmnopqrstwxyz".split('');
  • 遍历

    for(var item in arr) {
    document.write(arr[item]+",");
    }

math

  • string转int

    parseInt()
    var j = parseInt("11")
  • 四舍五入

    1.丢弃小数部分,保留整数部分
    parseInt(5/2)
    2.向上取整,有小数就整数部分加1
    Math.ceil(5/2)
    3,四舍五入.
    Math.round(5/2)
    4,向下取整
    Math.floor(5/2)

object

  • 用.为对象添加属性

    obj.username = "allen";
    ??只能添加字符串属性
  • 用关键字delete删除属性

  • []添加属性,功能强大,可以动态添加属性

    demandData.use_trip[date] = detail;
  • 通过原型对象增加属性或者方法

    //方式1:在原有的原型对象上增加属性或者方法
    function Person()
    {
    }
    Person.prototype.add = function(){
    alert(this.name);
    };
    Person.prototype.name = "aty";
    var p1 = new Person();
    p1.add();//aty
    //方式2:重写(覆盖)原型对象
    function Person()
    {
    }
    Person.prototype = {
    add : function(){
        alert(this.name);
    },
    name : "aty"
    }
    var p2 = new Person();
    p2.add();//aty
    
    如果是先创建对象,然后再修改原型,那么如果采用方式1,已经创建的对象能够正确访问修改后的原型;如果采用方式2,已经创建的对象无法访问到修改后的原型。从这个角度来看,显然方式1比方式2更好
    
    原型对象上的所有属性和方法,都会被对象实例所共享
    
    a:原型对象的作用,就是定义所有对象实例所共享的属性和方法。
    
    b:prototype,对于构造函数来说,它是一个属性;对于对象实例来说,它是一个原型对象。

that=this

  • 这属于 JavaScript 的设计缺陷,正确的设计方式是内部函数的 this 应该绑定到其外层函数对应的对象上,为了规避这一设计缺陷,聪明的 JavaScript 程序员想出了变量替代的方法,约定俗成,该变量一般被命名为 that。

  • var that = this;

    var point = { 
    x : 0, 
    y : 0, 
    moveTo : function(x, y) { 
      var that = this; 
      // 内部函数
      var moveX = function(x) { 
      that.x = x; 
      }; 
      // 内部函数
      var moveY = function(y) { 
      that.y = y; 
      } 
      moveX(x); 
      moveY(y); 
      } 
    }; 
    point.moveTo(1, 1); 
    point.x; //==>1 
    point.y; //==>1

const var let val

  • const定义的变量不可以修改,而且必须初始化

    const b = 2;//正确
    // const b;//错误,必须初始化 
    console.log('函数外const定义b:' + b);//有输出值
    // b = 5;
    // console.log('函数外修改const定义b:' + b);//无法输出 
  • var定义的变量可以修改,如果不初始化会输出undefined,不会报错。

  • let是块级作用域,函数内部使用let定义后,对函数外部无影响。

    let c = 3;
    console.log('函数外let定义c:' + c);//输出c=3
    function change(){
    let c = 6;
    console.log('函数内let定义c:' + c);//输出c=6
    } 
    change();
    console.log('函数调用后let定义c不受函数内部定义影响:' + c);//输出c=3
  • val js原生的没有val方法,val方法一般都是jquery的或者自己定义的

time date

  • new Date()

    new Date(milliseconds) :把毫秒数转换为Date对象
    new Date(dateStr) :把字符串转换为Date对象
    1) yyyy/MM/dd HH:mm:ss (推荐):若省略时间,返回的Date对象的时间为 00:00:002) yyyy-MM-dd HH:mm:ss :若省略时间,返回的Date对象的时间为 08:00:00(加上本地时区)。若不省略时间,此字符串在IE中会转换失败! iphone6s 失败
    new Date(year, month, opt_day, opt_hours, opt_minutes, opt_seconds, opt_milliseconds) :把年月日、时分秒转换为Date对象
    
    1new Date("month dd,yyyy hh:mm:ss"); 
    2new Date("month dd,yyyy"); 
    3new Date(yyyy,mth,dd,hh,mm,ss); 
    4new Date(yyyy,mth,dd); 
    5new Date(ms); 
    Date() 方法可返回当天的日期和时间。

你可能感兴趣的:(微信小程序)