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,这种错误不会有任何提示。

  • 相关阅读:
    37.js----浅谈js原型的理解
    iOS
    iOS
    iOS
    python3
    ios
    iOS
    python3
    python3
    iOS
  • 原文地址:https://www.cnblogs.com/lezuw/p/11592016.html
Copyright © 2011-2022 走看看