参考:武义忠学习笔记
6.13(字符串)
1.定义:字符串就是用单引号或者双引号包裹起来的,零个或多个排列在一起的字符。(引号成对出现)
字符串是js内置的一个对象,他有自己的属性和方法
2创建方式:
1.字面量方式创建
var 变量名 = ‘任意字符/空’
2.String 对象方式创建
var 变量名 = new String(‘任意字符/空’
)
3.嵌套方式
双引号包裹单引号
单引号包裹双引号
不能同种符号嵌套,会报错
4.字符串在编辑器中不能换行,换行需要其他符号连接
直接换行会报错
用反斜杠连接,将下一行的字符串放到行首,不然会有多余空格
用+号拼接,拼接时注意将两段字符当作独立的字符串处理,所以两段字符都要包裹在成对的双引号内
属性
字符串属性:有三个
3.嵌套方式:
双引号包裹单引号
单引号包裹双引号
不能同种符号嵌套,会报错
4.字符串在编辑器中不能换行,换行需要其他符号连接
直接换行会报错
用反斜杠连接,将下一行的字符串放在行首,不然会有多余空格
用+号拼接,拼接时注意将两段字符当作独立的字符串处理,所以两段字符都要包裹在成对的双引号
5属性
字符串属性:有三个property constructor length
6.17
1数组
1.定义
按照一定顺序排列的一组任意类型的值
注意:数组内元素用逗号隔开,可以两个逗号之间什么都不放,代表一个空元素
2.创建方式:
1.字面量方式:var arr = 【元素1,元素2,元素3】
2.var arr = new array (元素1,元素2,元素3)
3.数据类型
数组的类型 object
typeof arr == object
数组内的元素可以是任意类型
var arr = [ '123',1,false,null,undefined]
4.判断一个对象是否是数组
1.Array.isArray()
描述:判断一个对象是否是数组
语法:Array.isArray(对象)
参数:对象(变量名称/数据)
返回:类型 值
是数组 Boolean true
非数组 Boolean false
2.valueOf()
描述:返回原数组
语法:数组.valueOf()
参数:无
返回:类型 值
Object 原数组
5.数组的属性:
语法:数组.length
返回值是number
描述:设置数组的长度
返回:
若原数组长度大于number,返回一个舍弃数组超出number的新数组
若原数组长度小于number,返回一个用empty补全的数组
若设置的长度非number,报错
6.获取数组的内容:
语法:arr[index]
注意:
1.index范围0-arr.length-1
2.若index超出范围返回undefined
7.数组的遍历:
1,for循环
语法:for(var i=0;i<=arr.length-1,i++){}
arr[i]
for in
注意 :index 默认从0开始
语法:for(var index in arr){}
arr[index]
3.for of
语法:for(var item of arr){}
consle.log(item)
4.forEach()
语法:arr.forEach(function(item,index)){}
item
index
5.map()
语法:arr.map(function(item,index)){}
item
index
8.数组的方法:
一.增(数组元素的插入和拼接)
1.push()
描述:将元素插入到数组的末位
语法:数组.push(元素)
参数:要插入的元素(任何数据类型都可以)
返回:类型 值
number 插入元素后的新数组的长度
注意:修改原数组
2.unshift()
描述:将元素插入到数组的第一位
语法:数组.unshift(元素)
参数:要插入数组的元素
返回:类型 值
number 新数组的长度
注意:修改原数组
3.concat()
描述:连接两个数组,返回新的数组
语法:数组1.concat(数组2)
参数:要拼接在数组1后面的数组
返回: 类型 值
参数为空 数组 数组1
参数为任意类型 数组 将该元素插入到数组1的末尾
参数为数组 数组 将数组2拼接到数组1的末尾
注意:不修改原数组
删(数组元素的删除)
1.delete arr【index】
描述:删除数组元素
语法:delete arr[index]
参数:数据类型 值
Boolean true/false
注意:
改变原有数组
不能直接delete元素
2.pop()
描述:删除数组最后一个元素
语法:数组.pop()
参数:无
返回:被删除的元素
注意:改变原有数组
shift()
描述:删除数组第一个元素
语法:数组.shift()
参数:无
返回:类型 值
不定 被删除的元素
注意 : 改变原有数组
改(对数组元素的截取,修改和插入)
1.slice()
描述:数组的截取
语法:数组.slice(startIndex,endIndex)
参数: 截取的范围包涵startIndex,startIndex从0开始
返回类型 值
1.参数正常(startIndex从0开始且小于endIndex):arr【arr[startIndex],...,arr[endIndex-1]】
2.参数只有一个且大于等于0,小于数组.length:arr[arr[idnex+arr.length],...,arr[arr.lehgth-1]]
3.参数只有一个且小于0
4.参数超出数组.length-1
4.1只有一个参数且超出
4.2startIndex超出范围
4.3endIndex超出范围
【arr[startIndex],...,arr[arr.length-1]】
2.splice()
描述:对数组元素进行截取,删除,插入,修改
语法:数组.splice(开始的下标,删除的个数,添加的元素(可选))
参数:三个参数,startIndex(0-数组.lenght-1)
返回:类型,值
注意:
查(数组元素的查找)
注意:获取某个元素在数组中位置的下标
1.indexOf()
描述:获取某个元素在数组中第一次出现的位置的下标
语法:数组.indexOf(元素)
参数:被查找的元素
返回:类型 值
存在 number index(从0开始)
不存在 number
2.lastIndexOf()
描述:获取某个元素在数组中最后一次出现的位置的下标
语法:数组.lashIndexOf(元素)
参数:被查找的元素
返回:类型 值
存在 number index(从0开始)
不存在 number -1
转换(把数组转换成字符串)
1.join()
描述:将数组按照一定格式转化成字符串
语法:数组.join('字符')
参数:字符,可以为空
返回:类型 值
有参数 字符串 “元素1字符元素2字符。。。”
无参数 字符串 ”元素1,元素2.。。。“
参数是 字符串 ”元素1元素2元素3.。。。“
注意:不改变原数组
2.toString()
描述:将数组转换成字符串
语法:数组.toString()
参数:无
返回:类型 值
string 元素,元素,元素
排序()
1.reverse()
描述:将数组顺序颠倒
语法: 数组.reverse()
参数:无
返回: 类型 值
array [元素最后一个,...,元素第0个]
注意:对原数组有修改
2.数组.sort()
描述:数组排序,排序规则是按照编码排序
语法:数组.sort(方法)
参数:可选
返回:类型 值
1.无参数 arrav 按照编码从小到大的数组
2.有方法作为参数 array 按照方法的规则排序数组
一堆数组的深浅复制
简单数据类型不存在深浅复制问题
应用:从后台取出来的数据,可能需要多种处理,这时候就需要对数组进行深复制
浅复制:
对复制的数组修改,会改动原数组
深复制:
对复制的数组修改,不会造成原数组的改动,因为是两个不同的数组
6.18
1.应用:在实际工作中通常会被一个数据定义成对象,而这个对象下可以有很多自己的属性,属性也可以是方法,这样直接调用这个对象就可以了
2定义:包裹在{}里面拥有键值对的数据集
键名:属性名;
注意:1.一般把属性名用引号包裹起来
2.默认属性名是字符串类型
3.在对象中出现两个属性名相同的值,后面的将前面的属性值覆盖
键值:属性值;
注意:
可以是任意数据类型
键名和键值通过冒号连接,多个属性之间用逗号分割
3.对象使用的方法:
增(添加)
1.对象名.属性值=值
var obj = {} ;
obj.a = 1;
console.log(obj)
2.对象名['属性名' ] =值
var obj = {};
obj['a']=1
conslole.log(obj)
删
delete属性名
var obj = {a:2} ;
obj['a'] =1 ;
delete.obj.a
console.log(obj)
改
1. 对象名.属性值 = 值
var obj = {a:2};
obj.a = 1;
console.log(obj);
2. 对象名【‘属性名’】 = 值
var obj = {a:2} ;
obj['a'] =1 ;
console.log(obj);
查
1.对象名.属性名
注意:该属性名必须是字符串字面量,不能是变量或数字
2.对象名【属性名】 ,属性名 可以是字符串,字符串变量或数字
查找不到对象中的属性名,返回undefined
3.对象的相关操作
1.object.keys()
描述:获取对象中的所有属性名
语法:Object keys (对象名)
参数:对象名
返回:类型 值
对象不为空 一个把属性名子作为字符串元素的数组
空对象 Array 空数组
2.in
描述:查找对象中是否含有某个属性
语法:‘属性名’ in 对象
返回: 类型 值
有 Boolean true
无 Boolean false
3.for in
描述:遍历对象
语法: for(var i in 对象名){}
参数:i 代表 属性名
4.with
描述:批量修改对象的属性值
语法:with(对象名){
属性名1= 值1;
属性名2 =值2;
}
返回:无返回值;
注意:修改原对象;
方法:
1.创建新数组遍历插入元素
2.concat
9.二维数组:
9.1初始:
定义:数组中的元素是一堆数组,这样的数组称为二维数组
应用:后台返回一个表格类的数据有行有列,可能会用二维数组
数组内元素的获取
arr[index1][index2]
数组的长度arr.length
遍历:
一维数组遍历方法的嵌套
注意:
注意内外部循环 迭代条件名称不能相同
注意内外部循环 i j 不能相同
注意item index 参数不能重名