zoukankan      html  css  js  c++  java
  • JS高级部分(个人认为)

    首先,我们要知道JS的数据类型主要分为两大类:

    1.原始数据类型:

    1)boolean

    2)string

    3)number

    4)null

    5)undefined

    2.引用数据类型:

    1)宿主       -->Bom,Dom

    2)内置       -->Globe Math

    3)原生       -->function,array,object...

    原始型数据类型和引用型数据类型的差距:
    两者差距在于对其的储存方式不同,原始型数据类型是用一个存储点来储存,所以传递过去的直接是数据的内容,而引用型数据类型是用一排连续的储存点来进行储存,不能直接一次传送过去所有的内容,是按照顺序一个接一个的进行存储,所以如果在传递过程中发生了数据的改变,那么被传递的一方也会跟着改变~

    我们知道,如果要在一个函数中使用一个定义的变量,要么是在全局中定义,要么在该函数中定义,如果该变量在另一个函数中的话,就比较麻烦了(至少以前我是不知道该怎么做的)。

    所以我们可以用一种闭包的方法来实现,下面是该方法的基本用法:

    function main(){

      var i=0;

      var out=function(){

        i++;

        console.log(i);

      }

      return out;

    }

    var bpack=show();

    bpack();

    运行的结果是每一次运行就会实现i++的效果,而并不会每次都让i=0。也就是说,当我们执行函数

    bpack()的时候,可以将i独立出来,并不受main()里面i的影响。就可以实现在两个函数中相互调用变量。

    从例子中,我们可以看出,闭包的原理就是在一个函数中return另一个函数,然后再调用主函数,那么就可以使用其中的变量了。

    匿名函数:其实也是闭包的一种。

    (function(i){console.log(i)})(x);

    结果为x。

    函数的继承:

    function game(){

      this.gtime=100;

      this.action=function(){};

    }

    function gamer(){

      this.action=function(){

        console.log("run")

      }

    }

    gamer.prototype=new game();

    var gamer1=new gamer();

    console.log(gamer1);

    gamer1.action();

    原型链:

    new gamer()先找到原型(如果有则执行,没有就不执行),执行原型里面的代码,再找原型的原型,也就是最大的object对象...再执行自己的代码。

    数据运算:

    加好两端如果有字符串,就按照字符串拼接处理,如果没有就按照算数运算处理。

    减号两端都是按照算数运算处理。

  • 相关阅读:
    luogu3810 【模板】三维偏序(陌上花开)
    POJ 1704 Georgia and Bob(阶梯博弈)
    URAL 1004 Sightseeing Trip(floyd求最小环+路径输出)
    BZOJ 1064: [Noi2008]假面舞会(dfs + 图论好题!)
    Codeforces Round #332 (Div. 2) D. Spongebob and Squares(枚举)
    HDU 4313 Matrix(并查集)
    HDU 4312 Meeting point-2(切比雪夫距离转曼哈顿距离)
    HDU 4311 Meeting point-1(曼哈顿距离最小)
    HDU 4309 Seikimatsu Occult Tonneru(最大流+二进制枚举)
    HDU 4303 Hourai Jeweled(树形DP)
  • 原文地址:https://www.cnblogs.com/zaxxm/p/4068683.html
Copyright © 2011-2022 走看看