1.JavaScript 总共7中type:
undefined(未定义),
null(空),
boolean(布尔型),
string(字符串),
symbol(符号),
number(数字),
object(对象)。
2.变量可以由数字、字母、$
或者 _
组成,不能包含空格或者以数字为首。所有的变量都是大小写敏感的。
3.用反斜杠 (\
) 来转义,单引号 ' 里面全部转义(变为字符串)
4.字符串的不可变性。不能通过下面方法改变值:
var myStr = "Bob";
myStr[0] = "J";
需要重新对myStr整体赋值才行
5.获取lastName的最后一个字符:
lastName[lastName.length-1]
6.
var oneDown = [1, 4, 6].pop(); // 取最后一位出来,现在oneDown的值为 6,数组为[1,4]
var oneDown = [1, 4, 6].shift(); // 取第一位出来,现在oneDown的值为 1,数组为[4,6]
push()是在末尾添加, unshift()则是添加到第一个
arr.push(item);
arr.push([5]);
7.Boolean
值绝不会写作被引号包裹起来的形式。字符串
的 "true"
和 "false"
不是 布尔值
8. !=的相反是==,!==的相反是===
大于小于号判断会把字符串转为数字
9.&& 全部为true,才是true (与)
|| 有一个为true,就是true(或)
10.return会结束myTest, break会结束switch,break尽量不要省略;
function myTest(val) {
switch(val){
case 1:
return "alpha";
break;
case 2:
return "beta";
break;
case 3:
return "gamma";
break;
case 4:
return "delta";
default:
return "ssss"//实在没有匹配的话执行default
}
}
11.有两种方式访问对象属性,一个是点操作符(.
),一个是中括号操作符([]
),如果你想访问的属性的名称有一个空格,这时只能使用中括号操作符
var myObj = {
"Space Name": "Kirk",
"More Space": "Spock"
};
myObj["Space Name"]; // Kirk
myObj['More Space']; // Spock
中括号操作符的另一个使用方式是用变量来访问一个属性:
var Prop = "propName";
var myObj = {
propName: "Some Value"
}
myObj[Prop]; // "Some Value"
myObj["propName"];//"Some Value"
myObj.Prop;//错误
myObj.propName;//"Some Value",注意没有双引号,直接把字符串当变量写
更新对象属性的两种方式(也可以无中生有):
var ourDog = {
"name": "Camper",
"legs": 4,
"tails": 1,
"friends": ["everything!"]
};
ourDog.name = "Happy Camper";
ourDog["name"] = "Happy Camper"
删除属性:
检查属性是否存在:
.hasOwnProperty(propname)
12.Math.random()生成一个在0(包括0)到1(不包括1)之间的随机小数
用 Math.floor()
向下取整(0.6为0,5.1为5,-5.1为-6)
生成两个数间的一个随机整数:
Math.floor(Math.random() * (max - min + 1)) + min
13.正则表达式:
/the/gi
/
是这个正则表达式的头部
the
是我们想要匹配的东西
/
是这个正则表达式的尾部
g
代表着 global
(全局),意味着返回所有的匹配而不仅仅是第一个。
i
代表着忽略大小写,意思是当我们寻找匹配的字符串的时候忽略掉字母的大小写。
/\d+/g
\d匹配一个数字,+表示一整个算一个
/\s+/g
小写的\s匹配空白字符,空白字符有 " "
(空格符)、\r
(回车符)、\n
(换行符)、\t
(制表符) 和 \f
(换页符)
大写的\S
匹配任何非空白字符
var testString = "How many non-space characters are there in this sentence?";
var expression = /\S+/g; // 有加号,匹配到9个
var testString = "How many non-space characters are there in this sentence?";
var expression = /\S/g; // 匹配到49个
14.构造函数:
var Bike = function() {
var gear; //私有属性,在外部访问时,应该保持 undefined ,即外部访问不到私有属性
this.qqq=1; //公有属性
this.setGear=function(a){ //公有方法
gear= a;
}
this.getGear=function(){
return gear;
}
};
15.map方法:
var timesFour = oldArray.map(function(val){
return val * 4;
}); //使oldArray每一项乘以4,赋给timesFour。oldArray本身不改变
16.reduce方法:
var singleVal = array.reduce(function(x, y) {
return x + y; //使array中的数逐个相加,return的值成为下一个x
}, 0); //可选参数,用来设置累加器的初始值。如果没有在这定义初始值,那么初始值x将变成数组中的第一项,而 y 将从数组的第二项开始。
17.filter方法
:
var newArray = oldArray.filter(function(val){
return val<6; //保留小于6的数,大于或者等于6的过滤掉
});
18.sort方法:
var array = [1, 12, 21, 2];
array.sort(function(a, b) {
return a - b;
}); //把元素按照从小到大的顺序进行排列,改变原数组。若b-a则是从大到小排序
19.reverse
方法
myArray.reverse(); //翻转数组
20.concat方法
newArray = oldArray.concat(concatMe); //数组拼接数组
21.split
方法
array = string.split(' '); //用空格为标记分割string,变成数组
22.join方法
string =array.join(' '); //用空格把数组拼接,变成string