JavaScript学习记录
1. 初始化一个变量若不用var声明,则默认为全局变量。
2. ES6新特性,支持模版字符串,例如:
1 var name = 'john'; 2 var age = 20; 3 var message = `Hello,my name is ${name},my age is ${age}`; 4 alert(message);
3. 字符串不可变,若对字符串某个索引赋值,将不会改变原字符串。字符串常用函数:toUpperCase()、toLowerCase()、indexOf()、substring()。
4. ES6新特性,Map是一组键值对的结构,具有极快的查找速度。
1 //Way 1 2 var m = new Map([['a',1],['b',2],['[c',3]]); 3 m.get('a'); 4 5 //Way 2 6 var m = new Map(); 7 m.set('a',1); 8 m.set('b',2); 9 m.get('a'); 10 m.has('a'); 11 m.delete('b');
一个key只能对应一个value,多次赋值会覆盖前面的值。
Set和Map类似,它是一组key的集合,但是不会存储value,key无法重复。
1 var s1 = new Set(); 2 var s2 = new Set([1,2,3]); 3 s1.add(1); 4 s2.delete(1);
5. ES6新特性,新类型iterable,具有iterable类型的如Array、Map、Set可以用for...of循环来遍历。
6. JavaScript支持任意多个参数,可以用arguments来获取。
7. 在函数内部首先声明所有变量。
8. 全局变量会绑定到window上,不同javascript文件若使用了相同名字的全局变量,则会不利于后期的调试,减少冲突的办法是使用命名空间。例如:
var space = {}; space.name = 'test'; space.version = 1; space.foo = function(){ return 'foo'; }
9. ES6新关键字let、const
10. 高阶函数,一个函数接收另一个函数作为参数。
1 function add(x,y,f){ 2 return f(x)+f(y); 3 } 4 5 add(1,2,Math.abs);