JS笔记

*** 基础知识 **** 类型转换 出现NaN的情况:转换undefined/字符串/有NaN参与的运算

对 "0" 和只有空格的字符串(比如:" ")进行布尔型转换时,输出结果为 true。

**** 运算和运算符 " -9 " + 5 = " -9 5" // (3) 带字符串的加法会将数字 5 加到字符串之后 " -9 " - 5 = -14 // (4) 法始终将字符串转换为数字 undefined + 1 = NaN // (6) " \t \n" - 2 = -2 // (7) 字符串转换为数字时,会忽略字符串的首尾处的空格字符。在这里,整个字符串由空格字符组成,包括 \t、\n 以及它们之间的“常规”空格。因此,类似于空字符串,所以会变为 0。

一元运算符优先级高于二元运算符

= 它的优先级非常低,只有 2。 赋值 = 返回一个值 | 链式赋值

, 逗号运算符能让我们处理多个语句,使用 , 将它们分开。每个语句都运行了,但是只有最后的语句的结果会被返回。

?? 获得两者中的第一个“已定义的”值(非null / undefined)

|| 无法区分 false、0、空字符串 "" 和 null/undefined。它们都一样 —— 假值(falsy values)

**** 值的比较 除了严格相等 === 外,其他但凡是有 undefined/null 参与的比较,我们都需要格外小心。 除非你非常清楚自己在做什么,否则永远不要使用 >= > < <= 去比较一个可能为 null/undefined 的变量。对于取值可能是 null/undefined 的变量,请按需要分别检查它的取值情况。

**** 对象 属性存在与否:in JS对象能够被访问任何属性。即使属性不存在也不会报错!读取不存在的属性只会得到 undefined

对象中的排序? 整数属性会被进行排序:电话号码+86 其他属性则按照创建的顺序显示。

updatedupdated2024-07-162024-07-16