Part1 原始类型,数组,循环

Variables

  • 变量不能以数字开头,因为如果这样编译器则无法区别数字和变量。
  • 养成好习惯每句话后面加分号

Primitive data types

  • 包括Number,String, Boolean, Undefined, Null.
  • 其他不属于这五种类型的 都是对象
  • 用typeof判断一个变量的数据类型

    var a = 1;
    typeof a; //"number"
  • 一个数字以0或者0o开头 代表八进制
  • 一个数字以0x开头 代表十六进制
  • 一个数字以0b开头 代表二进制
  • 在ES6之前 任意进制转化为十进制可以用parseInt

      console.log(parseInt(‘111’,2)); //. 这是2 to 10的例子 其他同理
      
  • 到了ES6 可以直接用前缀来代表这个数

      console.log(0b111) // 7
  • 1000=1e1=1e+1=1E1=1E+1(科学计数法 这几种形式都行)
  • Javascript中最大的数 1.7976931348623157e+308
  • 最小的是5e-324
  • Infinity 代表最大 -Infinity代表最小
  • Infinity + Infinity 为NaN 两者互减也是一样
  • isFinite/Number.isFinite // 判断是否有限 二者区别在于前者会在比较前进行转化
    比如字符串“111”前者会返回true 后者是false
  • 如何判断一个数是否为NaN

clipboard.png

  • 通过乘1可以把一个字符串转化为数字(前提是字符串得是数字的字符串)
  • 通过➕“”可以把任意number转化为string
  • 如果在一个不是boolean值的变量前➕!那么这个变量会成为boolean
  • 除了以下六种情况把两个!施加在一个变量面前为false,其他都为true

    • the empty string ""
    • null
    • undefined
    • the number 0
    • the number NaN
    • the boolean false
  • JS一个很技巧的写法,但需要myValue之前的赋值不是上面情况的六种都成立

    ...//省略之前的代码 myValue可能已经被赋值,可能没有
    var myValue = myValue || 10;
    // 如果上面有定义myValue 那么myValue等于上面的值,若没有
    // 则等于10.
    
  • NaN == NaN //false
  • 如果写var a其实相当于var a = undefined,明白了这个可以对后面js的理解有帮助。

Arrays

  • var a =[]; var b = [1, 2, 3];
  • 可以直接修改数组的值 如 b[1] = "you" b就变成了[1, 'you', 3];
  • b[4]=4 b=> [1, 'you', 3, undefined, 4];
  • delete b[3] => b[1, 'you', 3, 4]
  • var a = [[1, 2, 3], [4, 5, 6]];
    输出为:[Array[3], Array[3]]
  • 循环和判断:

    • if
    • while
    • for
    • switch(){case 1:}
    • do{}while()
    • for..in..
       var a = ['a', 'b', 'c', 'x', 'y', 'z'];
       var result = '\n';
       for (var i in a) {
         result += 'index: ' + i + ', value: ' + a[i] + '\n';
       }
       The result is:
       "
       index: 0, value: a
       index: 1, value: b
       index: 2, value: c
       index: 3, value: x
       index: 4, value: y
       index: 5, value: z
       "

Mystery_Wen
12 声望1 粉丝