温故而知新。
字符串
- 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)
//push和pop -- 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"] //unshift和shift -- 如果要往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 的数据类型不对!!!