Javascript(2)
2021-01-20 本文已影响0人
雪国_youth
数据类型:
1、字符串类型
-
正常字符串使用单引号和双引号来包裹
转义字符:
\ ' , \ n , \ t
\ uXXXX→unicode 码
\ xXX→Latin-1 字符(x小写) -
多行字符串:用反引号来包裹,即 `。
-
模板字符串:用${ }来包裹。
let name = "xiaoming";
let age = 3;
let msg = `你好呀,我叫${name},今年${age}岁。`
-
长度字符串:
str.length
- JS中字符串是不可变的。
可像数组一样用下标来获取字符串中的元素。 -
大小写转换 (方法)
①转大写:student.toUpperCase()
②转小写:student.toLowerCase()
-
获取下标:
student.indexOf( ' t ' )
,这里的结果为1。 - 截取字符串(x,y),包含x,不包含y
student.substring(1)//从第2个字符串截取到最后一个字符串,结果为tudent
student.substring(1,3)//从第2个字符串截取到第3个字符串,结果为tu
2.数组
Array可以包含任意的数据类型
- 如何定义一个数组?
var arr = [1,2,3,4,5,6];
- 数组长度:
arr.length
- 获取元素对应下标:indexOf()
arr.indexOf(2)//结果为1
-
slice()
:截取Array的一部分,返回一个新的数组,类似于String(字符串)中的substring。 -
尾部操作:
①push():压入到尾部。
②pop():弹出一个尾部元素。
头部操作:
①unshift():压入到头部。
②shift():弹出一个头部元素。 - 数组排序:
arr1.sort()
- 反转:
arr2.reverse()
- 拼接:
arr2.concat([1,2,3])
- 连接符join:(用自己特定的字符)join('加入自己定义的字符'),
arr2.join('-')
- 多维数组:
var arr=[[1,2],[2,3],[3,4]]
3、对象类型
- 如何定义一个对象:(最后一个属性不加逗号)
如果使用不存在的对象属性,显示undefined.
var 对象名 = {
属性名: 属性值,
属性名: 属性值,
属性名: 属性值
}
- person.name="输入另一个属性",直接赋值即可
- 动态的添加:直接给新的属性添加值
- delete person.属性→删除,删除一个不存在的属性会返回undefined.
- 判断属性值是否在这个对象中 'xxx' in xxx,如果在,结果就是true
- person.hasOwnPorperty(' ')→观察对象是否有这个属性
- person['属性']→属性值
PS:JS中的所有的键是字符串,值是任意对象。
4、分支与循环
①if判断
if(){
alert(" ")
}
else if()
{
alert(" ")
}
else
{
}
②while和do-while循环
do-while一定会执行一次,while先判断,有可能会不执行。
while(i<100) {
i=i+1;
console.log(i);
}
do {
i=i+1;
console.log(i);
}while(i<100)
③for循环
for(let i=0;i<100;i++) {
console.log(i);
}
④forEach循环
var arr = [1,2,3,4];
arr.forEach(function(value,index,arr) {
console.log(value)
})//通过函数
⑤for...in循环
for(var index in arr) {
console.log(arr[num])
}
5、map和set
①map
var map = new Map([['tom',100],['jack',90],['peter',80]]);
var name1 = map.get('tom');//通过key获得value
map.set('david',60);//新增或修改
map.delete("tom");//删除
②set:无序不重复的集合
添加:set.add();
删除:set.delete();
是否包含某个元素:set.has();
6、iterator迭代
-
可迭代对象
Set
Map
String
Array
Arguments
NodeList -
判断是否拥有可迭代能力
当一个数据具备Symbol.iterator
属性的时候,才可以用for...of
进行迭代。
console.log(Array.prototype.hasOwnProperty(Symbol.iterator));
console.log(Set.prototype.hasOwnProperty(Symbol.iterator));
- 数据是可迭代对象,却不能使用next(),因为可迭代对象不是迭代器,迭代器才有next()方法。
-
将不可迭代的数据转换可迭代数据
使用for...of
-
for...in
下标