美文网首页程序员
《深入理解JavaScript》笔记

《深入理解JavaScript》笔记

作者: 孤鹰苍穹 | 来源:发表于2019-02-28 18:11 被阅读3次

参考:深入理解JavaScript


七、JavaScript 的语法

  1. 多行注释 ,被/* */包裹的任意区域,它不能嵌套使用
function (a /* int */, b /* str */) {}
  1. 表达式 将会产生一个值,它可以写在任何需要值的地方。
  2. 语句 表示了一种行为,如循环和if语句,一个程序基本上就是语句的序列。

凡是在JavaScript期望语句的地方都可以写表达式,这样的语句叫做表达式语句。反之则不然:不能在需要表达式的地方使用语句。

  1. 有两种像语句的表达式类型,它们的语法类型是 二义 的。
  • 对象字面量(表达式)看上去像块(语句):
{
  foo: bar(3, 5)
}
  • 具名函数表达式看上去像是函数声明(语句):
function foo() {}

为了避免二义性,在解析过程中,JavaScirpt不能使用对象字面和函数表达式作为语句,即表达式语句不能以 花括号function关键字 内容开头。

  1. eval 在语句的上下文中解析它的参数。如果希望 eval 返回一个对象,需要用小括号将对象字面两括起来。
eval('{ x: 123 }')
// output: 123
eval('({ x: 123 })')
//output: { x: 123 }
  1. 在调用 数字变量 的方法时,区分是浮点数的小数点还是调用方法的点运算符是非常重要的。因此不可以写类似 1.toString() 这样的代码,必须使用以下一种方式:
1..toString()
1 .toString()  // space before dot
(1).toString()
1.0.toString()
  1. 可以在 JavaScript 文件或者 <script> 标签的第一行加入以下代码来启用严格模式:
'use strict'
 ...

也可以为每个函数启用严格模式:

function foo() {
  'use strict'
   ...
}

启用严格模式需要注意的问题:

  • 启用严格模式可能会破坏 现有的 代码
  • 变量必须被声明
  • 函数必须在作用域的顶部声明
  • arguments对象拥有更少的属性
  • 无方法的函数中 this 的值为 undefined
  • 设置或者删除不可改变的属性(对属性的非法操作)会抛出异常
  • 严格模式中, eval 更加简洁
  • with 语句不能再被调用
  • 没有八进制数字

八、值

相关文章

网友评论

    本文标题:《深入理解JavaScript》笔记

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