JavaScript语言精髓与编程实践笔记(2)

语法综述:

  1. 位运算中,JS会强制将运算目标转换成有符号的32位整数
  2. 引用类型的比较,如果不是同一个变量或其引用,则两个变量既不全等也不相等
  3. 比较只有两个元算元都是字符串时,才使用字符串序列检测,任意一个运算元为非字符串时,都将按照值进行比较。
  4. 赋值是运算而不是语句。
  5. 字符串限制(不可变性):
  • 不能直接修改字符串的字符
  • 字符串的连接必然导致写复制,这将产生新的字符串
  • 不能修改字符串的长度,如:修改length无效
  1. 语句存在返回值
  2. 表达式概念:由运算数和操作符构成,并产生结果的语法结构
    JS 规则:
  • 程序是由语句构成的。
  • 空语句,变量声明,函数声明以及控制子句都不会产生返回值
  • 换行符和文本结束符前可以没有';'
  1. 复制表达式具有声明隐士变量的效果
  2. 标签可以与变量重名而互不影响,因为它是另一独立的语法元素。
  3. break 子句不但可以作用与循环与条件分支内部,也可以作用与标签化语句内部
  4. JS中的数组,既是能以下标索引的索引数组,又是一个可以存取属性的关联数组,因此for ... in 的属性提取对数组有效
  5. JS 中任何类型的值都能作为对象的属性
  6. delete 无法删除用var声明的变量;直接继承的原型链上的成员。删除宿主成员的能力要看浏览器提供与否
  7. instanceof运算符用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性
  8. 用 in 能检测到的属性用for...in不一定能列举;原型链成员能被for...in列举,却不能被propertyIsEnumerable()列举(只检测对象的非继承属性)。

二义性

  1. 如果+表达式中存在字符串,则优先字符串连接
  2. 二义性中,语句优先
  3. +,{},[],(),,,:皆存在二义性
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 标签: 我的笔记 ---学习资料:http://javascript.ruanyifeng.com/ 1. 导论 ...
    暗夜的怒吼阅读 855评论 0 1
  • FreeCodeCamp - Basic JavaScript 写在前面: 我曾经在进谷前刷过这一套题,不过当时只...
    付林恒阅读 16,536评论 5 28
  • 没想着出书没想着写成大作是虚伪 可能只是不断记录一些零碎的想法 但是因为太懒所以 越写越多也不知道怎么整理 改日空...
    ShAvIn阅读 179评论 0 0
  • 编译openssl确实是个技术活,不同的版本还不一样,目前我使用的版本是1.0.0c下载地址到我的github: ...
    无尽思绪阅读 658评论 0 0