廖雪峰JavaScript
ECMAScript是一种语言标准,Javascript是网景公司对ECMAScript标准的一种实现
快速入门——数据类型和变量
NaN
判断NaN 唯一方法 isNaN(NaN) true
浮点数
1/3 = (1-2/3); false 计算机无法识别浮点数
解决方法:Math.abs(1/3 - (1-2/3)<0.0000001; true
快速入门——字符串
多行字符串
`你好, ${name}, 你今年${age}岁了!` 通过``包裹 $(变量)
操作字符串
string.length; 获取长度
indexOf(搜索指定字符串出现位置)未找到返回-1
substring 返回指定索引区间的子串(substring(x,y) 从x到y的子串)
快速入门——数组
Array.length; 获取长度 Array.length=X 可以直接改变长度
indexOf 返回指定元素位置
slice slice(x,y) 返回x到y的一个数组,截取Array部分元素,返回新Array(不改变原数组) slice()复制整个数组
push() 尾末添加元素
pop() 尾末删除元素
unshift() 头部添加元素
shift() 头部删除元素
sort() 对Array进行排序,修改当前Array位置(默认顺序排序)
reverse() 把整个Array元素反转
splice() 改变原数组,删除,插入,替换 (x,y,z) 索引 执行几个 替换元素
concat() 合并两个数组,返回新数组(不改变原数组)
join() 数组转换成字符串join("") 指定符号拼接join("-")
多维数组取值 arr[x][y]
快速入门——对象
键值,逗号隔开
object.name object[name]
o.age=18 可以用=给没有的对象属性赋值
可用delete 删除 age in o 用in操作符查是否有这个属性 hasOwnProperty 检查是否是自身有
快速入门——条件判断
JavaScript把null、undefined、0、NaN和空字符串''视为false,其他值一概视为true。
快速入门——循环
for(;;)三个条件都可以省略
for...in 1.遍历一个对象所有属性(for key in Object) 2遍历数组(for i in arr) i为key值 arr[i]为数组值
快速入门——Map和Set
Map(数据类型)是一组键值对的结构,具有极快的查找速度。
var m = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]);
m.get('Michael'); // 95
var m = new Map(); // 空Map
m.set('Adam', 67); // 添加新的key-value
m.set('Bob', 59);
m.has('Adam'); // 是否存在key 'Adam': true
m.get('Adam'); // 67
m.delete('Adam'); // 删除key 'Adam'
m.get('Adam'); // undefined
map 无论表有多大,查找速度不会慢
Set(数据类型)是一组key的集合 重复元素在Set中自动被过滤
add(key) 可以重复添加,但不会有效果 delete(key) 删除