3.1 基本数据类型

:::info Null、Undefined、String、Number、Boolean :::

3.4.6 String

类型数值、布尔值、对象和字符串值都有toString()方法,但null和undefined值没有这个方法

String()函数遵循下列转换规则:

  • 如果值有toString()方法,则调用;
  • 如果值是null,返回”null”;
  • 如果值是undefined,则返回”undefined”

3.5.1 一元操作符

-- ++

  1. var num1 = 2,
  2. num2 = 20,
  3. num3 = --num1 + num2; // num3之所以等于21是因为num1先减去了1才与num2相加

:::info 执行前置递增或递减操作时,变量的值都是在语句被求值以前改变的 :::

  1. var num4 = 2,
  2. num5 = num4-- + num2, // 22; 这里计算num5时使用了num4的原始值完成了加法运算
  3. num6 = num4 + num2; // 21; 而num6则使用了递减后的值

:::info 执行后置递增或递减操作时,变量的值都是在语句被求值之后改变的 :::

注:如果递增或递减是这条语句的唯一操作,操作符放在前后都一样

  1. var age = 20;
  2. age++ // ++age

3.6.4 for语句

循环嵌套下可以使用:break和continue与label语句联合

  1. var num = 0;
  2. outermost:
  3. for (var i = 0; i < 10; i++) {
  4. for (var j = 0; j < 10; j++) {
  5. if (i === 5 && j === 5) {
  6. break outermost; //立刻退出内层和外层循环
  7. }
  8. num++;
  9. }
  10. }
  11. console.log(num) // 55

3.6.9 switch语句

switch语句在比较时使用的是全等操作符,不会发生类型转换


小结:ECMAScript中的所有参数传递的都是值,不可能通过引用传递参数