javascript中的字符串、对象和数组的获取方式<基础>

温故而知新。

  • 字符串

    • javascript中的字符串就是用”或者”“括起来的字符表示。
    • 如果符号”或”“本身就是字符串那么则用”” 或者”括起来<两者使用是相反的>
    • 转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\表示的字符就是\。
    //例如 i'am "ok"
    
    'i\'am \"ok\"'
    //或者
    "i"+"'"+"am  "+"'"+"ok"+"'"
    
    //转移字符
    '\x41'; // 完全等同于 'A'
    • 获取字符串长度
    var arr = "hello";
    arr.length //5
    • 获取字符串内容
    var arr = "hello"
    arr[2]  // "l"
    arr[4]  // "o"
    arr[10] // undefined 不会报错
    • 给字符串赋值
        var arr = "hello";
        arr[2] = "M";
        arr   // "hello"    
    
        //字符串是不可变的,如果对字符串的某个索引赋值,不会有任何错误,但是,也没有任何效果
    • toUpperCase() 将字符串变为大写
    • toLowerCase() 将字符串变为小写
    • reverse() 将字符串反转
    • indexOf() 返回字符串第一次出现的位置,不存在则返回-1
    • substring() 截取字符串
    var arr = "hello";
    arr.substring(1,3)  //"el"  下表为3的值没有取到
    • split 方法按照正则表达式分割字符串,返回一个由分割后的各个部分组
      成的新数组
    "ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("")
    //(26) ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]
    
    //简单粗暴,分割字符串效率特别快
  • 对象

    • JavaScript的对象是一种无序的集合数据类型,它由若干键值对组成。可以存储属性和方法
    • 访问对象的属性有两种方式 <还是有区别的!!!>
    • 访问对象的属性调用对象的方法 <可实现简单的封装>
    var person = {
        firstName : "John",
        lastName : "Doe",
        id : 5566,
        fullName:function(){
            return this.firstName +" "+ person["lastName"];
        }
    };
    
    //通过“.”获取属性
    person.firstName  // "John"
    //通过“[]”获取属性
    person["lastName"] // "Doe"
    //函数属性作为一个方法访问
    person.fullName()  // "John Doe"
    //函数属性作为一个属性访问
    person.fullName  // 
                function(){
                    return this.firstName +" "+ person["lastName"];
                }
    //两者的区别在于调用的时候()的差异和返回值的差异
    • 对象的赋值 – – 由于JavaScript的对象是动态类型,你可以自由地给一个对象添加或删除属性:
    var person = {
        age:18,
    }
    
    person.sex   //undefined
    person.sex = "male" //赋值
    person.sex   //male
    delete person.sex //true 删除属性
    delete person.name //true 删除一个不存在的属性,并不会报错
    person.name  //undefined
    • 检验对象中是否有该属性的两种方法
     //in 判断是否为自身属性  但是区别不了是自身属性还是继承来的属性 "toString"就是继承来的属性  
     var person ={
        age:18
     }
     "age" in person   //true
     "toString" in person   //true  同样是true???
    //因为toString定义在object对象中,而所有对象最终都会在原型链上指向object,所以person也拥有toString属性。
    
    //hasOwnProperty() 可以判断属性是否为自身属性
    
    person.hasOwnProperty("age")   //true
    person.hasOwnProperty("toString")  //false
    
  • 数组

    • JavaScript的Array可以包含任意数据类型,并通过索引来访问每个元素。
        var arr = [1,2,3,"apple","banana","orange"];
        arr // (6) [1, 2, 3, "apple", "banana", "orange"]
        arr.length // 6
        arr[3] //"apple"
        arr[3] = "dog" //赋值 会将原来的值覆盖
        arr //(6) [1, 2, 3, "dog", "banana", "orange"]
    
        //注意::如果赋值的length超出实际范围,则会有undefined补齐
        arr.length = 10;   //更改超出范围的长度  --->这种操作比较危险
        arr //(10) [1, 2, 3, "apple", "banana", "orange", undefined × 4]
        //另一中超出范围的赋值也很危险 同样会有undefined补齐
        arr[10] = "dog";
        arr //(11) [1, 2, 3, "apple", "banana", "orange", undefined × 4, "dog"]
    • 数组元素的添加、删除(API)
        //pushpop  -- push()向Array的末尾添加若干元素,pop()则把Array的最后一个元素删除掉:   pop没有参数
        var arr = [1,2,3,"apple","banana","orange"];
        arr.push("dog") //7 当前数组长度
        arr    //(7) [1, 2, 3, "apple", "banana", "orange", "dog"]
        arr.pop()    //"dog"   当前删除元素
        arr   //(6) [1, 2, 3, "apple", "banana", "orange"]
    
        //unshiftshift  -- 如果要往Array的头部添加若干元素,使用unshift()方法,shift()方法则把Array的第一个元素删掉:
        arr.unshift("dog");   //7 当前数组长度
        arr  // (7) ["dog", 1, 2, 3, "apple", "banana", "orange"]
        arr.shift();  //"dog"   当前删除元素
        arr // (6) [1, 2, 3, "apple", "banana", "orange"]
  • 数组元素的截取、修改(API)

    • slice() 数组元素的截取
    • slice()就是对应String的substring()版本。
    • 该方法用于从数组中返回指定位置的元素组成的新的数组原数组不变
     //它的第一个参数为起始位置(从0 开始),第二个参数为终止位置。如果省略第二个参数,则一直返回到原数组的最后一个元素。
    var arr = [1,2,3,"apple","banana","orange"];
    arr.slice(2,4);   //(2) [3, "apple"]
    arr.slice();   //(4) [3, "apple", "banana", "orange"]
    
    //该方法可以将类似数组的对象,转为真正的数组。  类数组对象不可使用数组API
    Array.prototype.slice.call(document.querySelectorAll("div"));
    //或
    Array.prototype.slice.call(arguments);
    • splice 数组元素的修改
    • 该方法用于删除元素,并可以在被删除的位置添加入新的数组元素。它
      的返回值是被删除的元素。
    var arr = [1,2,3,"apple","banana","orange"];
    
    // 从索引2开始删除3个元素,然后再添加两个元素:
    arr.splice(2,3,"dog","cat");
    // 返回删除的元素 (3) [3, "apple", "banana"]
    arr; // (5) [1, 2, "dog", "cat", "orange"]
    
    // 只删除,不添加:
    arr.splice(2, 2); // (3) [3, "apple", "banana"]
    arr; // (3) [1, 2, "orange"]
    
    // 只添加,不删除:
    arr.splice(2,0,"dog","cat"); // 返回[],因为没有删除任何元素
    arr; // (8) [1, 2, "dog", "cat", 3, "apple", "banana", "orange"]
    
  • 数组中对象的获取方法

     var person=[
        {name:"apple"},
        {name:"banana"},
        {name:"orange"}
     ]
    
    //因为数组的获取方式是通过索引来获取元素的,所以需要遍历每个数组:
    for(var i=0;i<person.length;i++){
        console.log(person[i]); 
    }
    
    //输出为 : {name: "apple"}  {name: "banana"}  {name: "orange"}
    
    console.log(person[i].name)  //输出   apple  banana  orange
    console.log(person[i]['name'])  //输出   apple  banana  orange
    console.log(person[i][name])  //undefined ???  name 的数据类型不对!!!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值