数据类型
字符串
-
正常字符我们使用 单引号
-
注意转义字符
\' \n \t \u4e2d \u### unicode \x41 Ascll字符
-
多行字符串编写
var msg = ` hello world ` console.log(msg)
-
模板字符串
let name = "caster"; let age = 3; let msg = `你好,${name}`; console.log(msg);
-
字符串长度
str.length
-
字符串的可变性,不可变
var student = "student"; student[0]=1 console.log(student)
-
大小写转换(方法)
console.log(student.toUpperCase()) console.log(student.toLowerCase())
-
索引
console.log(student.indexOf('u'))
-
截取
console.log(student.substring(1,3))
数组
Array可以包含任意的数据类型
var arr = [1,2,3,4,5]
-
长度
arr.length
注意:加入给arr.length赋值,数组大小就会发生变化,如果赋值过小,元素就会丢失
-
indenOf,通过元素获得下标索引
var arr = [1,2,3,'1','2','3'] undefined arr.indexOf(1) 0 arr.indexOf('1') 3
字符串的‘1’和数字1不一样
-
slice()截取Array的一部分,返回一个新的数组,类似于String中的substring
arr.slice(3)
-
push,pop
arr.push('a','b') 8 arr.pop() "b"
-
unshift,shift
arr.unshift("a","b","c") 10 arr (10) ["a", "b", "c", 1, 2, 3, "1", "2", "3", "a"] arr.shift() "a"
-
排序 sort
arr=['b','c','a'] (3) ["b", "c", "a"] arr.sort() (3) ["a", "b", "c"]
-
元素反转
arr.reverse() (3) ["c", "b", "a"]
-
concat()
arr.concat([1,2,3]) (6) ["c", "b", "a", 1, 2, 3]
注意:并没有修改数组,只是会返回一个新的数组
-
接符join
打印拼接数组,使用特定的字符串连接
arr.join('-') "c-b-a"
-
多维数组
arr = [[1,2],[3,4],[5,6]] arr[1,1] (2) [3, 4]
对象
若干个键值对
```
var 对象名={
属性值:属性值,
属性值:属性值,
属性值:属性值
}
```
js中对象,{...}表示一个对象,键值对描述属性xxx:xxx,多个属性之间使用,隔开,最后一个属性不加逗号
JS中所有的键都是字符串,值是任意对象!
1. 对象赋值
2. 使用一个不存在的对象属性,不会报错!undefined
3. 动态的删减属性,通过delete删除对象的属性
```
Delete person.name
true
person
```
4. 动态的添加 直接给新的属性添加值即可
```
person.name = "caster"
"caster"
person
```
5. 判断属性值是否在这个对象中! xx in xx
```
'sex' in person
true
'aa' in person
false
//继承
'tostring' in person
true
```
6. 判断一个属性是否是这个对象自身拥有的hasOwnProperty()
```
person.hasOwnProperty('toString')
false
```
流程控制
-
if判断
-
while循环 do while
-
foreach 5.1
java:forEach() 方法用于遍历动态数组中每一个元素并执行特定操作。
arraylist.forEach(Consumer<E> action) //action - 对每个元素执行的操作
js:forEach()` 方法对每一个元素执行一次给定的函数。
array1.forEach(element => console.log(element));
var age = [1,2,3]; age.forEach(function (value){ console.log(value); })
-
for
// java for(Type str:el){} var age = [1,2,3]; for (var num in age) { if (age.hasOwnProperty(num)){ console.log("存在"+age[num]); } }
num为索引!
Map和Set
ES6新特性
Map:
var map = new Map([["Tom",100],["Jarry",90]]); // 通过key获取value var name = map.get("Tom"); // 新增或修改 map.set("admin",666); console.log(map); // 删除 map.delete("Tom");
Set:无序不重复的集合
var set = new Set([3,1,1,2,1]);
//可以去重
console.log(set);
set.add(4);
set.delete(1);
// 是否包含某个元素
console.log(set.has(3));
VM352:1 true
iterator
ES6
//通过for of 实现 /for in 是下标
var arr= [3,4,5];
for (var x of arr){
console.log(x)
}
遍历map
var map = new Map([["Tom",100],["Jack",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);
}