2、数据类型详解
2.1、字符串
1、正常字符串使用单引号或者双引号包裹
2、注意转义字符 \
\'
\n
\t
\u4e2d //\u#### Unicode字符
\x41 //Ascll字符
3、多行字符串编写
<script>
'use strict';
//`是TEB上面的的英文下的符号
var msg =
`hello
world
你好呀
你好`
</script>
4、模版字符串
<script>
'use strict';
let name = "rop";
let age = 3;
let msg =`你好呀,${name}`;
alert(msg);
</script>
5、字符串长度
console.log(str.length)
6、字符串的可变性,不可变
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bi2nUn2M-1641898897238)(image-20220108163516377.png)]
7、大小写转换
//注意,这里是方法,不是属性
student.toUpperCase()
student.toLowerCase()
8、获取位置
sutdent.indexOf('t')
2.2、数组
Array可以包含任意的数据类型
var arr = [1,2,3,4,5]; //哦通过下标取值或赋值
arr[0]
arr[0] = 1
1、长度
arr.length
注意:假如给arr.length赋值,数组大小就会发生变化,如果赋值过小,元素就会丢失。
2、indexOf方法,通过元素获得下标索引
arr.indexOf(2)
3、slice() 截取Array的一部分,返回一个新的数组,类似于String中的substring
4、push(),pop() 尾部
push: 压入到尾部
pop: 弹出尾部的一个元素
5、unshift(),shift() 头部
unshift: 压入到头部
shift: 弹出头部的一个元素
6、排序sort()
["B","C","A"]
arr.sort()
["A","B","C"]
7、元素反转reverse()
["A","B","C"]
arr.reverse()
["C","B","A"]
8、concat()
["C","B","A"]
arr.concat([1,2,3])
["C","B","A",1,2,3]
注意:concat()并没有修改数组,只是会返回一个新的数组
9、连接符join
打印拼接数组,使用特定的字符串连接
["C","B","A"]
arr.join('-')
"C-B-A"
2.3、对象
若干个键值对
var 对象名 = {
属性名:属性值,
属性名:属性值,
属性名:属性值
}
//定义了一个person对象,它有四个属性
var person = {
name: "rop",
age: 3,
email: "2451991739@qq.com"
score: 10
}
js中的对象,{……}表示一个对象,键值对描述属性 xxxx: xxxx,多个属性之间使用逗号隔开,最后一个属性不加逗号。
1、对象赋值
person.age = 22
2、使用一个不存在的对象属性,不会报错 undefined
person.hh
undefined
3、动态的删减属性,通过delete删除对象属性
delete person.age
true
4、动态添加,直接给新的属性添加值即可
person.hh="hh"
'hh'
5、判断属性值是否在这个对象中 xxx in xxx
'age' in person
true
'toString' in person
true
6、判断一个属性是否是这个对象自身拥有的 hasOwnProperty()
person.hasOwnProperty('age')
true
person.hasOwnProperty(toString)
false
2.4、流程控制
1、if判断
var age = 3;
if(age > 3){
alert("ha,ha");
}else {
alert("kk");
}
2、while循环,避免程序死循环
while (age<100){
age = age + 1;
console.log(age);
}
3、for循环
for (let i = 0; i < 100; i++) {
console.log(i);
}
4、forEach循环
ES5.1引入
var arr = [1,2,3,4,5,6,7,8,9,0];
arr.forEach(function (value,index,array) {
console.log(value);
// console.log(index);
// console.log(array);
})
2.5、Map和Set
Map:
//ES6
//学生的成绩,学生的名字
// var name = ["tom","jack","rose"];
// var score = [100,80,90];
var map =new Map([["tom",99],["jack",100],["rose",80]]);
var tom = map.get("tom"); //通过key获得value
map.set("rop",101); //新增或修改
alert(tom);
map.delete("rose"); //删除
Set:无需不重复的集合,可以去重
var set = new Set([3,1,1,1]);//set可以去重
set.add(2);
set.delete(1);
2.6、iterator
ES6的新特性
使用iterator来遍历迭代Map和Set。
遍历数组
//通过for of来输出具体的数组中的值,for in只能输出数组下标
var arr = [3,4,5];
for (var x of arr){
console.log(x);
}
遍历Map
var map =new Map([["tom",99],["jack",100],["rose",80]]);
for (let x of map){
console.log(x);
}
遍历Set
var set = new Set([5,6,7]);
for (let x of set){
console.log(x);
}