前端利器—1—转型JS编程

  JS作为前端开发的必备语言工具,虽然JS对非编程人员来说比较容易上手,但是,要真正的精通JS开发,尚且假设学习过c++、java等面向对象语言的一种。因为对oo开发人员,迅速掌握JS的开发要点,是顺利而且容易的。

  JS具备OO语言的一般性,但是,要特别注意JS是一门弱类型的语言,所有的变量定义都由var关键字,其类型的具体选择则根据赋值而定。其次,JS是一门解释型语言,这与c等不同,因此,JS语言需要运行在JS解释器之上。比如SpiderMonkey、Rhino,还有google浏览器下的V8引擎等。

  作为Javascript编程人员初学着,也许有疑惑JS和Java到底是什么关系?其实,二者没有直接关系,JS是netscape推出的,而Java是sun推出的。两者唯一的关系就是名字比较相像而已。

  JS作为一门语言,大量的应用于web开发,特别是web前端开发,即将JS嵌入到web中,就是常常说的客户端的JS。

  作为oo编程人员到JS的转型联系,其编程环境非常简单,抛去复杂的而言,最简单的只要一个记事本就能在你的电脑上运行JS程序。为了工程化,本文编写和调试程序都在Dw和ie8环境中进行,除非特殊需要。

  一.词法结构

  JS和C语言一样是大小写敏感的,但是HTML是大小写不敏感的。良好的编程习惯是JS中的html标记和属性名都以小写字母形式书写。

  JS语句结尾分号可选,但是良好的编程习惯是语句末尾加分号,并换行。

  二.数据类型

  1.数字:JS将所有的数字都表示成浮点类型,采用ieee 745定义的标准64位浮点数。

  2.字符串:转义字符加\  水平制表符\t  换行符  \n  等

   字符串采用+进行拼接,另外字符串作为一个对象,其具有属性和操作,比如length属性,charAt(),substring(),indexOf()等操作。

     数字转换成字符串:数字+字符串,String()函数,数字对象的toString()操作。

     字符串转换成数字:字符串-0,Number()函数,parseInt()函数【截取字符串的整数部分】,parseFloat()函数。

  3.函数:JS中的函数可视为一种数据类型,这和c等其他语言有点不同,所以函数可以作为参数传递给其他函数。

  4.对象:对象是已命名的数据的集合,对象的属性通过点号来使用。对象通过构造函数来创建:var o = new Object();

   特殊的,数组对象、Date对象、正则表达式RegExp对象等。

  三.变量

  JS的变量作用域特殊之处在于:没有块级作用域,在哪儿声明的都是全局有用的。而且在函数体内部,局部变量的优先级高于同名的全局变量。

  好的编程习惯是将变量声明都放在函数开头。

局部变量优先测试
1 var scope = "global";
2 function checkscope()
3 {
4 var scope = "local";
5 document.write(scope);
6 }
7 checkscope();

  四.垃圾回收

  JS采用自动的垃圾回收机制,编程人员不需要考虑释放内存。

  五.JS的执行环境

  JS解释器每次在执行一个函数时,都会为函数创建一个执行环境。JS允许有多个全局执行环境。客户端JS的每个独立的浏览器窗口或同一个窗口的不同帧都定义了独立的全局执行环境,每个帧都允许在自己的执行环境中,具有自己的全局对象,但是,这些对象具有与其他对象链接起来的属性。一个帧中的JS代码可以用parent.frames[0].x来引用第一个帧中的全局变量x。但是这样的操作使得复杂度就上升了,需要考虑安全性的问题。

  六.运算符

  JS的相等运算符 ==,相等的比较带有类型转换。

  JS的等同运算符 ===

  • NaN不会和任何值等同,包括他本身,如果判断一个值是否为NaN,采用isNan()函数。
  • 判断引用的等同,必须是引用的是同一个对象、数组、函数,否则即使属性完全相同也不能等同。
  • 如果两个值都是null或都是undefined,他们等同。

  in运算符:左边是字符串,右边是对象名,判断是否是对象的属性之一。

  delete运算符:删除对象的属性和元素,delete(o.x)

  for...in语句:遍历对象里的属性。

  

for...in
1 var myobject = {x:1,y:"hello",z:4};
2 for(var prop in myobject)
3 {
4 document.write("name:"+prop+";value:"+myobject[prop]+"<br>");
5 }
6 输出:
7 lname:x;value:1
8 name:y;value:hello
9 name:z;value:4

  

  

  一个求阶乘的JS入门实例

前端利器—1—转型JS编程
 1 <body>
2 <script type="text/javascript">
3 var fact = 1;
4 for(var i = 1; i < 10;i ++)
5 {
6 fact = i * fact;
7 document.write(i+"!="+fact+"<br>");
8 }
9 </script>
10 </body>

  结果:

  1!=1
  2!=2
  3!=6
  4!=24
  5!=120
  6!=720
  7!=5040
  8!=40320
  9!=362880

  JS的编程方法可以从c开发人员的经验中一步步引导过来,注意其特殊之处,相信,它将成为web开发的利器。

你可能感兴趣的:(编程)