zl程序教程

您现在的位置是:首页 >  前端

当前栏目

javascript基础概要复习(类型、数组、函数、面向对象)

JavaScript基础数组 函数 类型 面向对象 复习 概要
2023-09-14 09:08:49 时间

提要:主要是复习一下,增加Javascript基础理解,以及函数、面向对象的定义使用,为进一步开发使用Nodejs做基础

javascript是弱类型的动态语言。

1.基本数据类型

  1.1 随着变量的赋值而类型相应改变
    var name='hello'; //string
    name=12;      //number
    name=true     //boolean
    name=null     //null  typeof返回的类型是 object定义了,但值为null
    undefined     类型    一般指没有定义的变量,null指定义了但是值为null 注意与null区别

  1.2 类型之间转换:parseInt()、parseFloat()、

    3 种强制类型转换如下:
      Boolean(value) - 把给定的值转换成 Boolean 型;
      Number(value) - 把给定的值转换成数字(可以是整数或浮点数);
      String(value) - 把给定的值转换成字符串;

  1.3 isNaN() 函数用于检查其参数是否是非数字值,非数值返回true;

 2.程序流程控制  

  2.1 条件语句   

    if else语句    
      if(name==='json'){//=== 不仅仅值相等,类型还要相同     
        console.log(true);    
      }   

    switch case 语句  、等

  2.2 循环语句   

    for语句    for(var i=0;i<10;i++){     //循环体    }

    while等

3.javascript 数组用法  

  定义:   

    1.var website=[];   
    2.var website=['aaaa',222,false];   
    3.var website=new Array();      
      website[0]='www.baidu.com';   
    4.var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度   
    5.var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); //创建一个数组并赋值  

  添加:   
    1.索引添加    
      website[0]='www.baidu.com';  
    2.push 向数组中最后一个添加 返回数组长度    
      arrayObj. push([item1 [item2 [. . . [itemN ]]]]);    
      website.push('www.baidu.com');    
      website.push(false);   
    3.unshift 向数组最前插入,返回数组长度    
      arrayObj.unshift([item1 [item2 [. . . [itemN ]]]]);    
      website.unshift('wwww.baidu.com');    
      website.unshift(222);   
    4.splice 将一个或多个新元素插入到数组的指定位置,插入位置的元素自动后移,返回""。    
      arrayObj.splice(insertPos,0,[item1[, item2[, . . . [,itemN]]]]);  

  删除   
    1.arrayObj.pop(); //移除最后一个元素并返回该元素值   
    2.arrayObj.shift(); //移除最前一个元素并返回该元素值,数组中元素自动前移   
    3.arrayObj.splice(deletePos,deleteCount); //删除从指定位置deletePos开始的指定数量deleteCount的元素,数组形式返回所移除的元素  

              4.删除指定元素值         

Array.prototype.remove = function(val) {
    var index = this.indexOf(val);
    if (index > -1) {
        this.splice(index, 1);
    }
};

  读取 遍历  

    1.索引读取
    2.for(var i=0;i<website.length;i++){    console.log(website[i]);   }  
    3.for in

  修改   
    website[0]='www.shine.com';  

  拷贝   
    arrayObj.slice(0); //返回数组的拷贝数组,注意是一个新的数组,不是指向   
    arrayObj.concat(); //返回数组的拷贝数组,注意是一个新的数组,不是指向  

  排序   
    arrayObj.reverse(); //反转元素(最前的排到最后、最后的排到最前),返回数组地址   
    arrayObj.sort(); //对数组元素排序,返回数组地址  

  字符串化   
    arrayObj.join(separator); //返回字符串,这个字符串将数组的每一个元素值连接在一起,中间用 separator 隔开。   
    toLocaleString、toString、valueof可以看做join特殊用法。  

  截取和合并   
    1.arrayObj.slice(start, [end]); //以数组的形式返回数组的一部分,注意不包括 end 对应的元素,如果省略 end 将复制 start 之后的所有元素   
    2.arrayObj.concat([item1[, item2[, . . . [,itemN]]]]); //将多个数组(也可以是字符串,或者是数组和字符串的混合)连接为一个数组,返回连接好的新的数组

  这里需要注意length,数组的长度是一个,读写属性,所以说数组的长度,不仅仅是实际存有数据量控制,还能改变数组的length,来改变数组的长度及实际存储值。

  prototype几乎每个元素都有此属性,主要作用:使您有能力向对象添加属性和方法。

4.函数  

  1.关键字 function  

  2.普通定义
    function methodName(name,male){}  

  3.匿名函数   
    var remove=function(tmp){    
      console.log(tmp);    
      return tmp;   
    }   
    使用 var result=remove('jiandanba');  

  4.使用函数做参数,调用函数,回调函数   
    function paramMethod(p1,p2,p3){  
      //to do something
    }
    function read(p1,p2,callback){
       //to do somethine    
      callback(1,2,3);   
    }
    使用:read("参数1","参数2",paramMethod);

  5.嵌套函数定义   
    function Website(Name,Age,Male){    
      var name,age,male;    
      function set(_name,_age,_male){     
        name=_name;     
        age=_age;     
        male=_male;    
      }
      set(Name,Age,Male);    
      return [name,age,male];   
    }   
    使用:var web=Website('zhang',11,true);   console.log(web);

5.面向对象用法  (对象中两大元素,属性,方法)

  1.基本定义:
    var Person={};    
    Person.name='zhang';  
    Person.age=123;  
    Person.male=true;  
    Person.init=function(tmp){
      console.log(tmp);
    }  
    Person.setName=function(_name){
      name=_name;
    }  
    Person.getName=function(){
      return this.name;
    }  
    console.log(Person);

  2.定义 对象直接量  
    var Person={   
      name:'zhang',   
      age:111,   
      male:false,   
      setName:function(_name){    
        this.name=_name   
      },   
      getName:function(){    
        return this.name;   
      }  
    }  
    使用:以上两种其实几乎是一样的:Person.getName();  

  3.定义 定义函数对象   
    var Person= function() {    
      var name= "";    
      this.getName = function() {     
        return this.name;    
      };    
      this.setName = function(v) {     
        this.name = v;   
      }   
    }; 

   4  原型继承   
      var Person= new Function();   
      Person.prototype = {    
        name : "",    
        getName : function() {     
          return this.name;    
        },    
        setName : function(v) {     
          this.name = v;    
        }   
      };  
    使用:3、4使用类似,var p1=new Person();  

  5  工厂模式   
    function loadPerson() {    
      var tmp = new Object();    
      tmp.name= "";    
      tmp.getName = function() {     
        return tmp.name;    
      };    
      tmp.setName = function(v) {     
        tmp.name = v;    
      };    
      return tmp;   
    }
    其实这个同第一个相似。这里同时还可以扩展其他设计模式,只是提供一种方式方法  
    使用:var p1=loadPerson();