zoukankan      html  css  js  c++  java
  • javascript中return的设计缺陷

    function a(){
      return {
        "bar":1
      }
    }
    a()

    返回:{bar: 1}
    function b(){
      return 
        {
        "bar":1
      }
    }
    b()
    
    报错:Uncaught SyntaxError: Unexpected token :

    原理:

    把大括号{放在一行的结尾而不是下一行的开头,因为它会避免在JavaScript的return语句中的一个可怕的设计错误。

    javascript有一个自动修复机制——在程序可能有缺陷的时候,自动插入分号补全,但这个机制很不靠谱,常常会掩盖一些错误。

    比如:

    return {
    hello:"world";
    };
    正常的理解是返回一个字面量构成的对象。

    但是如果这么写:

    return
    {
    hello:"world"
    };
    javascript的自动补全会将上面代码变成:

    return;
    {
    hello:"world"
    };
    实际返回一个undefined,这种错误不会有任何提示。

  • 相关阅读:
    锁,你知多少呢?
    成长于我
    js write google广告
    项目三边六拍
    IT新人培养计划
    网站变灰色 代码
    职业人生
    ASP.NET 4 新特性之一二
    .net 例子
    A Better sp_who2 using DMVs (sp_who3)
  • 原文地址:https://www.cnblogs.com/lezuw/p/11592016.html
Copyright © 2011-2022 走看看