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
- 通过乘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 "
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。