数据类型详解
①JavaScript字符串 有不可变性
正常字符串我们使用单引号或双引号包裹;
注意转译字符:\'字符串、\n换行、\t空格、\u4e2d unicode字符、\x41 Ascll字符
多行字符串编写: var msg=`1 注:`不是引号在teb键上面esc键下面
你
好`
模板字符串:let name='学习'; 注:`不是引号在teb键上面esc键下面
let s='mmm';
let m=`你好${name}${s}`
字符串长度:console.log(m.length) 字符串名.length
通过字符串下标取元素:console.log(m[0]) 字符串名[下标]
字符串大写方法:console.log(s.toUpperCase()) 字符串名.toUpperCase()
字符串小写方法:console.log(s.toLowerCase()) 字符串名.toLowerCase()
字符串获取指定下标方法:console.log(m.indexOf('你')) 字符串名.indexOf('你')
字符串截取一段的方法[):console.log(m.substring(2)) 从第2个字符到完 console.log(m.substring(2,5)) [包头不包尾)
②JavaScript数组
可以包含任意数据类型 var arr=[1,2,'hellow',null,ture]
数组长度:arr.lenght 注:加入给数组arr.lenght赋值数组大小会发生变化,如果赋值过小元素就会丢失
取数组元素:arr[0] 数组名[下标]
修改数组元素:arr[0]=1 数组名[下标]=赋值数
通过元素获取数组下标:arr.indexOf('hellow') 数组名.indexOf(元素)
数组截取一段的方法[)和字符串的substring()类似:arr.slice(2) 从第二个到完 arr.slice(2,5) [包头不包尾)
将元素压入数组尾部:arr.push('a','b') 数组名.push(元素)
将元素从数组尾部弹出:arr.pop() 数组名.pop() 一次只能弹出一个元素
将元素压入数组头部:arr.unshift(',','001') 数组名.unshift(元素)
将元素从数组头部弹出:arr.shift() 数组名.shift() 一次只能弹出一个元素
数组内部排序方法:arr.sort() 数组名.sort()
数组元素反转:arr.reverse() 数组名.reverse()
连接数组并返回一个新数组:arr.concat(55,66) 数组名.concat(数组) 返回一个新数组,对原来数组没有改变
打印拼接数组,使用特定字符串连接:arr.join('^') 数组名.join(连接符)
多维数组:arr=[[1,2],[3,4],['5','6']]; 取多维数组值:arr[1][1]
③对象
对象定义:var 对象名={ 如:var p={
属性名1:属性值, name:'xuexi',
属性名2:属性值,…… nianling:23,
属性名n:属性值 tags:['js','java','html']
} }
对象赋值:p.name='zxw' 对象名.属性名=属性值
使用一个不存在的对象,不会报错,undefined
JavaScript通过动态删减对象属性:delete p.name delete 对象名.属性名
JavaScript通过动态添加对象属性:p.ha=33 直接添加即可 对象名.新属性名=属性值
判断一个属性是否在这个对象中: 'tags' in p '属性名' in 对象名
判断一个属性是否是自身拥有的:p.hasOwnProperty('tags') 对象名.hasOwnProperty('属性名')
注:两个判断属性的区别:in能够找到继承的属性,hasOwnProperty只能判断自身拥有的为true
④流程控制:if判断、while循环、for循环
if判断语法:
if (i1<5){
alert('hh')
}
else if (i1>2){
alert('ff')
}
else {
alert('yy')
}
while循环语法:注:避免死循环出现
while (i1<20){
i1=i1+1;
console.log(i1)
}
do{
i1=i1+1;
console.log(i1)
} while (i1<20)
for循环语法:
for (let i=0;i<10;i++){
console.log(i)
}
forEach循环,遍历一个数组语法
a.forEach(function (value){
console.log(value)
});
for……in循环,遍历对象语法
for (var num in p) {
// if (p.hasOwnProperty(num)){
console.log(num)
// }
}
for……of遍历数组具体值 注:for in用来遍历数组下标或对象属性名,for of用来遍历数组值
for (var x of a){
console.log(x)
}
⑤Map和Set
var map= new Map([['tom',60],['jack',80],['jear',55]]); //Map只能是两个元素key和value
var v=map.get('tom') //通过key找到value
map.set('hh',66) //map.set()添加一个值
map.delete('tom') //删除
var set=new Set([1,2,1,1,3,2]) //Set无限不重复集合,可以去重
set.delete(1) //删除
set.has(3) //是否包含这个元素
遍历map只能用for in:
for (var x of map){
console.log(x)
}
遍历set也是用for in:
for (var x of set){
console.log(x)
}