数据类型
1.字符串
如果想用双引号来包住一个本身就包含双引号的字符串,就必须用反斜杠对字符串中的双引号进行转义:
var height = "about 5‘ 10\\" tall"; 值得注意的是反斜杠并不是字符串的一部分。您可以去验证一下: alert(height);
2.数组与对象
新手可能会用到关联数组,这种用法不是一个好习惯。这时应该使用通用的对象(Object)
什么是关联数组?
1 var a = array(3); 2 a[0]="my"; 3 a[1]=1995; 4 a[2]=false; //这种是典型的Beatles数组。 5 6 var a = array(3); 7 a[name]="my"; 8 a[age]=1995; 9 a[live]=false; //用字符串代替数字值,这种就叫做关联数组,提高可读性。
既然都是为了可读性创建对象,何必加多一步数组来创建,不妨我们直接用对象(Object)来创建。
1 var a = Object(); //或者 var a = {}; 2 a.name = "my"; 3 a.age = 1995; 4 a.live = false; 5 //还有一种更简洁的写法,也是最常用的写法 6 var a = { 7 name:"my", 8 age:1995, 9 live:false 10 };
3.操作
算术操作法要养成好习惯,把多种操作组合在一起时,要用括号把操作分隔,避免歧义。
1+4*5 -> (1+4)*5 ->1+(4*5)
有时也常把自加写反(新手)再次提醒:“+=”。
4.条件语句
在判断语句if中,习惯性我们都会用{}。如果是语句很少时,可以写在同一行上。
if ( 1 > 2 ) alert("hello world!");
在接下来的H5中的判断操作符,“比较操作符”需要更严谨的写法,尽量写“===”、“!==”。
还有我们常见的逻辑操作符 && 和 || 外,还要注意这种“逻辑非”的操作符 如:“!( num > 10 || num < 5 )”。
5.循环语句
与 if 相似的 while 多了循环,条件成立时就一直循环。还有一种 do{}while(),不管条件是否成立第一次都会执行。
for 循环最常用的就是遍历对象长度(Object.lenght)
var beatles = Array("john","Paul","George","Ringo"); for ( var count = 0; count < beatles.length; count++ ){ alert(beatles[count]); }
6.函数与变量的作用域
理解函数,不如来理解它的意图。让函数体现得更有价值,如我们把它当作一种数据类型来使用:
1 function convertToUSD( CNY ){ 2 var result = CNY * 6.5; 3 return result; 4 } 5 var CNY = 99; 6 var USD = convertToUSD( CNY ); 7 alert( USD ); 8 //输出结果就是把人民币转换成美元。
值得注意的是1行convertToUSD( CNY )不等于6行convertToUSD( CNY ),CNY 是形参 CNY 是实参
function fn( CNY ) -> 封装函数括号内的是形参,也是唯一的。可以理解为函数 function( var CNY ) 给自己定义用的变量。
变量的作用域,我们在函数中声明的变量是局部变量,它只存在于这个函数的上下文。让新手混淆的是全局与局部问题:
1 function square( num ) { 2 total = num * num; 3 return total; 4 } 5 var total = 50; 6 var number = square( 20 ); 7 alert( total ); 8 //要想使得全局 total 不受影响,可以写成如下所示 9 function square( num ) { 10 var total = num * num; 11 return total; 12 } 13 //这里替换上面,全局和局部就同名了,且局部影响不了全局变量
7.New 与 构造函数
当我们加new的时候是 构造对象,不加new 则是普通函数的调用。
1 1 //当想声明几个任务对象时,可能你会一个一个去声明 2 2 var num1 = { name:Tim, age:20, ... }; 3 var num2 = { name:May, age:19, ... }; 4 var num3 = { name:Ken, age:26, ... }; 5 ... ... 6 //一一个声明时数量多,会很繁琐,难维护。 7 //这时我们就得写个函数去构造,也就是new 8 function Person( name,age ) { 9 this.name = name; 10 this.age = age; 11 ... ... 12 } 13 var num1 = new Person( "Tim",20 ); 14 var num2 = new Person( "May",19 ); 15 var num3 = new Person( "Ken",26 ); 16 ... ... 17 18 //如果你只是想写一个方法调用,则不用new它。 19 //如之前的转换美元convertToUSD()只是个方法,没有必要生成对象。