在FCC 上花了一下午时间过了10 hrs 的js基础课程过了一遍,虽然很多关于赋值,判断,循环的东西是代码共同的逻辑结构,但是在赋值以及判断上js有其独特的地方,在此做一下记录。
JS变量声明
不像在c++中赋值前先要对变量声明其类型,如float,long,string等,在js中万物归一,var varName = varData
【提供七种不同的data types(数据类型),它们是undefined(未定义), null(空),boolean(布尔型), string(字符串),symbol(符号), number(数字), and object(对象)。】
全局变量和局部变量
- 在function外直接声明 var varName = varData 为全局变量(global scope)
- 在function内声明 var varName = varData 则为局部变量(local scope),且优先级高于全局
- 在function内直接对从未声明过的变量赋值则产生全局变量
var global = "I am a global variable";
function myFunction() {
var local = "I am a local variable";
globaltoo = "I am a global variable too";
}
myFunction();
console.log(global);
console.log(local);
console.log(globaltoo);
然后你会在控制台得到如下结果
I am a global variable
undefined
I am a global variable too
数组的添加(删减)函数
共四个函数push()从数组后侧添加, pop()从数组后侧删除,unshift()从数组前侧添加, shift()从数组前侧删除
var array = [1,2,3];
array.push(4);//array = [1,2,3,4]
array.pup();//array = [1,2]
var arrayRemoveData = array.pup()//arrayRemoveData = 3
array.unshift(0)//array = [0,1,2,3]
array.shift()//array = [2,3]
正则表达式
Regular expressions 正则表达式被用来根据某种匹配模式来寻找strings中的某些单词。
举例:如果我们想要找到字符串The dog chased the cat中单词 the,我们可以使用下面的正则表达式: /the/gi
我们可以把这个正则表达式分成几段:
/ 是这个正则表达式的头部
the 是我们想要匹配的模式
/ 是这个正则表达式的尾部
g 代表着 global(全局),意味着返回所有的匹配而不仅仅是第一个。
i 代表着忽略大小写,意思是当我们寻找匹配的字符串的时候忽略掉字母的大小写。
更多实例如\d,\s等,查看文档
// Setup
var testString = "Ada Lovelace and Charles Babbage designed the first computer and the software that would have run on it.";
// 举例
var expressionToGetSoftware = /software/gi;
var softwareCount = testString.match(expressionToGetSoftware).length;
var expression = /and/gi;
// This code counts the matches of expression in testString
var andCount = testString.match(expression).length;//Output:2表示testString中一共出现两次and
对象赋值
直接对对象进行赋值以及使用构造函数来创建对象
var varNameOne = {'a':1,'b':2,'c':3};
//设立构造函数
var varNameFunction = function(){
this.a = 1;
this.b = 2;
this.c = 3;
}
var varNameTwo = new varNameFunction();
//构造函数可传入参数
对象的私有属性和私有方法
var Bike = function() {
var Gear;//private
var setGear = funtion(){
Gear = 4;
}//private
this.getGear = function(){
return Gear;
};//public
};
//如果要访问私有属性可以通过公有函数返回私有属性
常用的数组函数
1.map 方法会迭代数组中的每一个元素,并根据回调函数来处理每一个元素,最后返回一个新数组。注意,这个方法不会改变原始数组。
var oldArray = [1,2,3,4,5];
var newArray = oldArray.map(function(val,index,arr){
return val + 3;
});
//类似for
2.reduce 用来迭代一个数组,并且把它累积到一个值中。
var array = [4,5,6,7,8];
var singleVal = 0;
singleVal = array.reduce(function(previousVal,currentVal){
return previousVal + currentVal;
},0);
//求和,第二参数表示初值
3.false 方法过滤数组,返回新数组。
var oldArray = [1,2,3,4,5,6,7,8,9,10];
var newArray = oldArray.filter(function(val){
return val <= 5;
});
4.sort 方法用于数组排序,返回新数组。
var numbers = [4, 2, 5, 1, 3];
numbers.sort(function(a, b) {
return a - b;
});
// [1, 2, 3, 4, 5]
5.reverse 方法来翻转数组。 6.concat 方法可以用来把两个数组的内容合并到一个数组中。 7.split 方法按指定分隔符将字符串分割为数组。
var string = "Split me into an array";
var array = [];
array = string.split(' ');
8.join 方法来把数组转换成字符串,里面的每一个元素可以用你指定的连接符来连接起来,这个连接符就是你要传入的参数。
var joinMe = ["Split","me","into","an","array"];
var joinedString = '';
joinedString = joinMe.join(' ');
This work is licensed under a CC A-S 4.0 International License.