1. 基本使用
1.1、变量声明
- let
- var
1.2、 控制台输出
console.log(...)
1.3、 浏览器调试
- 元素面板
- 调试js
- 打断点
- 抓包
- 查看网站cookie
2. 数据类型
数值、文本、图片、音频、视频
2.1 number
js 不区分小数和整数
123 //整数
123.1 //浮点数
1.123e3 //科学计数数
NaN //not a number
Infinity //表示无限大
2.3 字符串
-
字符串使用单引号或双引号
-
多行字符串编写
let mes = `hello world;
-
模板字符串
let name ="kuke"; let age = 3; let msg = `hello,${name}`
-
字符串长度
str.length
-
大小写转换
str.toUpperCase() str.toLowerCase()
-
索引
str.indexOf()
-
截取字符串
str.subString()
2.4 布尔值
true
false
2.5 逻辑运算
||
&&
2.6 比较运算符
== 类型不一样,值一样,也判断为true
=== 类型一样,值一样,判断为true
- NaN===NaN 这个与所有的数值不相等,包括自己
浮点数问题:
console.l og((1/3) === (1- (1/3))) // 为 false
尽量避免浮点运算,存在精度流失
Math.abs((1/3) - (1- (1/3)) < 0.00001)
2.7 指针
- null 空指针
- undefined 未定义
2.8 数组
-
数组定义:可以定义任何类型
let arr = [1,"str",null,true]
-
数组引用
arr[1] arr.indexOf(1)
-
数组越界
undefined
-
-
长度
arr.length
arr.length 数组大小发生变化,空值填充。
-
截取数组一部分
arr.slice(beginIndex,endIndex)
类似substring
-
push、pop
arr.push(10) //压入尾部 >4 arr.pop() //弹出尾部 >10
-
unshift()、shift()头部
unshift: 压入头部 shift: 弹出头部
-
排序
arr.sort()
-
反转
arr.reverse()
-
拼接
arr.concat()
返回新数组
-
连接符
arr.join()
打印拼接数组,使用特定的字符串连接
-
多维数组
let arr = [[1,2],[3,4]];
2.9 对象
-
对象定义,对象是大括号定义。
let person = { name:"kuke", id:"1100" };
属性若干个键值对,每个属性用“,”隔开
JavaScript中所有键是字符串,值是任意。
对象取值
person.name >"kuke" person.id >"1100"
-
动态删除属性
delete person.name
-
动态添加属性(直接给新的属性添加值即可)
person.hobby = "read"
-
判断属性值是否在对象中
'name' in person
3、流程控制
3.1、分支控制
if (...) {
} else {
}
3.2、循环
while(...) {
}
for (let i = ...; ...; ...) {
}
for (let index in ...) { //index 元素下标
}
4.Map 和 Set
ES6的新特性
4.1、Map
-
定义map
var map = new Map([["name","kuke"],["id": 110]]);
-
添加
map.set(key,value);
-
获取
map.get(key);
-
删除
map.delete(key)
4.2、Set
-
添加
set.add(value);
-
删除
set.delete(value);
-
检测
set.has(value);
5. iterator
-
遍历数组
var arr = [3,4,5]; for(var x of arr) { console.log(x); }
-
遍历Map
var map = new Map([["name":"kuke"],["id":619]]); for(var x of map) { console.log(x); //x 为键值对 entry }