js的一些常用命令
一、数组相关
1.查询数组内单个坐标
array.indexof
会返回指定元素坐标
let a = [1, 2, "aa"]; let index_aa = a.indexof("aa") console.log(index_aa)
2.删除数组指定坐标
array.splice(数组下标,1)
会修改原数组的长度
delete arr[数组下标]
会将数组的下标位置变成undefined,长度不变
其他一些常用方法:
array.push 从末尾添加数组元素,长度加1
array.pop 从末尾删除,长度减1
array.shift 从数组最前面删除,长度减1
array.unshift 从数组最前面添加,长度加1
3.数组拼接
concat 会返回一个新数组
var a1 = [1,2,3,4,5]; var a2 = ['a','b','c']; var newa = a1.concat(a2);
es6的扩展运算符
var a1 = [1,2,3,4,5]; var a2 = ['a','b','c']; a1.push(...a2)
二、循环相关
1.for循环
最基本也是最早的for循环,利用数字循环遍历
for (var i = 1; i <= 10; i++) {
console.log(i + " ");
}
for in 遍历对象, 其中的会将对象的key拿出来,然后使用进去。数组也可以这样遍历,但是好像官方不太推荐,但是实际开发中,我for in 是用得比较多的,因为常常需要用到key,而for of 没有key,只有数组的值
// 定义一个对象 var person = {"name": "Clark", "surname": "Kent", "age": "36"}; // 遍历对象中的所有属性 for(var key in person) {
console.log(person[key]);
}
for of 遍历数组,
// 定义一个数组 var arr = ['a', 'b', 'c', 'd', 'e', 'f']; // 使用 for of 循环遍历数组中的每个元素 for (var value of arr) { console.log(value + ", "); } // 定义一个字符串 var str = "Hello World!"; // 使用 for of 循环遍历字符串中的每个字符 for (var value of str) { console.log(value + ", "); }
三、本地存贮
1.存
key和value都必须是字符串
localStorage.setItem(key, value)
2.取
输入存的key,就返回存的value
localStorage.getItem(key)
3.删除
删除指定key的内容
localStorage.removeItem(key)
删除所有内容
localStorage.clear()
4.会话存储
将上面的localStorage 换成 sessionStorage。
区别就是,在浏览器中,localStorage 会存在用户本地硬盘,关闭浏览器重新打开数据不会丢失,但是sessionStorage重启后就没有了。
四、exception handlers
1.捕获错误是程序开发中常用
try{ //可能产生错误的代码 } catch(err){ // 发生错误后执行这里代码 } finally{ // 最后都执行到这里 }
五、JSON
1. JSON.parse(str, reviver);
该方法会将字符串转换成json对象,reviver是处理方法
// JSON.parse() 解析JSON字符串, 将JSON转换为对象 let json = '{"name": ["js", "webpack"], "age": 22, "gridFriend": "ljj"}'; console.log(JSON.parse(json)); // {name: Array(2), age: 22, gridFriend: 'ljj'} // 第二个参数是一个函数,key和value代表每个key/value对 let result = JSON.parse(json, (key, value) => { if (key == "age") { return `年龄:${value}`; } return value; }); console.log(result); //{name: Array(2), age: '年龄:22', gridFriend: 'ljj'
2.JSON.stringify(value, replacer, space)
该方法会将json对象转换成字符串
let obj = { name: "jsx", age: 22, lesson: ["html", "css", "js"], }; let json = JSON.stringify(obj); console.log(json); // {"name":"jsx","age":22,"lesson":["html","css","js"]} // 第二个参数replacer 为函数时,被序列化的值得属性都会经过该函数转换处理 function replacer(key, value) { if (typeof value === "string") { return undefined; } return value; } let result = JSON.stringify(obj, replacer); console.log(result); // {"age":22,"lesson":[null,null,null]} // 当replacer参数为数组,数组的值代表将被序列化成 JSON 字符串的属性名 let result1 = JSON.stringify(obj, ["name", "lesson"]); // 只保留 “name” 和 “lesson” 属性值 console.log(result1); // {"name":"jsx","lesson":["html","css","js"]} // 第三个参数spcae,用来控制结果字符串里面的间距 let result2 = JSON.stringify(obj, null, 4); console.log(result2); /*{ "name": "jsx", "age": 22, "lesson": [ "html", "css", "js" ] }*/