字符串操作

// 一、增
    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

代码输出如图:
console的内容
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。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值