正常字符串我们“ ”,‘ ’ 包裹
注意转义字符 \
\'
\n
\t
\u4e2d \u#### Unicode字符
多行字符串编写
var msg=`
hello
你好
`
模板字符串
let name="Nancy"
let msg=`你好呀,${name}`
字符串长度
console.log(str.length)
字符串的可变性,不可变
大小写转换
//注意,这里是方法,不是属性
(str.toLowerCase())
(str.toUpperCase())
获取字符串的索引
student.indexOf("t")
截取字符串
[)
student.substring(1) //从第一个字符串截取到最后一个字符串
student.substring(1,3) //[1,3)
Array可以包含任意的数据类型
var arr=[1,2,3,4,5] //通过下标取值和赋值
1、长度
arr.length
注意:假如给arr.length赋值,数组大小就会发生变化,如果赋值过小,元素就会丢失
2、indexOf:通过元素获得下标索引
arr.indexOf(2)
字符串的"1"和数字1是不同的
3、slice() 截取Array的一部分,返回一个新数组,类似于String中的substring
arr.slice(3)
4、push , pop
push:压入到尾部
pop:弹出尾部的一个元素
5、unshift(),shift()头部
6、排序 sort()
arr.sort()
7、元素反转reverse()
["a","b","c"]
arr.reverse()
["c","b","a"]
8、concat() 拼接元素
arr.sort()
(6) [1, 2, 3, 5, 6, 7]
arr.concat(["a","b"])
(8) [1, 2, 3, 5, 6, 7, 'a', 'b']
arr
(6) [1, 2, 3, 5, 6, 7]
注意:concat()并没有修改数组,只是会返回一个新的数组
9、连接符 join
打印拼接数组,使用特定的字符串连接
arr
(6) [1, 2, 3, 5, 6, 7]
arr.join('-')
'1-2-3-5-6-7'
10、多维数组
arr=[[1,2],[3,4],["5","6"]]
(3) [Array(2), Array(2), Array(2)]
arr[1][1]
4
数组:存储数据(如何存,如何取,方法都可以自己实现)
若干个键值对
var 对象名={
属性名:属性值,
属性名:属性值,
属性名:属性值
}
//定义了一个person对象,它有四个属性!
var person={
name:"Nancy",
age:3,
email:"[email protected]",
score:0
}
js中的对象,{…}表示一个对象,键值对描述属性xxx:xxx,多个属性之间使用逗号隔开,最后一个属性不加逗号!
JavaScript中的所有的键都是字符串,值是任意对象!
对象赋值
person.name="hua"
'hua'
person
{name: 'hua', age: 3, email: '[email protected]', score: 0}
使用一个不存在的对象属性,不会报错!undefined
person.nan
undefined
动态的删减属性,通过delete删除对象的属性
person
{name: 'hua', age: 3, email: '[email protected]', score: 0}
delete person.email
true
person
{name: 'hua', age: 3, score: 0}
动态的添加,直接给新的属性添加值即可
person
{name: 'hua', age: 3, score: 0}
person.habby="学习"
'学习'
person
{name: 'hua', age: 3, score: 0, habby: '学习'}
判断属性值是否在这个对象中! xxx in xxx
person
{name: 'hua', age: 3, score: 0, habby: '学习'}
'age' in person
true
'email' in person
false
判断一个属性是否是这个对象自身拥有的hasOwnProperty()
person.hasOwnProperty('toString')
false
'toString' in person
true
if判断
let age=3;
if(age>3){
alert("大朋友")
}else{
alert("小孩子")
}
while循环,避免程序死循环
let age=3;
while(age<10){
age=age+1;
console.log(age);
}
for循环
for (let i = 0; i < 10; i++) {
console.log(i);
}
for in 循环
var age=[12,3,5,2,5,13,564]
for(let num in age){
console.log(age[num]);
}
forEach循环
var age=[12,3,5,2,5,13,564]
age.forEach(function (value) {
console.log(value)
})
ES6的新特性
//学生的成绩,学生的名字
var map = new Map([['tom',100],['jack',90]])
let tom = map.get("tom");//通过key获得value
map.set("admin","333");
console.log(tom)
Set:无序不重复的集合
let set=new Set([2,5,1,1]);//set可以去重
set.add(4);
set.delete (1);
console.log(set.has(2)) //是否包含某个元素7
ES6新特性
遍历数组
//通过for of实现 / for in 是下标
let arr=[3,4,5];
for (let number of arr) {
console.log(number);
}
遍历map
let map = new Map([['tom',100],['jack',90]]);
for (let mapElement of map) {
console.log(mapElement);
}
遍历set
let set=new Set([5,6,7,8])
for (let setElement of set) {
console.log(setElement);
}