美文网首页
JavaScript语言精髓与编程实践笔记(2)

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

作者: a_pioneer | 来源:发表于2017-07-08 14:57 被阅读0次

语法综述:

  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. +,{},[],(),,,:皆存在二义性

相关文章

网友评论

      本文标题:JavaScript语言精髓与编程实践笔记(2)

      本文链接:https://www.haomeiwen.com/subject/guadhxtx.html