2.JS数据类型
2.1 字符串
1.正常字符串我们使用单引号或者双引号包裹
\'
\n换行
\t tab
\u4e2d \u#### Unicode字符
\x41 Ascll字符
3.多行字符串编写
<script>
'use strict'
//``tab键上面esc键下面
let msg=`asdasd
adasdasd`
</script>
4.模板字符串
<script>
'use strict'
//``tab键上面esc键下面
let name="cc";
let msg=`你好,${name}`;
</script>
5.字符串长度
console.log(student.length)
6.字符串的可变性/不可变
let student="student"
console.log(student[0])
> s
student[0]=1
console.log(student)
student
7.大小写转换
//注意是方法不是属性
console.log(student.toLocaleUpperCase())
console.log(student.toLocaleLowerCase())
2.2 数组
Array可以包含任意的数据类型
let arr=[1,2,3,4,5,6]//通过下标取值,赋值
arr[0]
arr[0]=1
1.长度
arr.length
注意:假如给arr.length赋值,数组大小就会发生变化,如果赋值过小,元素就会丢失
2.indexOf,通过元素获得下标索引
arr.indexOf(2)
> 1
字符串”1“和数字1是不同的
3.slice()截取数组Array的一部分,返回一个新数组,类似于String中的substring
arr.slice(2)
>[3, 4, 5, 6]
4.push,pop
push:压入到尾部
pop:弹出尾部的一个元素
arr=[1, 2, 3, 4, 5, 6]
arr.push('a','b')
arr=[1, 2, 3, 4, 5, 6, 'a', 'b']
arr.pop()
arr=[1, 2, 3, 4, 5, 6, 'a']
5.unshift(),shift()头部
arr=[1, 2, 3, 4, 5, 6, 'a']
arr.unshift('a')
arr=['a', 1, 2, 3, 4, 5, 6, 'a']
arr.shift()
arr=[1, 2, 3, 4, 5, 6, 'a']
6.排序sort()
let arr=['B','C','A']
arr.sort()
arr=['A', 'B', 'C']
7.元素反转
arr.reverse()
arr=['C', 'B', 'A']
8.concat()
arr.concat([1,2,3])
['C', 'B', 'A', 1, 2, 3]
注意:concat()并没有修改数组,只是会返回一个新数组
9.连接符join
arr.join('-')
'C-B-A'
打印拼接数组,使用特定的字符串连接
10.多维数组
let arr=[[1,2],[3,4],["5","6"]]
arr[1][1]
4
2.3对象
若干个键值对
let 对象名={
属性名:属性值,
属性名:属性值,
属性名:属性值
}
//定义了一个person对象,它有四个属性
let person={
name:"cc",
age:3,
email:"2333@qq.com",
score:0
}
js中的对象,{....}表示一个对象,键值对描述属性xxxx:xxxx,多个属性之间用逗号隔开,最后一个属性不加逗号
JavaScript中的所有键都是字符串,值都是任意对象!
1.对象赋值
person.age
3
person.name
'cc'
2.使用一个不存在的对象属性不会报错,undefined
person.haha
undefined
3.动态的删减属性,通过delete删除对象的属性
person
> {name: 'cc', age: 3, email: '2333@qq.com', score: 0}
delete person.age
> true
person
> {name: 'cc', email: '2333@qq.com', score: 0}
4.动态的添加
person.haha="hahaha"
person
> {name: 'cc', email: '2333@qq.com', score: 0, haha: 'hahaha'}
5.判断属性值是否在这个对象中
'age' in person
> true
//继承
'toString' in person
> true
6.判断一个属性是否是自身拥有的
person.hasOwnProperty('toString')
> false
person.hasOwnProperty('age')
> true
2.4流程控制
if判断
let age=3;
if(age>3){//第一个判断
alert("haha");
}else if(age>5){//第二个判断
alert("ha");
}else{//否则
lert("kuwa");
}
while循环
let age=3;
while(age<100){
age=age+1;
}
console.log(age)
for循环
let age=3;
for(let i=0;i<100;i++){
console.log(i);
}
forEach循环
let age=[1,2,3,4,5,6,7,8,9];
age.forEach(function (value) {
console.log(value);
})
for循环
let age=[1,2,3,4,5,6,7,8,9];
for (let num in age){//for...in 是索引
console.log(age[num]);
}
for (let num of age){//for...of是元素
console.log(num);
}
2.5Map和Set
//ES6 Map
let map= new Map([['tom',100],['jack',90],['haha',80]]);
let name= map.get('tom');//通过key获得value
map.set('admin',123456);//新增或修改
console.log(name);
map.delete("tom");//删除
Set:无需不重复的集合
let set=new Set([1,1,1,1,1,1])//set可以去重
set.add(2)//添加
set.delete(2)//删除
console.log(set.has(1))//是否包含某个元素
2.6 iterator
ES6新特性
遍历Map
let map=new Map([['tom',100],['jack',90],['haha',80]]);
for(let x of map) {
console.log(x)
}
遍历Set
let set=new Set([1,1,1,1,1,2,3])//set可以去重
for(let x of set){
console.log(x)
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现