一、数据类型
字符串示例。
var str = ‘Hello World‘; str[5] = ‘.‘; var len = str.length; var upperStr = str.toUpperCase(); var lowerStr = str.toLowerCase(); var i = str.indexOf(‘World‘); var substr = str.substring(6, 11);
数组示例。
var arr = [0, 1.0, ‘1‘, true, undefined, null, []]; var len = arr.length; var element = arr.indexOf(0); var subArr = arr.slice(0, 5); //向末尾添加元素或删除元素 arr.push(1, 2, 3); arr.pop(); //向头部添加元素或删除元素 arr.unshift(4, 5, 6); arr.shift(); var delArr = arr.splice(0, 3, ‘7‘, ‘8‘, ‘9‘); //删除内容后插入 arr.concat(delArr); //连接数组 var str = arr.join(‘-‘); //使用指定字符串连接 arr.sort(); arr.reverse();
对象示例。
var Player = { number: 30, name: ‘Stephen Curry‘, team: ‘Golden State Warriors‘, }; Player[‘number‘]; //访问属性 Player.position = "Point Guard"; //添加属性 delete Player.position; //删除属性 ‘positon‘ in Player; //判断属性是否拥有 Player.hasOwnProperty(‘position‘); //判断属性是否自身拥有
二、流程控制
var arr = []; for (var i = 0; i < 10; i++) arr.push(i); var sum = 0; for (var j in arr) if (j % 2 === 0) sum += parseInt(j); alert(sum);
for...in循环由于历史遗留问题,其遍历的实际上对象的属性名称。当我们手动给对象添加一些额外属性之后for...in循环会将我们添加的属性也作为集合元素进行遍历。for...of循环则解决了这些问题,只遍历集合元素本身。
var arr = [0, 1, 2, 3, 4]; arr.name = "MyArray"; var str = ‘‘; for (var i of arr) str += i; alert(str);
三、集合与映射
JS的默认对象表示方式可视为其他语言中的隐射数据结构,但是这样存在的问题是健值必须是字符串。ES6规范引入了新的集合与映射数据类型。
var map = new Map(); map.set(1, "Spring"); map.set(2, "Summer"); map.delete(1); var set = new Set(); set.add("Autumn"); set.add("Winter"); set.delete("Autumn");