📜  JavaScript 中的陷阱是什么?

📅  最后修改于: 2022-05-13 01:56:18.562000             🧑  作者: Mango

JavaScript 中的陷阱是什么?

由于其简单性和多功能性,Javascript 确实是一种流行的语言。尽管有很多优点,但 Javascript 是一种有趣的语言,有时会让您感到困惑,尤其是对于那些习惯于传统 OOP 语言的人。

    棘手的部分或“陷阱”(不限于以下)是:
  1. == vs ===
  2. 区分大小写
  3. 解析整数
  4. 自动分号插入
  • ' == ' 与 '===' 不同:并非所有等号的含义都相同。双等号运算符遵循类型强制,这意味着变量的两种数据类型不需要匹配。三等号运算符是一个严格的等号运算符,即它将执行类型强制。
    例子:
    console.log(12 == '12')
    console.log( 12 === '12')
    

    如果在控制台上运行它,它会提供以下输出:

    true
    false

    这意味着当我们使用 '=='运算符时,它会将字符串12 转换为数字并比较这些数字。由于它们是相同的数字,因此它返回一个真值。在 '==='运算符中,它遵循严格类型并检查数据类型和值。由于一种数据类型是字符串,另一种是数字类型,它返回一个假值。

  • 区分大小写:标识符用于命名关键字、变量和函数。像大多数编程语言一样,命名变量的规则也是相同的。由于 javascript 区分大小写,
    标识符的第一个字符可以是字母或美元符号,但不能是数字。两个变量不必相同。例子:
    age ="20";
    Age = "23";
    

    在这里,Age 和 age 是两个独立的字符串变量。

    注意:Javascript 遵循驼峰式表示法。

  • 解析:
      parseInt函数将字符串解析为数字。它有两个参数:
    • 第一个参数 - 获取您要解析的字符串。
    • 第二个参数 - 数字的基数。范围可以是 2 到 36。

    句法:

    parseInt(string, radix)

    在大多数情况下,默认基数是基数 10。但是,如果数字以0x 开头,则假定字符串将被解析为基数 16 ,如果数字以0开头,则假定基数为8
    例子:

    parseInt("02", 10); 
    parseInt("0x11"); 
    

    输出:

    2
     17
  • 自动分号插入:尽管分号在 Javascript 中是可选的,但在需要的地方添加分号是一个好习惯。这是因为 javascript 会自动在您的代码中添加分号并可能引发错误。考虑一个 ASI(自动分号插入)的经典示例:
    function foo1()
    {  
    return {       
    bar: "hello"  
    };
    } 
      
    function foo2()            
    {  
    return   {     
     bar: "hello" 
     };
     }
      
    console.log("foo1 returns:");
    console.log(foo1());
    console.log("foo2 returns:");
    console.log(foo2());
    

    输出:

    foo1 returns:
     Object {bar: "hello" }
     foo2 returns:
     undefined
    

    在上面的代码中,它们似乎返回了相同的对象,但第二个对象没有返回,并且由于 ASI 而返回了一个未定义的值。