码迷,mamicode.com
首页 > 编程语言 > 详细

Javascript·常见错误及用法习惯(新手入门)

时间:2017-12-29 16:20:06      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:调用   bubuko   john   创建   alt   highlight   length   需要   class   

数据类型

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()只是个方法,没有必要生成对象。

 

Javascript·常见错误及用法习惯(新手入门)

标签:调用   bubuko   john   创建   alt   highlight   length   需要   class   

原文地址:https://www.cnblogs.com/lailer132/p/8134901.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!