二、数据类型 ———万物皆对象
2.1、字符串
-
正常字符创我们使用 单引号 或者双引号 包裹
-
注意转义字符 \
\u**** // Unicode字符 \x** //ACSII字符
-
多行字符串编写
//tab上面 esc键下面 var msg = ` asdasi safasf asfs`;
-
模板字符串
let name = "zhansagn"; let age = 3; let msg = `nihao,${name}`;
-
字符串长度
str.length
-
字符串的可变性,不可变
-
大小写转换
//转化为大写 str.toLocaleUpperCase() //转化为小写 str.toLocaleLowerCase() //str是不变的 因为字符串的不可变 调用的是方法并非属性
-
str.indexOf(‘t’)
-
substring() 左闭右开 start<=index<end
//从第一个字符串截取到最后一个字符串 str.substring(1) //从1<=index<4 str.substring(1,4)
2.2、数组
Array可以包含任意的数据类型
var arr = [1,2,3,4]
-
长度
arr.length;
**注意:**假如给arr.length赋值,数组大小就会发生变化,如果赋值过小,元素就会丢失
-
indexOf() 通过元素获得下标索引
arr.indexOf(1)
如果有相同的元素,取的是下标小的哪一个
-
slice()截取Array的一部分 返回一个新的数组 类似于String中的subString
//从第一个截取到最后一个 arr.slice(1) //从1<=index<4 arr.slice(1,4)
-
push(),pop() 从尾部添加 或者弹出
//从尾部压入一个或多个元素 arr.push() //从尾部弹出一个元素 arr.pop()
-
unshift() shift()从头部添加 或者弹出
//从头部添加一个或者多个 arr.unshift() //从头部弹出一个元素 arr.shift()
-
sort()
arr.sort()
-
元素翻转reverse()
arr.reverse()
-
拼接 concat() 原数组不变 返回一个新的数组
arr.concat(另一个数组)
-
连接符 join() 不改变原数组 返回一个新的字符串
arr.join(原数组的元素间的连接符)
-
多维数组
avc = [[1,2],[3,4],[1,3]]; avc[1][0] 3
2.3、对象
若干个键值对
var 对象名 = {
属性名:属性值,
属性名:属性值,
属性名:属性值,
。。。。
}
JS中对象,{。。。}表示一个对象,键值对描述属性XXX:XXX,多个属性之间用逗号隔开,最后一个属性不加逗号!
JavaScript中的所有的键都是字符串,值是任意对象
-
对象赋值
对象名.属性名 = 新值
-
使用一个不存在的对象属性,不会报错 会报undefined
-
动态的删减属性
delete 对象名.属性名
-
动态的添加属性 直接给新的属性添加值即可
对象名.新属性名 = 值
-
判断属性值是否在这个对象中
'属性名' in 对象名 还可以找到它父类的
-
判断一个属性是否是这个对象自身携带的
对象名.hasOwnProperty('属性名')
2.4、流程控制
if 判断
if (判断条件1) {
}else if(判断条件2){
}else {}
循环
- while 先判断 再进行循环体
while (循环条件) {
循环体
}
- for
for (let i = 0; 判断条件; i++) {
循环体
}
-
for of
for(var num of 需遍历的对象) { 循环体 }
-
do while 先执行循环体 在进行判断
do {
循环体
}while (循环条件)
-
forEach
-
forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。
注意: forEach() 对于空数组是不会执行回调函数的。
-
//当前元素是必需的,其他的都是可选的
//thisValue: 传递给函数的值一般用 "this" 值。如果这个参数为空, "undefined" 会传递给 "this" 值
array.forEach(function(当前元素, 当前元素的索引值, 当前元素的数组对象), thisValue){
执行的语序
})
-
for …in
-
for…in 语句用于对数组或者对象的属性进行循环操作。
for … in 循环中的代码每执行一次,就会对数组的元素或者对象的属性进行一次操作。
-
//“变量”用来指定变量,指定的变量可以是数组元素,也可以是对象的属性。
//变量为数组的索引 对象的属性名
for (变量 in 对象)
{
在此执行代码
}
2.5、Map和Set
**Map:**键值对存储
var map = new Map([['tom',100],['jack',90],['zahngsan',16]]);
var value = map.get('tom');
map.set('admin', 1563);
console.log(map);
**Set:**无序不重复的集合
2.6、itreator
遍历数组
var arr = [3, 4, 5];
for(var num of arr) {
console.log(num);
}
遍历Map
var map = new Map([['tom', 156], ['jack', 45],['saf',12]]);
for (let x of map) {
console.log(x);
}
遍历Set
var set = new Set([556,454,64]);
for (let x of set) {
console.log(x);
}