运算符
a++/b--/+=/-=/%/*=//=
转义字符
'单引号 "双引号 \反斜杠符 \n换行符 \r回车符 \t制表符 \b退格符 \f换页符
字符串
var myString='abcd';
myString[1]
myString.length
slice() 从一个字符串中提取字符串并返回新字符串。在一个字符串中的改变不会影响另一个字符串。也就是说,slice 不修改原字符串,只会返回一个包含了原字符串中部分字符的新字符串。
str.slice(beginSlice[, endSlice])
数组
--与字符串/list类似
myArray=['a','b',10]
myArray.push(0) --添加元素到数组末尾
myArray.pop() ---移除末尾的元素
myArray.shift() --移除第一个元素
myArray.unshift() --添加元素到首位
print: console.log()
定义函数
functin myFunction(){}
局部变量优先级高于全局变量
==相等
===全等(值和类型都相同)
!=不等
!==不全等
switch
switch (val){
case 1:
answer='alpha';
break;
case 2:
answer='beta';
break;
case 3:
answer='gamma';
break;
case 4:
answer='delta';
break;
default:
answer='stuff';
}
对象
--类似于字典
myObject={
'name':'Henry',
'age':30,
'home':['a','b','c']
}
访问对象里的属性
myName=myObject.name;
myName=myObject['name'];
修改对象里的属性
myObject.name='Henry Gu';
myObject['age']=31;
添加对象里的属性
myObject.habit='singing';
删除对象里的属性
delete myObject.habit;
检查对象是否存在属性
myObject.hasOwnProperty('age');
JavaScript Object Notation 简称 JSON
它使用JavaScript对象的格式来存储数据。JSON是灵活的,因为它允许数据结构 是字符串,数字,布尔值,字符串,和 对象的任意组合。
var myMusic = [
{
"artist": "Billy Joel",
"title": "Piano Man",
"release_year": 1973,
"formats": [ "CS", "8T", "LP" ],
"gold": true
},
{
"artist": "Bob",
"title": "Piano",
"release_year": 1995,
"formats": [ "CS", "8T", "LP" ]
}
];
var ourPets = {
"cats": [ "Meowzer", "Fluffy", "Kit-Cat" ],
"dogs": [ "Spot", "Bowser", "Frankie" ]
};
ourPets.cats[1]; // "Fluffy"
var myPlants = [
{
type: "flowers",
list: [ "rose", "tulip", "dandelion" ]
},
{
type: "trees",
list: [ "fir", "pine", "birch" ]
}
];
var secondTree = myPlants[1].list[1];
for循环
for ([初始化]; [条件判断]; [计数器])
for (var i = 0; i < 5; i++) {
ourArray.push(i);
}
while循环
var ourArray = [];
var i = 0;
while(i < 5) {
ourArray.push(i);
i++;
}
Random
Math.random(); //生成一个在0(包括0)到1(不包括1)之间的随机小数
Math.floor(); //向下取整
Math.floor(Math.random()*(myMax-myMin+1))+myMin; //生成myMin-myMax之间的随机整数
Regular expressions 正则表达式
/the/gi ----/ 是这个正则表达式的头部,the 是我们想要匹配的模式,/ 是这个正则表达式的尾部,g 代表着 global(全局),意味着返回所有的匹配而不仅仅是第一个。i 代表着忽略大小写,意思是当我们寻找匹配的字符串的时候忽略掉字母的大小写。
/\d/g ---匹配一个数字
/\d+/g ---匹配多个数字
/\s+/g ---选取句子中的所有空白字符
\s 匹配任何空白字符,\S 匹配任何非空白字符
构造函数
var Car = function() {
this.wheels = 4;
this.engines = 1;
this.seats = 1;
};
调用对象(实体化)
var myCar=new Car();
带参数的构造函数
var Car = function(wheels, seats, engines) {
this.wheels = wheels;
this.seats = seats;
this.engines = engines;
};
var myCar=new Car(4,6,1);
var Bike = function() {
var gear=2; //私有属性
this.setGear=function(change){
gear=change;
};
this.getGear=function(){
return gear;
}; //this.为公有属性,可调用
};
var myBike=new Bike();
myBike.setGear(4);
myBike.getGear(); //输出4
迭代数组
map 方法会迭代数组中的每一个元素,并根据回调函数来处理每一个元素,最后返回一个新数组。注意,这个方法不会改变原始数组。
var oldArray = [1,2,3,4,5];
var newArray = oldArray.map(function(val){
return val+3;
});
reduce 方法,你要传入一个回调函数,这个回调函数的参数是一个 累加器(比如例子中的 previousVal) 和当前值 (currentVal)。
reduce 方法有一个可选的第二参数,它可以被用来设置累加器的初始值。如果没有在这定义初始值,那么初始值将变成数组中的第一项,而 currentVal 将从数组的第二项开始。
var array = [4,5,6,7,8];
var singleVal = 0;
singleVal = array.reduce(function(previousVal,currentVal){
return previousVal+currentVal;
},0);
filter 方法传入一个回调函数,这个回调函数会携带一个参数,参数为当前迭代的项(我们叫它 val )。
回调函数返回 true 的项会保留在数组中,返回 false 的项会被过滤出数组。
var oldArray = [1,2,3,4,5,6,7,8,9,10];
var newArray = oldArray.filter(function(val){
return val<6;
});
//[1,2,3,4,5]
var arr1, arr2;
var a1=arr1.filter(function(item,index,array){
return (arr2.indexOf(item)<0);
}); //返回arr2中没有的arr1的元素
var a2=arr2.filter(function(item,index,array){
return (arr1.indexOf(item)<0);
}); //返回arr1中没有的arr2的元素
sort 可以把比较函数作为参数传入。比较函数有返回值,当 a 小于 b,返回一个负数;当 a 大于 b ,返回一个正数;相等时返回0。
如果没有传入比较函数,它将把值全部转成字符串,并按照字母顺序进行排序。
上面的例子将展示 sort 的使用,传入的比较函数把元素按照从大到小的顺序进行排列。
sort 方法将改变原数组,返回被排序后的数组。
var array = [1, 12, 21, 2];
array.sort(function(a,b){
return b-a;
});
//[21,12,2,1]
reverse翻转数组
var array = [1,2,3,4,5,6,7];
var newArray = [];
newArray = array.reverse();
concat拼接数组
var oldArray = [1,2,3];
var newArray = [];
var concatMe = [4,5,6];
newArray = oldArray.concat(concatMe);
** split**方法按指定分隔符将字符串分割为数组。
var string = "Split me into an array";
var array = [];
array = string.split(' ');
join 方法来把数组转换成字符串,里面的每一个元素可以用你指定的连接符来连接起来,这个连接符就是你要传入的参数。
var joinMe = ["Split","me","into","an","array"];
var joinedString = '';
joinedString = joinMe.join(' ');
**slice() **方法会浅复制(shallow copy)数组的一部分到一个新的数组,并返回这个新数组。包含begin,但不包含end,两个参数均为非必须。
arr.slice([begin[,end]])
indexOf()方法返回给定元素能找在数组中找到的第一个索引值,否则返回-1
arr.indexOf(searchElement[, fromIndex = 0])