第一部分 JavaScript语言核心(二)

第四章 表达式和运算符

  • P66 运算符优先级,从上到下:

  • ![6bc2d44340a5db99717936bf29bfd10](第一部分 JavaScript语言核心.assets/6bc2d44340a5db99717936bf29bfd10.jpg)

  • p68 属性访问表达式和调用表达式的优先级比运算符优先级都要高,eg:

    •   typeof my.functions[x](y) //typeof在两次属性访问和函数调用后执行
      
    • 赋值运算优先级极低,通常最后执行。

  • P69 R:从右至左结合性

    x = ~-y;			//x = ~(-y)
    w = x = y = z;		//w = (x = (y = z))
    q = a?b:c?d:e?f:g;	//q = a?b:(c?d:(e?f:g))
    
  • P69 运算顺序

  • P72 ++x和x=x+1并不完全一样。++不进行字符串连接操作。如X为“1”,前者为2,后者为“11”。

  • P75

    1、"==="

    • 如果两个值都是null或者都是undefined,则它们不相等;
    • 如果其中一个值是NaN或者两个都是NaN,name它们不相等;
    • 0和-0相等;
    • 两个字符串含义和字符完全一样,但具有不同编码的16位值,JS并不对Unicode进行标准化转换,因此“=”和“”都不相等。String.localeCompare()提供了另外一种比较字符串的方法。

    2、"=="

    • null==undefined;

第五章 语句

P84 eval()、全局eval() 用时整理

P110 try/catch/finally语句,抛出与执行顺序问题 用时整理

P113 with语句:扩展作用域链,尽可能避免使用

原文地址:https://www.cnblogs.com/dxy9527/p/12163060.html