1.学习谷歌浏览器的源码、断点等调试功能。
2.js的数据类型:
Number:
123、0.123、1.23e3、-99、NaN(表示 不是一个number。记住它与任何数都不等,包括它自己。判断isNaN())、Infinity(表示无限大)。
字符串:
布尔值:
null:
underfined:
数组:
对象:
es6新引入的数据类型:
map(引入的原因,因为js中对象的键必须是字符串,不可以是其他类型变量。):
map是一组键值对结果,具有极快的查找速度
var map = new Map([[‘mike‘,95],[‘lisa‘,100],[‘lilei‘,12],[‘yeye‘,123]]);初始化map需要一个二维数组。
set:
是一组key的集合,但不存储value,要创建一个set,需要提供一个array作为输入。或者直接创建一个空set。
var set = new Set();
var set = new Set([1,23,34]);
iterable:为了统一集合类型,es6引入了新的iterable类型,array、map、set都属于iterable类型,具有iterable类型的集合可以使用for......of来循环遍历。
3.采用strict严格模式。 没用var声明的变量,是全局变量。使用var声明的变量有自己的作用域。var只能声明一次。
4.字符串:
多行字符串:用反引号来表示:
`asd
dsa
dsa`
模板字符串:也用反引号来表示:`nihao ${变量}`
字符串的方法:
toUpperCase():把一个字符串全部变为大写:
var name = ‘hubo‘;
console.log(name.toUpperCase());
toLowerCase():把一个字符串转成小写:
var name = ‘HUBO‘;
console.log(name.toLowerCase());
indexOf():
会搜索字符串出现的位置,没有找到返回-1:
name.indexOf(‘u‘)
substring():返回指定区间的子串
5.数组
修改array.length会直接改变数组。、
数组的方法很多:
indexOf();
slice()和字符串的substring类似。返回一个数组。可以利用slice快速复制一个数组。
push()和pop(); push()向数组的末尾添加若干元素。pop()则把最后一个元素删除掉。----------------------栈
unshift()和shift():unshift往数组的头部添加若干元素。shift从头部删掉一个元素。
sort():排序
reverse():翻转数组,掉个个。
splice():修改数组
concat():把当前的数组和另一个连接起来。返回了一个新数组。
join():把元素用指定的字符串连接起来。
6.对象:
要检查某对象是否拥有某一属性:用in操作符。in判断属性时,这个属性不一定是此对象的有可能是此对象继承的。要判断一个属性是对象自己本身的而非继承得到的,可以用hasOwnProperty().
‘name‘ in xiaoming -> true
xiaoming.hasOwnProperty(‘name‘) ->true
7.循环:
for循环;
for in循环:它可以把一个对象的所有属性依次循环出来。因为数组也是对象,所以也可以把数组的索引循环出来
for(var key in o){
console.log(key)
}
具有iterable类型的集合可以使用for...of来循环遍历。 for...in 和 for ...of 的区别是什么? for...of只循环集合本身,for...in会把不是集合本身的属性也循环出来。
更好的方式是用iterable内置的forEach()方法。它接受一个函数,每次迭代就自动回调该函数。
a.forEach(function (element, index, array) {
// element: 指向当前元素的值
// index: 指向当前索引
// array: 指向Array对象本身
console.log(element + ‘, index = ‘ + index);
});
原文地址:https://www.cnblogs.com/theLifeOfHubo/p/9763846.html