网站开发基础知识篇二 JavaScript知识点

"应该说它是一门非常简单的语言,又是一门非常复杂的语言,说它简单,是因为学会它只需片刻功夫;而说他复杂,是因为要真正掌握它需要数年时间"。(引自《JavaScript高级程序设计》)。因为此前已经掌握了不少高级语言,这篇主要记录Js的特点和知识点。

1.Js是一种弱类型,解释执行的语言。

   弱类型是说它的数据类型不像C/C++那样有严格的short,int ,long,double,char,String(C++/Java)等等的具体类型,只要使用var声明,可以存储任何类型的数据。

  这里也就要提一下js的六种数据类型Undefined/Null/Boolean/Number/String/Object

  这里建议把变量初始化为null,而且在确定不用改变量/对象后将其赋为null,这样可以手动释放资源,提高程序运行效率。

  解释执行是指浏览器负责解析js代码并执行,这里会单独开一章,js的执行过程。

2.在js中可以把数组当作栈和队列使用

  栈方法:

   var colors = new Array();         var count = colors.push("red"); var item = colors.pop();  

  队列方法

  shift()方法,移除数组中的第一项并返回该项,push和栈方法相同,和push一起使用

  unshift()和pop()一起使用,表示以相反的方向默念队列。

  那下面的厉害的

  splice()方法。这个方法强大的不能更强大,但我看来这个函数,实在有点无聊.一个方法功能丰富真的好吗,如果以单一职责模式来看,显然不好。

  主要用途是向数组的中部加入项,它可以有不同的参数,看起来是js试支持重载的,然而ECMAScript没有重载的概念(既然不支持重载,那么又是怎么实现该方法的?学习后会进行补充)。又可添加多个参数,目测底层代码以可变参数列表实现.

  如果接受2个参数,如果splice(0,2)那么会从0位置开始删除2项

  如果接受多个参数splice(2,1,"hello","world")那么会从2的位置删除一项,然后添加2项

  如果是splice(2,0,"hello","world")那么就直接从2位置处开始添加。

3.作用域(这里和其他高级语言差别很大)

   js的访问范围是从内到位访问的,不能从外到内,比如

  var out;

  function hello(){

       var in;

         var sayHello = function(){

            var inest;

     }

  } 

这里inset可以访问in和out,in可以访问out,而out不能访问内部变量。

js是作用域链,没有块级作用域的

至于为什么,以后在了解之后会在这里补充内容。


补充内容:js没有重载的概念又是如何实现重载函数的?

1.使用arguments.lengh来判断参数长度不同的参数列表。

2.使用 constructor来检测参数类型。

检测到不同的参数列表实现不同的方法。







 


 

你可能感兴趣的:(Web开发)