// 一、增
var string = "hello",
string1 = " world",
string2 = "!",
string3 = " hello "
console.log(string)
console.log(string.concat(string1))
console.log(string.concat(string1,string2))//字符串的拼接
//substr()方法:
//如果只传一个参数n,意思是从头开始截取n位数
//若果传递两个数,则第一个参数意思是从第几位开始(默认开头序号是0),第二个参数是截取多少个
console.log(string.substr(3, 2), "截取字符串")
//二、删、改
// trim()方法:删除字符串"前后!!!!!!"空格,若果字符串中间有空格,也不会删除
console.log(string3.trim(),"去除前后空格")
var arr = [1,2,3],
arr1 = [1,9]
console.log(arr.concat(arr1))//合并数组不去重
// split()分割字符串的用法:是将字符串分割成数组的方法
// 可以传字符串或者数字,如果只传递一个参数:
var string4 = string.concat(string1, string2)
console.log(string4.split("l"),"用l来截取字符串hello")//["he", "", "o wor", "d!"]
//如果传递两个参数:
//则第一个参数表示用什么来截取,第二个参数表示截取几位
console.log(string4.split("l",3),"用l来截取三位数")//["he", "", "o wor"]
//join()是将数组按照某种方式拼接成字符串的方法:如果不传参,默认用逗号拼接
console.log(string4.split("l", 3).join(),"将数组拼接成字符串")//he,,o wor
//查
// charAt()和charCodeAt():
// charAt()是通过索引来查找“字符串”中的某一项是什么
console.log(string.charAt(1),"查找string中index为1的项是什么")//e
//charCodeAt()是查找字符串中某一项的ASIC值是多少
console.log(string.charCodeAt(1),"输出string中index为1的阿斯克码值")//101
//indexOf():查字符串中某一项第一次出现的索引
console.log(string.indexOf("l"),"输出string中第一次出现l的索引")//2
// test(),用于检测一个字符串是否匹配某个正则表达式,返回一个布尔值
console.log(/\w+/.test(string)); //true
代码输出如图:
ES7中新增加的 Object.values()和Object.entries()与之前的Object.keys()类似,返回数组类型。
//1. Object.keys()
//返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历属性的健名。
let user = { name: "leo", age: 18};
Object.keys(user); // ["name", "age"]
//2. Object.values()
//返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历属性的键值
let user = { name: "leo", age: 18};
Object.values(user); // ["leo", 18]
//如果参数不是对象,则返回空数组:
Object.values(10); // []
Object.values(true); // []
//3. Object.entries()
//返回一个二维数组,成员是参数对象自身的(不含继承的)所有可遍历属性的键值对数组。
let user = { name: "leo", age: 18};
Object.entries(user);
// [["name","leo"],["age",18]]
可选链 "?."
可选链介绍:可选链 “?.” 是一种 访问嵌套对象属性的防错误方法 。即使中间的属性不存在,也不会出现错误。 如果可选链 ?. 前面部分是 undefined 或者 null,它会停止运算并返回 undefined。
//在实际开发中,常常出现下面几种报错情况:
// 1. 对象中不存在指定属性
const leo = {};
console.log(leo.name.toString());
// Uncaught TypeError: Cannot read property 'toString' of undefined
// 2. 使用不存在的 DOM 节点属性
const dom = document.getElementById("dom").innerHTML;
// Uncaught TypeError: Cannot read property 'innerHTML' of null
//在可选链 ?. 出现之前,我们会使用短路操作 && 运算符来解决该问题:
const leo = {};
console.log(leo && leo.name && leo.name.toString()); // undefined
//总结:可选链 ?. 语法有三种形式:
//obj?.prop —— 如果 obj 存在则返回 obj.prop,否则返回 undefined。
//obj?.[prop] —— 如果 obj 存在则返回 obj[prop],否则返回 undefined。
//obj?.method() —— 如果 obj 存在则调用 obj.method(),否则返回 undefined。