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

数据类型

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

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

时间: 2024-10-10 06:45:59

Javascript·常见错误及用法习惯(新手入门)的相关文章

javascript常见错误

初学Javascript,每天总是被很小的问题折磨半天,今晚就有好几个小问题. 第一:全部使用双引号造成匹配错误 <input type="checkbox" onmouseover="document.getElementById("test").style.display="none":"/> 改行一直报错误:unexpected toke “}”  检查半天也没有发现错误,对照发现视频上是使用单引号 <

javascript新手入门必读书籍推荐

在当下,极多的程序员是通过自学来完成入门以及提升的.对于JavaScript的学习来说,同样不例外.许多新手入门javascript选择通过视频教程或者论坛交流的方式进行学习,这种方式固然较为轻松和便捷,但在知识的获取上有些碎片化,对于新手来说不是很好. 在javascript的入门阶段,通过书籍来学习对于新手来说才是最好的手段.书籍的学习固然比较枯燥,但是也是最权威,最系统化的,对于新手来说能够快速的完成基础知识的奠基,而对于之后进一步的提升也是大有裨益.这里笔者就结合自身经验为各位javas

Docker新手入门:基本用法

Docker新手入门:基本用法 1.Docker简介 1.1 第一本Docker书 工作中不断碰到Docker,今天终于算是正式开始学习了.在挑选系统学习Docker以及虚拟化技术的书籍时还碰到了不少麻烦,主要就是没有特别经典的书!Docker的<第一版Docker书>和<Docker技术入门与实战>普遍评价不高,而<Docker开发实践>和<Dockeru源码分析>又是2015年最近才出的,评价不是很多.综合看了下,最终还是选择了<Docker开发实

Android Studio 新手常见错误:Gradle DSL method not found: &amp;#39;runProguard()&amp;#39;

在Android Studio上执行Github上的某Android开源项目,提示报错: Error:(20, 0) Gradle DSL method not found: 'runProguard()' 请教度娘后.须要将app下的build.gradle文件里: buildTypes { release { runProguard false // 已经被废弃而且停止使用了 //...... } } 替换为例如以下就可以: buildTypes { release { minifyEnab

JavaScript中易犯的小错误-------常见错误五:低效的DOM操作

JavaScript中易犯的小错误-------常见错误五:低效的DOM操作js中的DOM基本操作非常简单,但是如何能有效地进行这些操作一直是一个难题.这其中最典型的问题便是批量增加DOM元素.增加一个DOM元素是一步花费很大的操作.而批量增加对系统的花销更是不菲.一个比较好的批量增加的办法便是使用 document fragments :var div = document.getElementsByTagName("my_div");var fragment = document.

JavaScript中易犯的小错误-------常见错误三:内存泄露

国庆放假,今天开始继续!!!!!!!!!!! JavaScript中易犯的小错误-------常见错误三:内存泄露 内存泄露在js变成中几乎是一个无法避免的问题.如果不是特别细心的话,在最后的检查过程中,肯定会出现各种内存泄露问题.下面我们就来举例说明一下:var theThing = null;var replaceThing = function () {     var priorThing = theThing;     var unused = function () {       

JavaScript中易犯的小错误-------常见错误四:比较运算符

JavaScript中易犯的小错误-------常见错误四:比较运算符JavaScript中一个比较便捷的地方,便是它可以给每一个在比较运算的结果变量强行转化成布尔类型.但是从另一方面来考虑,有时候它也会为我们带来很多不便,下面的这些例子便是一些一直困扰很多程序员的代码实例:console.log(false == '0');console.log(null == undefined);console.log(" \t\r\n" == 0);console.log('' == 0);

JavaScript中易犯的小错误-------常见错误七:原型继承问题

JavaScript中易犯的小错误-------常见错误七:原型继承问题 很大一部分的js开发者都不能完全掌握原型的继承问题.下面具一个例子来说明:BaseObject = function(name) {if(typeof name !== "undefined"){ this.name = name; }else{ this.name = 'default' } };这段代码看起来很简单.如果你有name值,则使用它.如果没有,则使用 ‘default’:var firstObj

JavaScript中易犯的小错误-------常见错误二:传统编程语言的生命周期误区

JavaScript中易犯的小错误-------常见错误二:传统编程语言的生命周期误区另一种易犯的错误,便是带着其他编程语言的思维,认为在JS中,也存在生命周期这么一说.请看下面的代码:for (var i = 0; i < 10; i++) { /* ... */ } console.log(i);如果你认为在运行console.log() 时肯定会报出 undefined 错误,那么你就大错特错了.我会告诉你其实它会返回 10吗.当然,在许多其他语言当中,遇到这样的代码,肯定会报错.因为i明