# 注意用 === 而非 ==
# isNaN(); //若是用 NaN === NaN 也是 false
# 浮点数计算因为精度问题没法相等,断定要用差值<0.0000001
# 'use strict'; // 杜毫不用 var 就声明变量--->全局变量容易形成问题
# string.substring(i, j); --- array.slice(i, j);
# 字符串不可变,数组可变
# 增删改数组:unshift shift sort reverse
splice concat
join
# false: NaN, undefined, 0, null ,true: 其余
# 对象,支持ES6的浏览器可用Map、Set(这俩遍历用 iterable)通常用对象就够了
* 对象是键值对,但键只能是字符串
* Map 和 python 的 dict 很像var m = new Map([['key',value], ['key', value],...]);
方法:set, has, delete, get
* Set 只有 key 没有 value, 自动过滤重复元素
var s = new Set([1, 2, 3, 3, '3']);
s; // Set {1, 2, 3, "3"}
方法:add(key),delete(key)
# 函数,两种定义方式
* function func_name(x){
// .......
return 0;
}
* var func_name = function(x){
return;
};
# arguments,它只在函数内部起做用,而且永远指向当前函数的调用者传入的全部参数
# 函数内部定义变量时,最多见的作法是用一个var申明函数内部用到的全部变量:
function foo() {
var
x = 1, // x初始化为1
y = x + 1, // y初始化为2
z, i; // z和i为undefined
// 其余语句:
for (i=0; i<100; i++) {
...
}
}
#
在一个方法内部,this是一个特殊变量,它始终指向当前对象 ,若是单独调用函数,此时,该函数的this
指向全局对象,也就是window
。
但在函数内部定义的函数,this
又指向undefined
了,要在函数开始时就捕获 var that = this; 后面才能正经常使用