base

1.firebug:
console.log(someVar);//控制台打印变量信息
clear();//清除控制台信息
toFixed();//去掉额外的小数部分并且将数字转换为字符串;如:var  n=1.33333; var m=n.toFixed(2);//m=1.33;
indexof()或lastIndexof();寻找数组元素值的新方法,返回找到的数组值的索引位置,如果该值在数组中不存在,则两个方法都返回-1.
2.在Javascript中,条件中的下列值都被视为假,其他值都为真:
  false ,0 ,空串 ,NaN(非数字) ,null ,undefined 
3.typeof 运算符返回一个代表对象类型的字符串。
        typeof 返回值
 类型        返回值
 Undefined   undefined
 Null        object(对象)
    Boolean     boolean 
 Number      number(数字)
 String      string
 Array       object(对象)
 Object      object
4.创建并使用数组
  方式一:
           var  myVar=new Array();//创建一个空数组
           var  myVar=new Array(1,2,3);//创建数组并初始化数组
  方式二(文本语法):
           var  myVar=[];//创建一个空数组
     var myVar=[1,2,3];//创建数组并初始化数组
     var myVar=[1,'Fred','Daphne',2,false];//创建混合存储类型的数组,不常见。
        (1)length属性可以访问数组使用长度
     (2)可以使用数组的索引来读取单独的数组元素或者为数组元素赋值.
        (3)删除数组和数组元素。delete myVar; //删除数组; delete myVar[n];//删除数组myVar的第n个元素。length值未变,该元素值被改为undefined.
  (4)添加数组元素的替代方法
         ①把数组当作栈或队列
        "栈"
     push(arg0,arg1,...,argn);//一次可以添加一个或多个参数,这些参数代表所添加的值,添加在数组的最后。
                              //注意,如果添加的参数本身是数组,则数组原封不东的添加到数组中(也就是创建一个多维数组)
     pop();//弹栈。length减1;
     “队列”
     unshift(arg0,arg1,...,argn);//它强制新元素出现在数组的开头,必要时将现有元素向后移动。(比push()方法慢)
     shift();//从数组中删除第一个元素并返回它,所以改制可以被赋予另一个变量或者以其他方式使用.length减1;
   
   ②concat(arg0,arg1,...,argn);//该方法进行数组的连接,可以指定一个或多个参数,
              //注意:和push()方法不同,在参数中出现的数组会被展开为单独的元素。
  (5)splice(arg0,arg1.arg2,...,argn);//从数组中间剪切或添加新元素.
                                       //参数1:表示起始位置,参数2:要删除的元素数量 ,参数三及后续的参数:可选,表示新添加的元素
5.创建并使用对象
        方式一:
       var  obj=new Object();//创建了一个空对象;
  方式二:
       var  obj={};//创建了一个空对象;
  (1)为对象添加属性,使用格式:“属性:值”,属性之间使用逗号分隔。
        var obj={num:6,title:'complex variable types'};
       或
     var obj=new Object(num:6,title:'complex variable types');
  (2)访问对象属性或为属性重新设置
       ① obj.title//访问title属性       
    ② obj['title']//访问title属性
       ③   obj.title='new value';或obj['title']='value'//设新值
  (3)确认对象是否有某个属性
      ①使用 objName.propertyName:
           if(obj.title){//已经存在
     ...
     }
    注意:这种方法可能因为属性值被当做false处理而出现问题,例如属性值为空字符串或0等情况。
   ②使用in运算符。语法: '属性' in objctName
     if('title' in  obj ){//已经存在
     ...
     }
   ③使用typeof运算符,条件是已知属性的类型
    if(typeof obj.title == 'string'){//已经存在
    ...
    }
  (4)访问所有对象
    for...in ,语法格式:
        for(var p in  obj)
     {  //use obj[p];//
     }
  注意:首先,属性不会以任何特定顺序返回,甚至不会以对象创建时列出的顺序返回、
        其次, 根据对象不同,可能最终看到并未创建的属性(这种情况与javascript的原型继承性有关)
     第三, 必须使用数组标记法来寻找每一个对象的属性值
     最后, for...in是比较慢的一种结构,应该只用在没有其他循环可用的时候
  (5)删除对象及属性
               delete   obj;//删除对象
               deleted obj.title;//删除对象属性title 
6.字符串
      (1)创建字符串
           var   str='hello'或"hello";//创建了字符串 “hello” 
        常用属性length;获取字符串的长度
   (2)字符串拆分
      charAt(index);//引用单个字符。index为该字符在字符串中的位置。默认第一个字符位置为0;
   indexOf(chars,from_start);//返回第一个找到的字符(或字符串)的索引值(位置),没找到返回-1.
                        //第一个参数:1个或多个指定字符;第二个参数:可选,表示在字符串搜索的起始位置。
   lastIndexOf(chars,from_end);//反向遍历字符串,其他和indexOf()一样。
         slice(start,end);//从字符串中取出子串 ,返回一个新字符串;
                           //第一个参数:剪切开始的位置;第二个参数:可选,剪切结束的位置。省略,则表示子串持续到字符串结束位置。  
   subString(start,end);//功能同slice()方法,不过有一些不可预期的表现
   subStr(start,Num);//功能同slice()方法;
                     //第一个参数:子串起始位置;第二参数:包含在子串里的字符数。
7.正则表达式
    在javascript中,正则表达式是一种特殊类型,和Number,String,Date一样,和javascript中的大部分值类型相同。
     (1)创建正则表达式
       方法一:var  regexp='pattern';//模式上不要加引号,结束斜杠之后,可以设置影响正则表达式表现的标志(如i,它使模式大小写不敏感)
          如:var zip=/^d{5}(-d{4})?$/ ;//匹配美国邮政编码的模式
           var letter=/[A-Za-z]/i;//验证一个大小写不敏感的字面
    方法二:创建一个类型为RegExp的新对象.容易造成其他语法问题,很少使用此方法
  (2)正则表达式函数
           有了正则表达式对象之后,可以使用它进行模式和字符串的比较
               RegExp对象的test()
         RegExp对象的exec()
         String对象的search()
         String对象的match()
   假定已创建了正则表达式对象r,打算测试字符串s,可以如下使用:
     r.test(s);//测试正则表达式最常用的方法,最常用,速度最快
     r.exec(s);//返回找到的匹配字符串
     s.search(r);使用方式与test类似,表现类似indexof(),如果部分或者整个字符串匹配正则表达式,返回匹配开始的位置,不匹配返回-1
     s.match(r);//基本用法类似exec(),但在使用分组时不同。
  使用举例:
      var zip=/^d{5}(-d{4})?$/;
   zip.test('12345');//返回true
   zip.test('12345-6789');//返回true
   zip.test('12345b');//返回false
    
      
        
    
   
   
   
           
           
           
           
           
           

原文地址:https://www.cnblogs.com/xiaowei-blog/p/3949667.html