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

来源:互联网 发布:校园网络组建方案设计 编辑:程序博客网 时间:2024/06/07 19:58

微信小程序开发经验总结

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

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 不含stopstringObject.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.向上取整,有小数就整数部分加1Math.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=3function 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() 方法可返回当天的日期和时间。
原创粉丝点击