You-Dont-Know-JS 笔记

  1. JS虽然是解释性语言, 但是也有编译过程, 只不过前一步编译, 后一步就执行
  2. JS是动态语言, 意味着可以在变量中保存不同类型的值, 意思就是值是有类型之分, 而变量是没有类型之分的
  3. 注意不相等和不等是不一样的, 不相等符号是!=!==, 而不等符号是>, >=, <, <=, 不等符号的比较规则是允许coercion, 就是说是允许强制转换的
  4. 不等符号的比较规则:

(1). 如果不等符号两边都是字符串, 则按照字典序来比较,
例如: 'a'< 'b', 结果是true, 比较的集合是按照unicode的顺序

(2). 如果一个不是字符串, 两边的值都会强制转换成number来比较,

(3). 例如: 'a' > 41, 'a' < 41, 'a' == 41, 结果都是false, 因为如果其中一个不能转化成有效数字, 那么就变成NaN,             规范中说明, NaN是大于和小于任何值, 还有NaN不等于任何值包括它本身, 所以才会有这样的结果
  1. 变量名为字母, 数字, _, $, 是在传统的ASCII编码方式下考虑的, 如果是在非传统的Unicode下考虑, 情况要复杂的多
  2. 保留字和关键字虽然不能用在变量名上, 但是可以用在属性名上
  3. 使用严格模式有一个关键的区别在于不能隐式的声明全局变量


    You-Dont-Know-JS 笔记_第1张图片
    Paste_Image.png
  4. 前面必须加分号否则会引起歧义的五个符号, '+', '-', '/', '()', '[]', 因为'+'会被认为是算术加法, '-'会被认为是算术减法, '/'会被认为是算术除法, '()'会被认为是函数调用, '[]'会被认为是对象属性访问

你可能感兴趣的:(You-Dont-Know-JS 笔记)