老鸟学Javascript - 第一弹

原文:http://h01mes.com/veteran-new…

我依然记得在一个ajax小项目踩到跨域题目(CORS)的坑,最后用Chrome插件处理。由此对Javascript这个新鲜的言语留下很深的印象。如今,Javascript在前后端都获得非常大的影响力,已然成为了全栈的同义词。所以我决议仔细搞一搞这个言语。顺带一提,跨域能够用Moesif处理。

本文不会议论低级的编程题目,比方if else,for轮回,已面向对象。假如您还不熟悉这些,请先出门左转,网上有足够多的材料议论这些迥然不同的观点。

本文重要关注一些离散的,即学即用的知识点,和一些在一样平常编程中轻易踩得坑。

用==和===举行比较

==会对运算对象举行范例自动转换,所以能够以为==等同于值比较。
===不做范例转换,所以假如比较对象的范例不一致,===直接返回false。有些文章说===是援用比较,个人以为并不正确。
例子:

<html>
<head>
  <script>
//comparing string with number
      var res = "1" == 1;
      alert(res);

      res = "1" === 1;
      alert(res);

//comparing two special type with the same value
      res = null == undefined;
      alert(res);

      res = null === undefined;
      alert(res);

//comparing number with object
    var obj = new Number(123);
    res = 123 == obj
    alert(res)

    res = 123 === obj
    alert(res)

  </script>
</head>
<body>
</body>
</html>

运转效果是:

true
false
true
false
true
false

这里,NaN === NaN 永远是返回false。所以我们只能用isNaN()来推断NaN。

===相似于别的言语的==;==则相似于equals()或别的相似函数。所以分别这两个即是符还有点意义。然则下面的这个分别就完全是奇异了。

注:===和==的完全的行动表

《老鸟学Javascript - 第一弹》

《老鸟学Javascript - 第一弹》

泉源:http://dorey.github.io/JavaSc…

用undefined和null来示意空值

简朴来讲,undefined是由Javascript运转时默许赋值给变量的,而null则是由程序员来显式赋值。当程序员给一个变量赋值为null时,一般示意这个变量已不用了。

更多例子:

<html>
<head>
  <script>
    var res;
    alert(res);

    res = null;
    alert(res);
  </script>
</head>
<body>
</body>
</html>

运转效果:

undefined
null

接下来,我们来看看更多关于undefined 的例子:

<html>
<head>
  <script>
  var res = [1,2,3];
  alert(res[10]);

  function doSomething(first, second, optional) {
      alert(optional);
  }
  doSomething(1,2);
  </script>
</head>
<body>
</body>
</html>

运转效果:

undefined
undefined

如今你能够发明,假如一个变量没有被显式赋值,比方,数组越界接见,或许接见没有被传值的参数,javascript运转时会用undefined来弥补这个值。

    原文作者:范锉
    原文地址: https://segmentfault.com/a/1190000010036538
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞